var crypto = require('../browser'); var test = require('tape'); var fs = require('fs'); // Test RSA encryption/decryption test('node tests', function (t) { var certPem = fs.readFileSync(__dirname + '/test_cert.pem', 'ascii'); var keyPem = fs.readFileSync(__dirname + '/test_key.pem', 'ascii'); var rsaPubPem = fs.readFileSync(__dirname + '/test_rsa_pubkey.pem', 'ascii'); var rsaKeyPem = fs.readFileSync(__dirname + '/test_rsa_privkey.pem', 'ascii'); var rsaKeyPemEncrypted = fs.readFileSync( __dirname + '/test_rsa_privkey_encrypted.pem', 'ascii'); var input = 'I AM THE WALRUS'; var bufferToEncrypt = new Buffer(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(); });