diff options
author | Florian Dold <florian.dold@gmail.com> | 2017-05-03 15:35:00 +0200 |
---|---|---|
committer | Florian Dold <florian.dold@gmail.com> | 2017-05-03 15:35:00 +0200 |
commit | de98e0b232509d5f40c135d540a70e415272ff85 (patch) | |
tree | a79222a5b58484ab3b80d18efcaaa7ccc4769b33 /node_modules/des.js/test/ede-test.js | |
parent | e0c9d480a73fa629c1e4a47d3e721f1d2d345406 (diff) | |
download | wallet-core-de98e0b232509d5f40c135d540a70e415272ff85.tar.xz |
node_modules
Diffstat (limited to 'node_modules/des.js/test/ede-test.js')
-rw-r--r-- | node_modules/des.js/test/ede-test.js | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/node_modules/des.js/test/ede-test.js b/node_modules/des.js/test/ede-test.js new file mode 100644 index 000000000..116a76a82 --- /dev/null +++ b/node_modules/des.js/test/ede-test.js @@ -0,0 +1,73 @@ +'use strict'; + +var assert = require('assert'); +var crypto = require('crypto'); +var Buffer = require('buffer').Buffer; + +var des = require('../'); + +var fixtures = require('./fixtures'); +var bin = fixtures.bin; + +describe('DES-EDE-CBC', function() { + var CBC = des.CBC.instantiate(des.EDE); + + describe('encryption/decryption', function() { + var vectors = [ + { + key: new Array(4).join('133457799bbcdff1'), + iv: '0102030405060708', + input: '0123456789abcdef' + }, + { + key: new Array(4).join('0000000000000000'), + iv: 'ffffffffffffffff', + input: '0000000000000000' + }, + { + key: new Array(4).join('a3a3a3a3b3b3b3b3'), + iv: 'cdcdcdcdcdcdcdcd', + input: 'cccccccccccccccc' + }, + { + key: new Array(4).join('deadbeefabbadead'), + iv: 'a0da0da0da0da0da', + input: '0102030405060708090a' + }, + { + key: 'aabbccddeeff0011' + '1111222233334444' + 'ffffeeeeddddcccc', + iv: 'fefefefefefefefe', + input: '0102030405060708090a0102030405060708090a0102030405060708090a' + + '0102030405060708090a0102030405060607080a0102030405060708090a' + } + ]; + + vectors.forEach(function(vec, i) { + it('should encrypt vector ' + i, function() { + var key = new Buffer(vec.key, 'hex'); + var iv = new Buffer(vec.iv, 'hex'); + var input = new Buffer(vec.input, 'hex'); + + var enc = CBC.create({ + type: 'encrypt', + key: key, + iv: iv + }); + var out = new Buffer(enc.update(input).concat(enc.final())); + + var cipher = crypto.createCipheriv('des-ede3-cbc', key, iv); + var expected = Buffer.concat([ cipher.update(input), cipher.final() ]); + + assert.deepEqual(out, expected); + + var dec = CBC.create({ + type: 'decrypt', + key: key, + iv: iv + }); + assert.deepEqual(new Buffer(dec.update(out).concat(dec.final())), + input); + }); + }); + }); +}); |