diff options
author | seishun <vvnicholas@gmail.com> | 2014-05-05 17:35:28 +0300 |
---|---|---|
committer | Fedor Indutny <fedor@indutny.com> | 2014-08-11 22:00:34 +0400 |
commit | 42bda05af8d628db90f3ee64fa2dd89973cb1e03 (patch) | |
tree | f322c4605779c7055e407221e3d1ab25f5dd1015 /test | |
parent | 93f3b640d06df5e123e7ede90e40df06258d9d47 (diff) | |
download | android-node-v8-42bda05af8d628db90f3ee64fa2dd89973cb1e03.tar.gz android-node-v8-42bda05af8d628db90f3ee64fa2dd89973cb1e03.tar.bz2 android-node-v8-42bda05af8d628db90f3ee64fa2dd89973cb1e03.zip |
crypto: add RSA encryption
Reviewed-By: Fedor Indutny <fedor@indutny.com>
Diffstat (limited to 'test')
-rw-r--r-- | test/simple/test-crypto.js | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/test/simple/test-crypto.js b/test/simple/test-crypto.js index 4965b627f6..fd9896663a 100644 --- a/test/simple/test-crypto.js +++ b/test/simple/test-crypto.js @@ -823,6 +823,40 @@ var p = 'FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74' + var bad_dh = crypto.createDiffieHellman(p, 'hex'); assert.equal(bad_dh.verifyError, constants.DH_NOT_SUITABLE_GENERATOR); +// Test RSA encryption/decryption +(function() { + var input = 'I AM THE WALRUS'; + var bufferToEncrypt = new Buffer(input); + + var encryptedBuffer = crypto.publicEncrypt(rsaPubPem, bufferToEncrypt); + + var decryptedBuffer = crypto.privateDecrypt(rsaKeyPem, encryptedBuffer); + assert.equal(input, decryptedBuffer.toString()); + + var decryptedBufferWithPassword = crypto.privateDecrypt({ + key: rsaKeyPemEncrypted, + passphrase: 'password' + }, encryptedBuffer); + assert.equal(input, decryptedBufferWithPassword.toString()); + + encryptedBuffer = crypto.publicEncrypt(certPem, bufferToEncrypt); + + decryptedBuffer = crypto.privateDecrypt(keyPem, encryptedBuffer); + assert.equal(input, decryptedBuffer.toString()); + + encryptedBuffer = crypto.publicEncrypt(keyPem, bufferToEncrypt); + + decryptedBuffer = crypto.privateDecrypt(keyPem, encryptedBuffer); + assert.equal(input, decryptedBuffer.toString()); + + assert.throws(function() { + crypto.privateDecrypt({ + key: rsaKeyPemEncrypted, + passphrase: 'wrong' + }, encryptedBuffer); + }); +})(); + // Test RSA key signing/verification var rsaSign = crypto.createSign('RSA-SHA1'); var rsaVerify = crypto.createVerify('RSA-SHA1'); |