diff options
Diffstat (limited to 'node_modules/browserify-des')
-rw-r--r-- | node_modules/browserify-des/.travis.yml | 8 | ||||
-rw-r--r-- | node_modules/browserify-des/index.js | 50 | ||||
-rw-r--r-- | node_modules/browserify-des/license | 21 | ||||
-rw-r--r-- | node_modules/browserify-des/modes.js | 24 | ||||
-rw-r--r-- | node_modules/browserify-des/package.json | 58 | ||||
-rw-r--r-- | node_modules/browserify-des/readme.md | 6 | ||||
-rw-r--r-- | node_modules/browserify-des/test.js | 81 |
7 files changed, 248 insertions, 0 deletions
diff --git a/node_modules/browserify-des/.travis.yml b/node_modules/browserify-des/.travis.yml new file mode 100644 index 0000000..a965783 --- /dev/null +++ b/node_modules/browserify-des/.travis.yml @@ -0,0 +1,8 @@ +language: node_js +node_js: + - "0.11" + - "0.10" + - "0.12" + - "4" + - "6" + - "10" diff --git a/node_modules/browserify-des/index.js b/node_modules/browserify-des/index.js new file mode 100644 index 0000000..f694367 --- /dev/null +++ b/node_modules/browserify-des/index.js @@ -0,0 +1,50 @@ +var CipherBase = require('cipher-base') +var des = require('des.js') +var inherits = require('inherits') +var Buffer = require('safe-buffer').Buffer + +var modes = { + 'des-ede3-cbc': des.CBC.instantiate(des.EDE), + 'des-ede3': des.EDE, + 'des-ede-cbc': des.CBC.instantiate(des.EDE), + 'des-ede': des.EDE, + 'des-cbc': des.CBC.instantiate(des.DES), + 'des-ecb': des.DES +} +modes.des = modes['des-cbc'] +modes.des3 = modes['des-ede3-cbc'] +module.exports = DES +inherits(DES, CipherBase) +function DES (opts) { + CipherBase.call(this) + var modeName = opts.mode.toLowerCase() + var mode = modes[modeName] + var type + if (opts.decrypt) { + type = 'decrypt' + } else { + type = 'encrypt' + } + var key = opts.key + if (!Buffer.isBuffer(key)) { + key = Buffer.from(key) + } + if (modeName === 'des-ede' || modeName === 'des-ede-cbc') { + key = Buffer.concat([key, key.slice(0, 8)]) + } + var iv = opts.iv + if (!Buffer.isBuffer(iv)) { + iv = Buffer.from(iv) + } + this._des = mode.create({ + key: key, + iv: iv, + type: type + }) +} +DES.prototype._update = function (data) { + return Buffer.from(this._des.update(data)) +} +DES.prototype._final = function () { + return Buffer.from(this._des.final()) +} diff --git a/node_modules/browserify-des/license b/node_modules/browserify-des/license new file mode 100644 index 0000000..798de7d --- /dev/null +++ b/node_modules/browserify-des/license @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2014-2017 Calvin Metcalf, Fedor Indutny & contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/node_modules/browserify-des/modes.js b/node_modules/browserify-des/modes.js new file mode 100644 index 0000000..72f308d --- /dev/null +++ b/node_modules/browserify-des/modes.js @@ -0,0 +1,24 @@ +exports['des-ecb'] = { + key: 8, + iv: 0 +} +exports['des-cbc'] = exports.des = { + key: 8, + iv: 8 +} +exports['des-ede3-cbc'] = exports.des3 = { + key: 24, + iv: 8 +} +exports['des-ede3'] = { + key: 24, + iv: 0 +} +exports['des-ede-cbc'] = { + key: 16, + iv: 8 +} +exports['des-ede'] = { + key: 16, + iv: 0 +} diff --git a/node_modules/browserify-des/package.json b/node_modules/browserify-des/package.json new file mode 100644 index 0000000..4d9274d --- /dev/null +++ b/node_modules/browserify-des/package.json @@ -0,0 +1,58 @@ +{ + "_from": "browserify-des@^1.0.0", + "_id": "browserify-des@1.0.2", + "_inBundle": false, + "_integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", + "_location": "/browserify-des", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "browserify-des@^1.0.0", + "name": "browserify-des", + "escapedName": "browserify-des", + "rawSpec": "^1.0.0", + "saveSpec": null, + "fetchSpec": "^1.0.0" + }, + "_requiredBy": [ + "/browserify-cipher" + ], + "_resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", + "_shasum": "3af4f1f59839403572f1c66204375f7a7f703e9c", + "_spec": "browserify-des@^1.0.0", + "_where": "/home/pruss/Dev/3-minute-website/node_modules/browserify-cipher", + "author": { + "name": "Calvin Metcalf", + "email": "calvin.metcalf@gmail.com" + }, + "bugs": { + "url": "https://github.com/crypto-browserify/browserify-des/issues" + }, + "bundleDependencies": false, + "dependencies": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + }, + "deprecated": false, + "description": "browserify-des ===", + "devDependencies": { + "standard": "^5.3.1", + "tap-spec": "^4.1.0", + "tape": "^4.2.0" + }, + "homepage": "https://github.com/crypto-browserify/browserify-des#readme", + "license": "MIT", + "main": "index.js", + "name": "browserify-des", + "repository": { + "type": "git", + "url": "git+https://github.com/crypto-browserify/browserify-des.git" + }, + "scripts": { + "test": "standard && node test.js | tspec" + }, + "version": "1.0.2" +} diff --git a/node_modules/browserify-des/readme.md b/node_modules/browserify-des/readme.md new file mode 100644 index 0000000..b9b469d --- /dev/null +++ b/node_modules/browserify-des/readme.md @@ -0,0 +1,6 @@ +browserify-des +=== + +[](https://travis-ci.org/crypto-browserify/browserify-des) + +DES for browserify diff --git a/node_modules/browserify-des/test.js b/node_modules/browserify-des/test.js new file mode 100644 index 0000000..0729262 --- /dev/null +++ b/node_modules/browserify-des/test.js @@ -0,0 +1,81 @@ +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')) + }) + t.test('run text: ' + i, function (t) { + t.plan(2) + var key = crypto.randomBytes(32).toString('base64').slice(0, modes[mode].key) + var iv = crypto.randomBytes(32).toString('base64').slice(0, 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')) + }) + } + }) +}) |