summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorseishun <vvnicholas@gmail.com>2014-05-05 17:35:28 +0300
committerFedor Indutny <fedor@indutny.com>2014-08-11 22:00:34 +0400
commit42bda05af8d628db90f3ee64fa2dd89973cb1e03 (patch)
treef322c4605779c7055e407221e3d1ab25f5dd1015 /test
parent93f3b640d06df5e123e7ede90e40df06258d9d47 (diff)
downloadandroid-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.js34
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');