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/browserify-des/test.js | |
parent | e0c9d480a73fa629c1e4a47d3e721f1d2d345406 (diff) |
node_modules
Diffstat (limited to 'node_modules/browserify-des/test.js')
-rw-r--r-- | node_modules/browserify-des/test.js | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/node_modules/browserify-des/test.js b/node_modules/browserify-des/test.js new file mode 100644 index 000000000..6324f43b5 --- /dev/null +++ b/node_modules/browserify-des/test.js @@ -0,0 +1,48 @@ +var test = require('tape') +var DES = require('./') +var modes = require('./modes') +var crypto = require('crypto') + +Object.keys(modes).forEach(function (mode) { + test(mode, function (t) { + var i = 0 + while (++i < 10) { + runOnce(i) + } + function runOnce (i) { + t.test('run: ' + i, function (t) { + t.plan(2) + var key = crypto.randomBytes(modes[mode].key) + var iv = crypto.randomBytes(modes[mode].iv) + var text = crypto.randomBytes(200) + var ourEncrypt + try { + ourEncrypt = new DES({ + mode: mode, + key: key, + iv: iv + }) + } catch (e) { + t.notOk(e, e.stack) + } + var nodeEncrypt + try { + nodeEncrypt = crypto.createCipheriv(mode, key, iv) + } catch (e) { + t.notOk(e, e.stack) + } + var ourCipherText = Buffer.concat([ourEncrypt.update(text), ourEncrypt.final()]) + var nodeCipherText = Buffer.concat([nodeEncrypt.update(text), nodeEncrypt.final()]) + t.equals(nodeCipherText.toString('hex'), ourCipherText.toString('hex')) + var ourDecrypt = new DES({ + mode: mode, + key: key, + iv: iv, + decrypt: true + }) + var plainText = Buffer.concat([ourDecrypt.update(ourCipherText), ourDecrypt.final()]) + t.equals(text.toString('hex'), plainText.toString('hex')) + }) + } + }) +}) |