{"ast":null,"code":"'use strict';\n\nvar assert = require('minimalistic-assert');\n\nvar inherits = require('inherits');\n\nvar utils = require('./utils');\n\nvar Cipher = require('./cipher');\n\nfunction DESState() {\n this.tmp = new Array(2);\n this.keys = null;\n}\n\nfunction DES(options) {\n Cipher.call(this, options);\n var state = new DESState();\n this._desState = state;\n this.deriveKeys(state, options.key);\n}\n\ninherits(DES, Cipher);\nmodule.exports = DES;\n\nDES.create = function create(options) {\n return new DES(options);\n};\n\nvar shiftTable = [1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1];\n\nDES.prototype.deriveKeys = function deriveKeys(state, key) {\n state.keys = new Array(16 * 2);\n assert.equal(key.length, this.blockSize, 'Invalid key length');\n var kL = utils.readUInt32BE(key, 0);\n var kR = utils.readUInt32BE(key, 4);\n utils.pc1(kL, kR, state.tmp, 0);\n kL = state.tmp[0];\n kR = state.tmp[1];\n\n for (var i = 0; i < state.keys.length; i += 2) {\n var shift = shiftTable[i >>> 1];\n kL = utils.r28shl(kL, shift);\n kR = utils.r28shl(kR, shift);\n utils.pc2(kL, kR, state.keys, i);\n }\n};\n\nDES.prototype._update = function _update(inp, inOff, out, outOff) {\n var state = this._desState;\n var l = utils.readUInt32BE(inp, inOff);\n var r = utils.readUInt32BE(inp, inOff + 4); // Initial Permutation\n\n utils.ip(l, r, state.tmp, 0);\n l = state.tmp[0];\n r = state.tmp[1];\n if (this.type === 'encrypt') this._encrypt(state, l, r, state.tmp, 0);else this._decrypt(state, l, r, state.tmp, 0);\n l = state.tmp[0];\n r = state.tmp[1];\n utils.writeUInt32BE(out, l, outOff);\n utils.writeUInt32BE(out, r, outOff + 4);\n};\n\nDES.prototype._pad = function _pad(buffer, off) {\n var value = buffer.length - off;\n\n for (var i = off; i < buffer.length; i++) buffer[i] = value;\n\n return true;\n};\n\nDES.prototype._unpad = function _unpad(buffer) {\n var pad = buffer[buffer.length - 1];\n\n for (var i = buffer.length - pad; i < buffer.length; i++) assert.equal(buffer[i], pad);\n\n return buffer.slice(0, buffer.length - pad);\n};\n\nDES.prototype._encrypt = function _encrypt(state, lStart, rStart, out, off) {\n var l = lStart;\n var r = rStart; // Apply f() x16 times\n\n for (var i = 0; i < state.keys.length; i += 2) {\n var keyL = state.keys[i];\n var keyR = state.keys[i + 1]; // f(r, k)\n\n utils.expand(r, state.tmp, 0);\n keyL ^= state.tmp[0];\n keyR ^= state.tmp[1];\n var s = utils.substitute(keyL, keyR);\n var f = utils.permute(s);\n var t = r;\n r = (l ^ f) >>> 0;\n l = t;\n } // Reverse Initial Permutation\n\n\n utils.rip(r, l, out, off);\n};\n\nDES.prototype._decrypt = function _decrypt(state, lStart, rStart, out, off) {\n var l = rStart;\n var r = lStart; // Apply f() x16 times\n\n for (var i = state.keys.length - 2; i >= 0; i -= 2) {\n var keyL = state.keys[i];\n var keyR = state.keys[i + 1]; // f(r, k)\n\n utils.expand(l, state.tmp, 0);\n keyL ^= state.tmp[0];\n keyR ^= state.tmp[1];\n var s = utils.substitute(keyL, keyR);\n var f = utils.permute(s);\n var t = l;\n l = (r ^ f) >>> 0;\n r = t;\n } // Reverse Initial Permutation\n\n\n utils.rip(l, r, out, off);\n};","map":{"version":3,"sources":["/Users/tylerkoenig/Code/personal/react-scss2/node_modules/des.js/lib/des/des.js"],"names":["assert","require","inherits","utils","Cipher","DESState","tmp","Array","keys","DES","options","call","state","_desState","deriveKeys","key","module","exports","create","shiftTable","prototype","equal","length","blockSize","kL","readUInt32BE","kR","pc1","i","shift","r28shl","pc2","_update","inp","inOff","out","outOff","l","r","ip","type","_encrypt","_decrypt","writeUInt32BE","_pad","buffer","off","value","_unpad","pad","slice","lStart","rStart","keyL","keyR","expand","s","substitute","f","permute","t","rip"],"mappings":"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","sourcesContent":["'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nvar utils = require('./utils');\nvar Cipher = require('./cipher');\n\nfunction DESState() {\n this.tmp = new Array(2);\n this.keys = null;\n}\n\nfunction DES(options) {\n Cipher.call(this, options);\n\n var state = new DESState();\n this._desState = state;\n\n this.deriveKeys(state, options.key);\n}\ninherits(DES, Cipher);\nmodule.exports = DES;\n\nDES.create = function create(options) {\n return new DES(options);\n};\n\nvar shiftTable = [\n 1, 1, 2, 2, 2, 2, 2, 2,\n 1, 2, 2, 2, 2, 2, 2, 1\n];\n\nDES.prototype.deriveKeys = function deriveKeys(state, key) {\n state.keys = new Array(16 * 2);\n\n assert.equal(key.length, this.blockSize, 'Invalid key length');\n\n var kL = utils.readUInt32BE(key, 0);\n var kR = utils.readUInt32BE(key, 4);\n\n utils.pc1(kL, kR, state.tmp, 0);\n kL = state.tmp[0];\n kR = state.tmp[1];\n for (var i = 0; i < state.keys.length; i += 2) {\n var shift = shiftTable[i >>> 1];\n kL = utils.r28shl(kL, shift);\n kR = utils.r28shl(kR, shift);\n utils.pc2(kL, kR, state.keys, i);\n }\n};\n\nDES.prototype._update = function _update(inp, inOff, out, outOff) {\n var state = this._desState;\n\n var l = utils.readUInt32BE(inp, inOff);\n var r = utils.readUInt32BE(inp, inOff + 4);\n\n // Initial Permutation\n utils.ip(l, r, state.tmp, 0);\n l = state.tmp[0];\n r = state.tmp[1];\n\n if (this.type === 'encrypt')\n this._encrypt(state, l, r, state.tmp, 0);\n else\n this._decrypt(state, l, r, state.tmp, 0);\n\n l = state.tmp[0];\n r = state.tmp[1];\n\n utils.writeUInt32BE(out, l, outOff);\n utils.writeUInt32BE(out, r, outOff + 4);\n};\n\nDES.prototype._pad = function _pad(buffer, off) {\n var value = buffer.length - off;\n for (var i = off; i < buffer.length; i++)\n buffer[i] = value;\n\n return true;\n};\n\nDES.prototype._unpad = function _unpad(buffer) {\n var pad = buffer[buffer.length - 1];\n for (var i = buffer.length - pad; i < buffer.length; i++)\n assert.equal(buffer[i], pad);\n\n return buffer.slice(0, buffer.length - pad);\n};\n\nDES.prototype._encrypt = function _encrypt(state, lStart, rStart, out, off) {\n var l = lStart;\n var r = rStart;\n\n // Apply f() x16 times\n for (var i = 0; i < state.keys.length; i += 2) {\n var keyL = state.keys[i];\n var keyR = state.keys[i + 1];\n\n // f(r, k)\n utils.expand(r, state.tmp, 0);\n\n keyL ^= state.tmp[0];\n keyR ^= state.tmp[1];\n var s = utils.substitute(keyL, keyR);\n var f = utils.permute(s);\n\n var t = r;\n r = (l ^ f) >>> 0;\n l = t;\n }\n\n // Reverse Initial Permutation\n utils.rip(r, l, out, off);\n};\n\nDES.prototype._decrypt = function _decrypt(state, lStart, rStart, out, off) {\n var l = rStart;\n var r = lStart;\n\n // Apply f() x16 times\n for (var i = state.keys.length - 2; i >= 0; i -= 2) {\n var keyL = state.keys[i];\n var keyR = state.keys[i + 1];\n\n // f(r, k)\n utils.expand(l, state.tmp, 0);\n\n keyL ^= state.tmp[0];\n keyR ^= state.tmp[1];\n var s = utils.substitute(keyL, keyR);\n var f = utils.permute(s);\n\n var t = l;\n l = (r ^ f) >>> 0;\n r = t;\n }\n\n // Reverse Initial Permutation\n utils.rip(l, r, out, off);\n};\n"]},"metadata":{},"sourceType":"script"}