test: test privateEncrypt/publicDecrypt + padding · nodejs/node@2fed83d (original) (raw)
`@@ -74,6 +74,42 @@ const decryptError = {
`
74
74
`}, encryptedBuffer);
`
75
75
`assert.strictEqual(decryptedBufferWithPassword.toString(), input);
`
76
76
``
``
77
`+
// Now with explicit RSA_PKCS1_PADDING.
`
``
78
`+
encryptedBuffer = crypto.privateEncrypt({
`
``
79
`+
padding: crypto.constants.RSA_PKCS1_PADDING,
`
``
80
`+
key: rsaKeyPemEncrypted,
`
``
81
`+
passphrase: Buffer.from('password')
`
``
82
`+
}, bufferToEncrypt);
`
``
83
+
``
84
`+
decryptedBufferWithPassword = crypto.publicDecrypt({
`
``
85
`+
padding: crypto.constants.RSA_PKCS1_PADDING,
`
``
86
`+
key: rsaKeyPemEncrypted,
`
``
87
`+
passphrase: Buffer.from('password')
`
``
88
`+
}, encryptedBuffer);
`
``
89
`+
assert.strictEqual(decryptedBufferWithPassword.toString(), input);
`
``
90
+
``
91
`+
// Omitting padding should be okay because RSA_PKCS1_PADDING is the default.
`
``
92
`+
decryptedBufferWithPassword = crypto.publicDecrypt({
`
``
93
`+
key: rsaKeyPemEncrypted,
`
``
94
`+
passphrase: Buffer.from('password')
`
``
95
`+
}, encryptedBuffer);
`
``
96
`+
assert.strictEqual(decryptedBufferWithPassword.toString(), input);
`
``
97
+
``
98
`+
// Now with RSA_NO_PADDING. Plaintext needs to match key size.
`
``
99
`+
const plaintext = 'x'.repeat(128);
`
``
100
`+
encryptedBuffer = crypto.privateEncrypt({
`
``
101
`+
padding: crypto.constants.RSA_NO_PADDING,
`
``
102
`+
key: rsaKeyPemEncrypted,
`
``
103
`+
passphrase: Buffer.from('password')
`
``
104
`+
}, Buffer.from(plaintext));
`
``
105
+
``
106
`+
decryptedBufferWithPassword = crypto.publicDecrypt({
`
``
107
`+
padding: crypto.constants.RSA_NO_PADDING,
`
``
108
`+
key: rsaKeyPemEncrypted,
`
``
109
`+
passphrase: Buffer.from('password')
`
``
110
`+
}, encryptedBuffer);
`
``
111
`+
assert.strictEqual(decryptedBufferWithPassword.toString(), plaintext);
`
``
112
+
77
113
`encryptedBuffer = crypto.publicEncrypt(certPem, bufferToEncrypt);
`
78
114
``
79
115
`decryptedBuffer = crypto.privateDecrypt(keyPem, encryptedBuffer);
`