| var crypto = require('../browser') |
| var test = require('tape') |
| var fs = require('fs') |
| var Buffer = require('safe-buffer').Buffer |
| var path = require('path') |
| // Test RSA encryption/decryption |
| test('node tests', function (t) { |
| var keyPem = fs.readFileSync(path.join(__dirname, 'test_key.pem'), 'ascii') |
| var rsaPubPem = fs.readFileSync(path.join(__dirname, 'test_rsa_pubkey.pem'), |
| 'ascii') |
| var rsaKeyPem = fs.readFileSync(path.join(__dirname, 'test_rsa_privkey.pem'), |
| 'ascii') |
| var rsaKeyPemEncrypted = fs.readFileSync(path.join( |
| __dirname, 'test_rsa_privkey_encrypted.pem'), 'ascii') |
| var input = 'I AM THE WALRUS' |
| var bufferToEncrypt = Buffer.from(input) |
| |
| var encryptedBuffer = crypto.publicEncrypt(rsaPubPem, bufferToEncrypt) |
| |
| var decryptedBuffer = crypto.privateDecrypt(rsaKeyPem, encryptedBuffer) |
| t.equal(input, decryptedBuffer.toString()) |
| |
| var decryptedBufferWithPassword = crypto.privateDecrypt({ |
| key: rsaKeyPemEncrypted, |
| passphrase: 'password' |
| }, encryptedBuffer) |
| t.equal(input, decryptedBufferWithPassword.toString()) |
| |
| // encryptedBuffer = crypto.publicEncrypt(certPem, bufferToEncrypt); |
| |
| // decryptedBuffer = crypto.privateDecrypt(keyPem, encryptedBuffer); |
| // t.equal(input, decryptedBuffer.toString()); |
| |
| encryptedBuffer = crypto.publicEncrypt(keyPem, bufferToEncrypt) |
| |
| decryptedBuffer = crypto.privateDecrypt(keyPem, encryptedBuffer) |
| t.equal(input, decryptedBuffer.toString()) |
| |
| encryptedBuffer = crypto.privateEncrypt(keyPem, bufferToEncrypt) |
| |
| decryptedBuffer = crypto.publicDecrypt(keyPem, encryptedBuffer) |
| t.equal(input, decryptedBuffer.toString()) |
| |
| t.throws(function () { |
| crypto.privateDecrypt({ |
| key: rsaKeyPemEncrypted, |
| passphrase: 'wrong' |
| }, encryptedBuffer) |
| }) |
| t.end() |
| }) |