mirror of
				https://github.com/cp6/my-idlers.git
				synced 2025-11-04 08:09:09 +00:00 
			
		
		
		
	
		
			
	
	
		
			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')
							 | 
						||
| 
								 | 
							
								})
							 |