GeezerVison is showing github.com — crypto,test: improve hmac coverage with webcrypto tests · nodejs/node@23d6541
File treeExpand file treeCollapse file tree Open diff view settings Expand file treeCollapse file tree Open diff view settings Collapse file Copy file name to clipboardExpand all lines: test/parallel/test-webcrypto-export-import.js +47Lines changed: 47 additions & 0 deletions | Original file line number | Diff line number | Diff line change |
|---|
@@ -26,6 +26,53 @@ const { subtle, getRandomValues } = require('crypto').webcrypto; | 26 | 26 | code: 'ERR_INVALID_ARG_TYPE' | 27 | 27 | }); | 28 | 28 | }); | | 29 | + assert.rejects( | | 30 | + subtle.importKey('raw', keyData, { | | 31 | + name: 'HMAC' | | 32 | + }, false, ['sign', 'verify']), { | | 33 | + code: 'ERR_MISSING_OPTION' | | 34 | + }).then(common.mustCall()); | | 35 | + assert.rejects( | | 36 | + subtle.importKey('raw', keyData, { | | 37 | + name: 'HMAC', | | 38 | + hash: 'SHA-256' | | 39 | + }, false, ['deriveBits']), { | | 40 | + name: 'SyntaxError', | | 41 | + message: 'Unsupported key usage for an HMAC key' | | 42 | + }).then(common.mustCall()); | | 43 | + assert.rejects( | | 44 | + subtle.importKey('node.keyObject', '', { | | 45 | + name: 'HMAC', | | 46 | + hash: 'SHA-256' | | 47 | + }, false, ['sign', 'verify']), { | | 48 | + code: 'ERR_INVALID_ARG_TYPE' | | 49 | + }).then(common.mustCall()); | | 50 | + assert.rejects( | | 51 | + subtle.importKey('raw', keyData, { | | 52 | + name: 'HMAC', | | 53 | + hash: 'SHA-256', | | 54 | + length: 0 | | 55 | + }, false, ['sign', 'verify']), { | | 56 | + name: 'DataError', | | 57 | + message: 'Zero-length key is not supported' | | 58 | + }).then(common.mustCall()); | | 59 | + assert.rejects( | | 60 | + subtle.importKey('raw', keyData, { | | 61 | + name: 'HMAC', | | 62 | + hash: 'SHA-256', | | 63 | + length: 1 | | 64 | + }, false, ['sign', 'verify']), { | | 65 | + name: 'DataError', | | 66 | + message: 'Invalid key length' | | 67 | + }).then(common.mustCall()); | | 68 | + assert.rejects( | | 69 | + subtle.importKey('jwk', null, { | | 70 | + name: 'HMAC', | | 71 | + hash: 'SHA-256', | | 72 | + }, false, ['sign', 'verify']), { | | 73 | + name: 'DataError', | | 74 | + message: 'Invalid JWK keyData' | | 75 | + }).then(common.mustCall()); | 29 | 76 | } | 30 | 77 |
| 31 | 78 | // Import/Export HMAC Secret Key | |
|