diff options
author | Fedor Indutny <fedor@indutny.com> | 2014-08-23 17:38:32 +0400 |
---|---|---|
committer | Fedor Indutny <fedor@indutny.com> | 2014-08-27 00:24:57 +0400 |
commit | 6adf3ecebb42c05662f7c6a792953589ffdfd4dc (patch) | |
tree | aeee42cb757d6a5e13959dc11c8e225c269e685b /test | |
parent | 8a7d7f8b2b40f670d2fceb14d7d16cda1bea6bcf (diff) | |
download | android-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.js | 24 |
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'); |