aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorFedor Indutny <fedor@indutny.com>2014-08-23 17:38:32 +0400
committerFedor Indutny <fedor@indutny.com>2014-08-27 00:24:57 +0400
commit6adf3ecebb42c05662f7c6a792953589ffdfd4dc (patch)
treeaeee42cb757d6a5e13959dc11c8e225c269e685b /test
parent8a7d7f8b2b40f670d2fceb14d7d16cda1bea6bcf (diff)
downloadandroid-node-v8-6adf3ecebb42c05662f7c6a792953589ffdfd4dc.tar.gz
android-node-v8-6adf3ecebb42c05662f7c6a792953589ffdfd4dc.tar.bz2
android-node-v8-6adf3ecebb42c05662f7c6a792953589ffdfd4dc.zip
crypto: allow padding in RSA methods
Reviewed-By: Trevor Norris <trevnorris@gmail.com>
Diffstat (limited to 'test')
-rw-r--r--test/simple/test-crypto.js24
1 files changed, 24 insertions, 0 deletions
diff --git a/test/simple/test-crypto.js b/test/simple/test-crypto.js
index fd9896663a..74baaa71a0 100644
--- a/test/simple/test-crypto.js
+++ b/test/simple/test-crypto.js
@@ -857,6 +857,30 @@ assert.equal(bad_dh.verifyError, constants.DH_NOT_SUITABLE_GENERATOR);
});
})();
+function test_rsa(padding) {
+ var input = new Buffer(padding === 'RSA_NO_PADDING' ? 1024 / 8 : 32);
+ for (var i = 0; i < input.length; i++)
+ input[i] = (i * 7 + 11) & 0xff;
+ var bufferToEncrypt = new Buffer(input);
+
+ padding = constants[padding];
+
+ var encryptedBuffer = crypto.publicEncrypt({
+ key: rsaPubPem,
+ padding: padding
+ }, bufferToEncrypt);
+
+ var decryptedBuffer = crypto.privateDecrypt({
+ key: rsaKeyPem,
+ padding: padding
+ }, encryptedBuffer);
+ assert.equal(input, decryptedBuffer.toString());
+}
+
+test_rsa('RSA_NO_PADDING');
+test_rsa('RSA_PKCS1_PADDING');
+test_rsa('RSA_PKCS1_OAEP_PADDING');
+
// Test RSA key signing/verification
var rsaSign = crypto.createSign('RSA-SHA1');
var rsaVerify = crypto.createVerify('RSA-SHA1');