Sha256: 1f1e99dc5643906026d7dca85952d7aad2c1c6c36d691ebbc353603194aca960

Contents?: true

Size: 1.73 KB

Versions: 29

Compression:

Stored size: 1.73 KB

Contents

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

Version data entries

29 entries across 28 versions & 9 rubygems

Version Path
optimacms-0.1.61 spec/dummy/node_modules/public-encrypt/test/nodeTests.js
disco_app-0.18.0 test/dummy/node_modules/public-encrypt/test/nodeTests.js
disco_app-0.18.2 test/dummy/node_modules/public-encrypt/test/nodeTests.js
disco_app-0.16.1 test/dummy/node_modules/public-encrypt/test/nodeTests.js
disco_app-0.15.2 test/dummy/node_modules/public-encrypt/test/nodeTests.js
disco_app-0.18.4 test/dummy/node_modules/public-encrypt/test/nodeTests.js
disco_app-0.18.1 test/dummy/node_modules/public-encrypt/test/nodeTests.js
disco_app-0.12.7.pre.puma.pre.3 test/dummy/node_modules/public-encrypt/test/nodeTests.js
disco_app-0.14.0 test/dummy/node_modules/public-encrypt/test/nodeTests.js
disco_app-0.13.6.pre.puma.pre.3 test/dummy/node_modules/public-encrypt/test/nodeTests.js
tang-0.2.1 spec/tang_app/node_modules/public-encrypt/test/nodeTests.js
groonga-client-model-6.0.0 test/apps/rails6.0.3.5/node_modules/public-encrypt/test/nodeTests.js
groonga-client-model-6.0.0 test/apps/rails6.1.3/node_modules/public-encrypt/test/nodeTests.js
ruby2js-4.0.4 lib/tasks/testrails/node_modules/public-encrypt/test/nodeTests.js
ruby2js-4.0.3 lib/tasks/testrails/node_modules/public-encrypt/test/nodeTests.js
tang-0.2.0 spec/tang_app/node_modules/public-encrypt/test/nodeTests.js
tang-0.1.0 spec/tang_app/node_modules/public-encrypt/test/nodeTests.js
tang-0.0.9 spec/tang_app/node_modules/public-encrypt/test/nodeTests.js
enju_library-0.3.8 spec/dummy/node_modules/public-encrypt/test/nodeTests.js
ilog-0.4.1 node_modules/public-encrypt/test/nodeTests.js