You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							51 lines
						
					
					
						
							1.7 KiB
						
					
					
				
			
		
		
	
	
							51 lines
						
					
					
						
							1.7 KiB
						
					
					
				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() | 
						|
})
 | 
						|
 |