aboutsummaryrefslogtreecommitdiff
path: root/node_modules/browserify-des/index.js
diff options
context:
space:
mode:
authorFlorian Dold <florian.dold@gmail.com>2017-05-03 15:35:00 +0200
committerFlorian Dold <florian.dold@gmail.com>2017-05-03 15:35:00 +0200
commitde98e0b232509d5f40c135d540a70e415272ff85 (patch)
treea79222a5b58484ab3b80d18efcaaa7ccc4769b33 /node_modules/browserify-des/index.js
parente0c9d480a73fa629c1e4a47d3e721f1d2d345406 (diff)
node_modules
Diffstat (limited to 'node_modules/browserify-des/index.js')
-rw-r--r--node_modules/browserify-des/index.js43
1 files changed, 43 insertions, 0 deletions
diff --git a/node_modules/browserify-des/index.js b/node_modules/browserify-des/index.js
new file mode 100644
index 000000000..2889bb77c
--- /dev/null
+++ b/node_modules/browserify-des/index.js
@@ -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())
+}