{"id":"node_modules/des.js/lib/des/des.js","dependencies":[{"name":"/www/ml-classifier/example/package.json","includedInParent":true,"mtime":1551949031632},{"name":"/www/ml-classifier/example/.babelrc","includedInParent":true,"mtime":1551703756168},{"name":"/www/ml-classifier/example/node_modules/des.js/package.json","includedInParent":true,"mtime":1542304152748},{"name":"minimalistic-assert","loc":{"line":3,"column":21},"parent":"/www/ml-classifier/example/node_modules/des.js/lib/des/des.js","resolved":"/www/ml-classifier/example/node_modules/minimalistic-assert/index.js"},{"name":"inherits","loc":{"line":4,"column":23},"parent":"/www/ml-classifier/example/node_modules/des.js/lib/des/des.js","resolved":"/www/ml-classifier/example/node_modules/inherits/inherits_browser.js"},{"name":"../des","loc":{"line":6,"column":18},"parent":"/www/ml-classifier/example/node_modules/des.js/lib/des/des.js","resolved":"/www/ml-classifier/example/node_modules/des.js/lib/des.js"}],"generated":{"js":"'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nvar des = require('../des');\nvar utils = des.utils;\nvar Cipher = des.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","map":{"mappings":[{"source":"node_modules/des.js/lib/des/des.js","original":{"line":1,"column":0},"generated":{"line":1,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":2,"column":0},"generated":{"line":2,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":3,"column":0},"generated":{"line":3,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":4,"column":0},"generated":{"line":4,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":5,"column":0},"generated":{"line":5,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":6,"column":0},"generated":{"line":6,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":7,"column":0},"generated":{"line":7,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":8,"column":0},"generated":{"line":8,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":9,"column":0},"generated":{"line":9,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":10,"column":0},"generated":{"line":10,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":11,"column":0},"generated":{"line":11,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":12,"column":0},"generated":{"line":12,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":13,"column":0},"generated":{"line":13,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":14,"column":0},"generated":{"line":14,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":15,"column":0},"generated":{"line":15,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":16,"column":0},"generated":{"line":16,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":17,"column":0},"generated":{"line":17,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":18,"column":0},"generated":{"line":18,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":19,"column":0},"generated":{"line":19,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":20,"column":0},"generated":{"line":20,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":21,"column":0},"generated":{"line":21,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":22,"column":0},"generated":{"line":22,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":23,"column":0},"generated":{"line":23,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":24,"column":0},"generated":{"line":24,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":25,"column":0},"generated":{"line":25,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":26,"column":0},"generated":{"line":26,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":27,"column":0},"generated":{"line":27,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":28,"column":0},"generated":{"line":28,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":29,"column":0},"generated":{"line":29,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":30,"column":0},"generated":{"line":30,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":31,"column":0},"generated":{"line":31,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":32,"column":0},"generated":{"line":32,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":33,"column":0},"generated":{"line":33,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":34,"column":0},"generated":{"line":34,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":35,"column":0},"generated":{"line":35,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":36,"column":0},"generated":{"line":36,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":37,"column":0},"generated":{"line":37,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":38,"column":0},"generated":{"line":38,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":39,"column":0},"generated":{"line":39,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":40,"column":0},"generated":{"line":40,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":41,"column":0},"generated":{"line":41,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":42,"column":0},"generated":{"line":42,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":43,"column":0},"generated":{"line":43,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":44,"column":0},"generated":{"line":44,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":45,"column":0},"generated":{"line":45,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":46,"column":0},"generated":{"line":46,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":47,"column":0},"generated":{"line":47,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":48,"column":0},"generated":{"line":48,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":49,"column":0},"generated":{"line":49,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":50,"column":0},"generated":{"line":50,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":51,"column":0},"generated":{"line":51,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":52,"column":0},"generated":{"line":52,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":53,"column":0},"generated":{"line":53,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":54,"column":0},"generated":{"line":54,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":55,"column":0},"generated":{"line":55,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":56,"column":0},"generated":{"line":56,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":57,"column":0},"generated":{"line":57,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":58,"column":0},"generated":{"line":58,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":59,"column":0},"generated":{"line":59,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":60,"column":0},"generated":{"line":60,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":61,"column":0},"generated":{"line":61,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":62,"column":0},"generated":{"line":62,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":63,"column":0},"generated":{"line":63,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":64,"column":0},"generated":{"line":64,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":65,"column":0},"generated":{"line":65,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":66,"column":0},"generated":{"line":66,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":67,"column":0},"generated":{"line":67,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":68,"column":0},"generated":{"line":68,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":69,"column":0},"generated":{"line":69,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":70,"column":0},"generated":{"line":70,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":71,"column":0},"generated":{"line":71,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":72,"column":0},"generated":{"line":72,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":73,"column":0},"generated":{"line":73,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":74,"column":0},"generated":{"line":74,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":75,"column":0},"generated":{"line":75,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":76,"column":0},"generated":{"line":76,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":77,"column":0},"generated":{"line":77,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":78,"column":0},"generated":{"line":78,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":79,"column":0},"generated":{"line":79,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":80,"column":0},"generated":{"line":80,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":81,"column":0},"generated":{"line":81,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":82,"column":0},"generated":{"line":82,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":83,"column":0},"generated":{"line":83,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":84,"column":0},"generated":{"line":84,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":85,"column":0},"generated":{"line":85,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":86,"column":0},"generated":{"line":86,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":87,"column":0},"generated":{"line":87,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":88,"column":0},"generated":{"line":88,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":89,"column":0},"generated":{"line":89,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":90,"column":0},"generated":{"line":90,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":91,"column":0},"generated":{"line":91,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":92,"column":0},"generated":{"line":92,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":93,"column":0},"generated":{"line":93,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":94,"column":0},"generated":{"line":94,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":95,"column":0},"generated":{"line":95,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":96,"column":0},"generated":{"line":96,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":97,"column":0},"generated":{"line":97,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":98,"column":0},"generated":{"line":98,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":99,"column":0},"generated":{"line":99,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":100,"column":0},"generated":{"line":100,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":101,"column":0},"generated":{"line":101,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":102,"column":0},"generated":{"line":102,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":103,"column":0},"generated":{"line":103,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":104,"column":0},"generated":{"line":104,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":105,"column":0},"generated":{"line":105,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":106,"column":0},"generated":{"line":106,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":107,"column":0},"generated":{"line":107,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":108,"column":0},"generated":{"line":108,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":109,"column":0},"generated":{"line":109,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":110,"column":0},"generated":{"line":110,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":111,"column":0},"generated":{"line":111,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":112,"column":0},"generated":{"line":112,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":113,"column":0},"generated":{"line":113,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":114,"column":0},"generated":{"line":114,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":115,"column":0},"generated":{"line":115,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":116,"column":0},"generated":{"line":116,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":117,"column":0},"generated":{"line":117,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":118,"column":0},"generated":{"line":118,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":119,"column":0},"generated":{"line":119,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":120,"column":0},"generated":{"line":120,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":121,"column":0},"generated":{"line":121,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":122,"column":0},"generated":{"line":122,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":123,"column":0},"generated":{"line":123,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":124,"column":0},"generated":{"line":124,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":125,"column":0},"generated":{"line":125,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":126,"column":0},"generated":{"line":126,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":127,"column":0},"generated":{"line":127,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":128,"column":0},"generated":{"line":128,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":129,"column":0},"generated":{"line":129,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":130,"column":0},"generated":{"line":130,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":131,"column":0},"generated":{"line":131,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":132,"column":0},"generated":{"line":132,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":133,"column":0},"generated":{"line":133,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":134,"column":0},"generated":{"line":134,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":135,"column":0},"generated":{"line":135,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":136,"column":0},"generated":{"line":136,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":137,"column":0},"generated":{"line":137,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":138,"column":0},"generated":{"line":138,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":139,"column":0},"generated":{"line":139,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":140,"column":0},"generated":{"line":140,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":141,"column":0},"generated":{"line":141,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":142,"column":0},"generated":{"line":142,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":143,"column":0},"generated":{"line":143,"column":0}},{"source":"node_modules/des.js/lib/des/des.js","original":{"line":144,"column":0},"generated":{"line":144,"column":0}}],"sources":{"node_modules/des.js/lib/des/des.js":"'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nvar des = require('../des');\nvar utils = des.utils;\nvar Cipher = des.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"},"lineCount":144}},"hash":"3bdc07d33b6b95ee9d755157002d9155","cacheData":{"env":{}}}