(algorithm, extractable, usages)
| 64 | }; |
| 65 | |
| 66 | function cfrgGenerateKey(algorithm, extractable, usages) { |
| 67 | const { name } = algorithm; |
| 68 | const allowedUsages = kUsages[name]; |
| 69 | const usagesSet = validateKeyUsages(usages, allowedUsages.keygen, name); |
| 70 | const nid = { |
| 71 | '__proto__': null, |
| 72 | 'Ed25519': EVP_PKEY_ED25519, |
| 73 | 'Ed448': EVP_PKEY_ED448, |
| 74 | 'X25519': EVP_PKEY_X25519, |
| 75 | 'X448': EVP_PKEY_X448, |
| 76 | }[name]; |
| 77 | |
| 78 | const keyAlgorithm = { name }; |
| 79 | const keyUsages = getKeyPairUsages(usagesSet, allowedUsages); |
| 80 | validateUsagesNotEmpty(keyUsages.private); |
| 81 | |
| 82 | return jobPromise(() => new NidKeyPairGenJob( |
| 83 | kCryptoJobWebCrypto, |
| 84 | nid, |
| 85 | keyAlgorithm, |
| 86 | getUsagesMask(keyUsages.public), |
| 87 | getUsagesMask(keyUsages.private), |
| 88 | extractable)); |
| 89 | } |
| 90 | |
| 91 | function cfrgExportKey(key, format) { |
| 92 | try { |
nothing calls this directly
no test coverage detected
searching dependent graphs…