50 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			50 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
var test = require('tape')
 | 
						|
var crypto = require('browserify-cipher/browser')
 | 
						|
var randomBytes = require('pseudorandombytes')
 | 
						|
 | 
						|
function runIt (i) {
 | 
						|
  crypto.listCiphers().forEach(function (cipher) {
 | 
						|
    test('run: ' + i, function (t) {
 | 
						|
      t.test('ciphers: ' + cipher, function (t) {
 | 
						|
        t.plan(1)
 | 
						|
        var data = randomBytes(562)
 | 
						|
        var password = randomBytes(20)
 | 
						|
        var crypter = crypto.createCipher(cipher, password)
 | 
						|
        var decrypter = crypto.createDecipher(cipher, password)
 | 
						|
        var out = []
 | 
						|
        out.push(decrypter.update(crypter.update(data)))
 | 
						|
        out.push(decrypter.update(crypter.final()))
 | 
						|
        if (cipher.indexOf('gcm') > -1) {
 | 
						|
          decrypter.setAuthTag(crypter.getAuthTag())
 | 
						|
        }
 | 
						|
        out.push(decrypter.final())
 | 
						|
        t.equals(data.toString('hex'), Buffer.concat(out).toString('hex'))
 | 
						|
      })
 | 
						|
    })
 | 
						|
  })
 | 
						|
  if (i < 4) {
 | 
						|
    setTimeout(runIt, 0, i + 1)
 | 
						|
  }
 | 
						|
}
 | 
						|
runIt(1)
 | 
						|
test('getCiphers', function (t) {
 | 
						|
  t.plan(1)
 | 
						|
  t.ok(crypto.getCiphers().length, 'get ciphers returns an array')
 | 
						|
})
 | 
						|
 | 
						|
test('through crypto browserify works', function (t) {
 | 
						|
  t.plan(2)
 | 
						|
  var crypto = require('../')
 | 
						|
  var cipher = 'aes-128-ctr'
 | 
						|
  var data = randomBytes(562)
 | 
						|
  var password = randomBytes(20)
 | 
						|
  var crypter = crypto.createCipher(cipher, password)
 | 
						|
  var decrypter = crypto.createDecipher(cipher, password)
 | 
						|
  var out = []
 | 
						|
  out.push(decrypter.update(crypter.update(data)))
 | 
						|
  out.push(decrypter.update(crypter.final()))
 | 
						|
  out.push(decrypter.final())
 | 
						|
  t.equals(data.toString('hex'), Buffer.concat(out).toString('hex'))
 | 
						|
  t.ok(crypto.getCiphers().length, 'get ciphers returns an array')
 | 
						|
})
 |