This commit is contained in:
chrosey
2017-09-13 07:52:34 +02:00
parent a1f16c37f4
commit 2340b0226b
24621 changed files with 2912161 additions and 149 deletions
+43
View File
@@ -0,0 +1,43 @@
var CipherBase = require('cipher-base')
var des = require('des.js')
var inherits = require('inherits')
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 (modeName === 'des-ede' || modeName === 'des-ede-cbc') {
key = Buffer.concat([key, key.slice(0, 8)])
}
var iv = opts.iv
this._des = mode.create({
key: key,
iv: iv,
type: type
})
}
DES.prototype._update = function (data) {
return new Buffer(this._des.update(data))
}
DES.prototype._final = function () {
return new Buffer(this._des.final())
}
+24
View File
@@ -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
}
+88
View File
@@ -0,0 +1,88 @@
{
"_args": [
[
{
"raw": "browserify-des@^1.0.0",
"scope": null,
"escapedName": "browserify-des",
"name": "browserify-des",
"rawSpec": "^1.0.0",
"spec": ">=1.0.0 <2.0.0",
"type": "range"
},
"c:\\xampp\\htdocs\\laravel\\node_modules\\browserify-cipher"
]
],
"_from": "browserify-des@>=1.0.0 <2.0.0",
"_id": "browserify-des@1.0.0",
"_inCache": true,
"_location": "/browserify-des",
"_nodeVersion": "4.1.1",
"_npmUser": {
"name": "cwmma",
"email": "calvin.metcalf@gmail.com"
},
"_npmVersion": "2.14.4",
"_phantomChildren": {},
"_requested": {
"raw": "browserify-des@^1.0.0",
"scope": null,
"escapedName": "browserify-des",
"name": "browserify-des",
"rawSpec": "^1.0.0",
"spec": ">=1.0.0 <2.0.0",
"type": "range"
},
"_requiredBy": [
"/browserify-cipher"
],
"_resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.0.tgz",
"_shasum": "daa277717470922ed2fe18594118a175439721dd",
"_shrinkwrap": null,
"_spec": "browserify-des@^1.0.0",
"_where": "c:\\xampp\\htdocs\\laravel\\node_modules\\browserify-cipher",
"author": {
"name": "Calvin Metcalf",
"email": "calvin.metcalf@gmail.com"
},
"bugs": {
"url": "https://github.com/crypto-browserify/browserify-des/issues"
},
"dependencies": {
"cipher-base": "^1.0.1",
"des.js": "^1.0.0",
"inherits": "^2.0.1"
},
"description": "browserify-des ===",
"devDependencies": {
"standard": "^5.3.1",
"tap-spec": "^4.1.0",
"tape": "^4.2.0"
},
"directories": {},
"dist": {
"shasum": "daa277717470922ed2fe18594118a175439721dd",
"tarball": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.0.tgz"
},
"gitHead": "ec4fc6ad180ab43efe687bdb6e84100d048c9c53",
"homepage": "https://github.com/crypto-browserify/browserify-des#readme",
"license": "MIT",
"main": "index.js",
"maintainers": [
{
"name": "cwmma",
"email": "calvin.metcalf@gmail.com"
}
],
"name": "browserify-des",
"optionalDependencies": {},
"readme": "ERROR: No README data found!",
"repository": {
"type": "git",
"url": "git+https://github.com/crypto-browserify/browserify-des.git"
},
"scripts": {
"test": "standard && node test.js | tspec"
},
"version": "1.0.0"
}
+4
View File
@@ -0,0 +1,4 @@
browserify-des
===
DES for browserify
+48
View File
@@ -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'))
})
}
})
})