| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 | 'use strict';var test = require('tape');var bcCrypto = require('browserify-cipher/browser');var bcCyphers = bcCrypto.getCiphers();var randomBytes = require('pseudorandombytes');for (var i = 0; i < 4; i += 1) {	bcCrypto.listCiphers().forEach(function (cipher) {		test('run: ' + i, function (t) {			/* eslint no-loop-func: 0 */			t.test('ciphers: ' + cipher, function (st) {				st.plan(1);				var data = randomBytes(562);				var password = randomBytes(20);				var crypter = bcCrypto.createCipher(cipher, password);				var decrypter = bcCrypto.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']());				st.equals(data.toString('hex'), Buffer.concat(out).toString('hex'));			});		});	});}test('getCiphers', function (t) {	t.plan(1);	t.ok(bcCyphers.length, 'get ciphers returns an array');});// eslint-disable-next-line global-requiretest('through crypto browserify works', { skip: !require('crypto').createCipher && 'node 22+ removes createCipher' }, function (t) {	t.plan(2);	var crypto = require('../'); // eslint-disable-line global-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');});
 |