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