Version
v16.13.0
Platform
Linux EURO01 5.4.0-88-generic #99-Ubuntu SMP Thu Sep 23 17:29:00 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
Subsystem
crypto
What steps will reproduce the bug?
- Create an public/private RSA key-pair by using either
aes-128-ecb or aes-128-ocb - Attempt to decrypt/encrypt something
Code:
constcrypto=require("crypto");let{privateKey, publicKey}=crypto.generateKeyPairSync("rsa",{modulusLength: 2048,publicKeyEncoding: {type: "spki",format: "pem"},privateKeyEncoding: {type: 'pkcs8',format: 'pem',cipher: "aes-128-ecb",passphrase: "abcdef"}});constencryptedString=crypto.privateEncrypt({key: privateKey,passphrase: "abcdef"},Buffer.from("The quick brown fox jumps over the lazy dog")).toString("base64");constdecryptedString=crypto.publicDecrypt(publicKey,Buffer.from(encryptedString,"base64")).toString();console.log(`Encrypted: ${encryptedString}`);console.log(`Decrypted: ${decryptedString}`);How often does it reproduce? Is there a required condition?
This only happens with some ciphers, some like aes-128-ccm or aes-128-cbc and other variants works just fine, other ciphers fail with an error
What is the expected behavior?
An successful encryption/decryption with the specified ciphers
What do you see instead?
node:internal/crypto/cipher:79
return method(data, format, type, passphrase, buffer, padding, oaepHash,
^
Error: error:060CC07A:digital envelope routines:EVP_CIPHER_asn1_to_param:cipher parameter error
at Object.privateEncrypt (node:internal/crypto/cipher:79:12)
at Object.<anonymous> (/home/pancho7532/Documents/AnotherBotXDDXD/rsaTest.js:25:32)
at Module._compile (node:internal/modules/cjs/loader:1101:14)
at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
at Module.load (node:internal/modules/cjs/loader:981:32)
at Function.Module._load (node:internal/modules/cjs/loader:822:12)
at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
at node:internal/main/run_main_module:17:47 {
opensslErrorStack: [
'error:060CC07A:digital envelope routines:EVP_CIPHER_asn1_to_param:cipher parameter error'
],
library: 'digital envelope routines',
function: 'EVP_CIPHER_asn1_to_param',
reason: 'cipher parameter error',
code: 'ERR_OSSL_EVP_CIPHER_PARAMETER_ERROR'
}
Additional information
In v14.17.3 (the version i had previously) Node.JS would crash with a core dump on some ciphers (like GCM based ciphers)
Version
v16.13.0
Platform
Linux EURO01 5.4.0-88-generic #99-Ubuntu SMP Thu Sep 23 17:29:00 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
Subsystem
crypto
What steps will reproduce the bug?
aes-128-ecboraes-128-ocbCode:
How often does it reproduce? Is there a required condition?
This only happens with some ciphers, some like
aes-128-ccmoraes-128-cbcand other variants works just fine, other ciphers fail with an errorWhat is the expected behavior?
An successful encryption/decryption with the specified ciphers
What do you see instead?
Additional information
In v14.17.3 (the version i had previously) Node.JS would crash with a core dump on some ciphers (like GCM based ciphers)