52 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			52 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| 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()
 | |
| })
 |