| 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() | 
| }) |