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
+6
View File
@@ -0,0 +1,6 @@
language: node_js
node_js:
- "0.11"
- "0.10"
- "0.12"
- "iojs"
+73
View File
@@ -0,0 +1,73 @@
var ebtk = require('evp_bytestokey')
var aes = require('browserify-aes/browser')
var DES = require('browserify-des')
var desModes = require('browserify-des/modes')
var aesModes = require('browserify-aes/modes')
function createCipher (suite, password) {
var keyLen, ivLen
suite = suite.toLowerCase()
if (aesModes[suite]) {
keyLen = aesModes[suite].key
ivLen = aesModes[suite].iv
} else if (desModes[suite]) {
keyLen = desModes[suite].key * 8
ivLen = desModes[suite].iv
} else {
throw new TypeError('invalid suite type')
}
var keys = ebtk(password, false, keyLen, ivLen)
return createCipheriv(suite, keys.key, keys.iv)
}
function createDecipher (suite, password) {
var keyLen, ivLen
suite = suite.toLowerCase()
if (aesModes[suite]) {
keyLen = aesModes[suite].key
ivLen = aesModes[suite].iv
} else if (desModes[suite]) {
keyLen = desModes[suite].key * 8
ivLen = desModes[suite].iv
} else {
throw new TypeError('invalid suite type')
}
var keys = ebtk(password, false, keyLen, ivLen)
return createDecipheriv(suite, keys.key, keys.iv)
}
function createCipheriv (suite, key, iv) {
suite = suite.toLowerCase()
if (aesModes[suite]) {
return aes.createCipheriv(suite, key, iv)
} else if (desModes[suite]) {
return new DES({
key: key,
iv: iv,
mode: suite
})
} else {
throw new TypeError('invalid suite type')
}
}
function createDecipheriv (suite, key, iv) {
suite = suite.toLowerCase()
if (aesModes[suite]) {
return aes.createDecipheriv(suite, key, iv)
} else if (desModes[suite]) {
return new DES({
key: key,
iv: iv,
mode: suite,
decrypt: true
})
} else {
throw new TypeError('invalid suite type')
}
}
exports.createCipher = exports.Cipher = createCipher
exports.createCipheriv = exports.Cipheriv = createCipheriv
exports.createDecipher = exports.Decipher = createDecipher
exports.createDecipheriv = exports.Decipheriv = createDecipheriv
function getCiphers () {
return Object.keys(desModes).concat(aes.getCiphers())
}
exports.listCiphers = exports.getCiphers = getCiphers
+7
View File
@@ -0,0 +1,7 @@
var crypto = require('crypto')
exports.createCipher = exports.Cipher = crypto.createCipher
exports.createCipheriv = exports.Cipheriv = crypto.createCipheriv
exports.createDecipher = exports.Decipher = crypto.createDecipher
exports.createDecipheriv = exports.Decipheriv = crypto.createDecipheriv
exports.listCiphers = exports.getCiphers = crypto.getCiphers
+89
View File
@@ -0,0 +1,89 @@
{
"_args": [
[
{
"raw": "browserify-cipher@^1.0.0",
"scope": null,
"escapedName": "browserify-cipher",
"name": "browserify-cipher",
"rawSpec": "^1.0.0",
"spec": ">=1.0.0 <2.0.0",
"type": "range"
},
"c:\\xampp\\htdocs\\laravel\\node_modules\\crypto-browserify"
]
],
"_from": "browserify-cipher@>=1.0.0 <2.0.0",
"_id": "browserify-cipher@1.0.0",
"_inCache": true,
"_location": "/browserify-cipher",
"_nodeVersion": "4.1.1",
"_npmUser": {
"name": "cwmma",
"email": "calvin.metcalf@gmail.com"
},
"_npmVersion": "2.14.4",
"_phantomChildren": {},
"_requested": {
"raw": "browserify-cipher@^1.0.0",
"scope": null,
"escapedName": "browserify-cipher",
"name": "browserify-cipher",
"rawSpec": "^1.0.0",
"spec": ">=1.0.0 <2.0.0",
"type": "range"
},
"_requiredBy": [
"/crypto-browserify"
],
"_resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.0.tgz",
"_shasum": "9988244874bf5ed4e28da95666dcd66ac8fc363a",
"_shrinkwrap": null,
"_spec": "browserify-cipher@^1.0.0",
"_where": "c:\\xampp\\htdocs\\laravel\\node_modules\\crypto-browserify",
"author": {
"name": "Calvin Metcalf",
"email": "calvin.metcalf@gmail.com"
},
"browser": "browser.js",
"bugs": {
"url": "https://github.com/crypto-browserify/browserify-cipher/issues"
},
"dependencies": {
"browserify-aes": "^1.0.4",
"browserify-des": "^1.0.0",
"evp_bytestokey": "^1.0.0"
},
"description": "ciphers for the browser",
"devDependencies": {
"standard": "^5.3.1",
"tap-spec": "^4.1.0",
"tape": "^4.2.0"
},
"directories": {},
"dist": {
"shasum": "9988244874bf5ed4e28da95666dcd66ac8fc363a",
"tarball": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.0.tgz"
},
"gitHead": "a293143d06e1aa03aee035521c3379e9402c3074",
"homepage": "https://github.com/crypto-browserify/browserify-cipher#readme",
"license": "MIT",
"main": "index.js",
"maintainers": [
{
"name": "cwmma",
"email": "calvin.metcalf@gmail.com"
}
],
"name": "browserify-cipher",
"optionalDependencies": {},
"readme": "ERROR: No README data found!",
"repository": {
"type": "git",
"url": "git+ssh://git@github.com/crypto-browserify/browserify-cipher.git"
},
"scripts": {
"test": "standard && node test.js | tspec"
},
"version": "1.0.0"
}
+7
View File
@@ -0,0 +1,7 @@
browserify-cipher
===
[![Build Status](https://travis-ci.org/crypto-browserify/browserify-cipher.svg)](https://travis-ci.org/crypto-browserify/browserify-cipher)
Provides createCipher, createDecipher, createCipheriv, createDecipheriv and
getCiphers for the browserify. Includes AES and DES ciphers.
+55
View File
@@ -0,0 +1,55 @@
var test = require('tape')
var crypto = require('crypto')
var desModes = require('browserify-des/modes')
var aesModes = require('browserify-aes/modes')
var ourCrypto = require('./browser')
function runIvTest (mode, keyLen, ivLen) {
test('mode: ' + mode, function (t) {
var i = 0
while (++i < 10) {
run(i)
}
function run (i) {
t.test('run: ' + i, function (t) {
t.plan(2)
var key = crypto.randomBytes(keyLen)
var iv = crypto.randomBytes(ivLen)
var text = crypto.randomBytes(200)
var ourEncrypt
try {
ourEncrypt = ourCrypto.createCipheriv(mode, key, 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 authTag
if (mode.slice(-3) === 'gcm') {
authTag = ourEncrypt.getAuthTag()
}
var nodeCipherText = Buffer.concat([nodeEncrypt.update(text), nodeEncrypt.final()])
t.equals(nodeCipherText.toString('hex'), ourCipherText.toString('hex'))
var ourDecrypt = ourCrypto.createDecipheriv(mode, key, iv)
if (mode.slice(-3) === 'gcm') {
ourDecrypt.setAuthTag(authTag)
}
var plainText = Buffer.concat([ourDecrypt.update(ourCipherText), ourDecrypt.final()])
t.equals(text.toString('hex'), plainText.toString('hex'))
})
}
})
}
Object.keys(aesModes).forEach(function (modeName) {
var mode = aesModes[modeName]
runIvTest(modeName, mode.key / 8, mode.iv)
})
Object.keys(desModes).forEach(function (modeName) {
var mode = desModes[modeName]
runIvTest(modeName, mode.key, mode.iv)
})