{"id":"node_modules/diffie-hellman/lib/dh.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/diffie-hellman/package.json","includedInParent":true,"mtime":1542304152011},{"name":"bn.js","loc":{"line":1,"column":17},"parent":"/www/ml-classifier/example/node_modules/diffie-hellman/lib/dh.js","resolved":"/www/ml-classifier/example/node_modules/bn.js/lib/bn.js"},{"name":"miller-rabin","loc":{"line":2,"column":26},"parent":"/www/ml-classifier/example/node_modules/diffie-hellman/lib/dh.js","resolved":"/www/ml-classifier/example/node_modules/miller-rabin/lib/mr.js"},{"name":"./generatePrime","loc":{"line":9,"column":21},"parent":"/www/ml-classifier/example/node_modules/diffie-hellman/lib/dh.js","resolved":"/www/ml-classifier/example/node_modules/diffie-hellman/lib/generatePrime.js"},{"name":"randombytes","loc":{"line":10,"column":26},"parent":"/www/ml-classifier/example/node_modules/diffie-hellman/lib/dh.js","resolved":"/www/ml-classifier/example/node_modules/randombytes/browser.js"},{"name":"buffer","parent":"/www/ml-classifier/example/node_modules/diffie-hellman/lib/dh.js","resolved":"/www/ml-classifier/example/node_modules/buffer/index.js"}],"generated":{"js":"var Buffer = require(\"buffer\").Buffer;\nvar BN = require('bn.js');\nvar MillerRabin = require('miller-rabin');\nvar millerRabin = new MillerRabin();\nvar TWENTYFOUR = new BN(24);\nvar ELEVEN = new BN(11);\nvar TEN = new BN(10);\nvar THREE = new BN(3);\nvar SEVEN = new BN(7);\nvar primes = require('./generatePrime');\nvar randomBytes = require('randombytes');\nmodule.exports = DH;\n\nfunction setPublicKey(pub, enc) {\n  enc = enc || 'utf8';\n  if (!Buffer.isBuffer(pub)) {\n    pub = new Buffer(pub, enc);\n  }\n  this._pub = new BN(pub);\n  return this;\n}\n\nfunction setPrivateKey(priv, enc) {\n  enc = enc || 'utf8';\n  if (!Buffer.isBuffer(priv)) {\n    priv = new Buffer(priv, enc);\n  }\n  this._priv = new BN(priv);\n  return this;\n}\n\nvar primeCache = {};\nfunction checkPrime(prime, generator) {\n  var gen = generator.toString('hex');\n  var hex = [gen, prime.toString(16)].join('_');\n  if (hex in primeCache) {\n    return primeCache[hex];\n  }\n  var error = 0;\n\n  if (prime.isEven() ||\n    !primes.simpleSieve ||\n    !primes.fermatTest(prime) ||\n    !millerRabin.test(prime)) {\n    //not a prime so +1\n    error += 1;\n\n    if (gen === '02' || gen === '05') {\n      // we'd be able to check the generator\n      // it would fail so +8\n      error += 8;\n    } else {\n      //we wouldn't be able to test the generator\n      // so +4\n      error += 4;\n    }\n    primeCache[hex] = error;\n    return error;\n  }\n  if (!millerRabin.test(prime.shrn(1))) {\n    //not a safe prime\n    error += 2;\n  }\n  var rem;\n  switch (gen) {\n    case '02':\n      if (prime.mod(TWENTYFOUR).cmp(ELEVEN)) {\n        // unsuidable generator\n        error += 8;\n      }\n      break;\n    case '05':\n      rem = prime.mod(TEN);\n      if (rem.cmp(THREE) && rem.cmp(SEVEN)) {\n        // prime mod 10 needs to equal 3 or 7\n        error += 8;\n      }\n      break;\n    default:\n      error += 4;\n  }\n  primeCache[hex] = error;\n  return error;\n}\n\nfunction DH(prime, generator, malleable) {\n  this.setGenerator(generator);\n  this.__prime = new BN(prime);\n  this._prime = BN.mont(this.__prime);\n  this._primeLen = prime.length;\n  this._pub = undefined;\n  this._priv = undefined;\n  this._primeCode = undefined;\n  if (malleable) {\n    this.setPublicKey = setPublicKey;\n    this.setPrivateKey = setPrivateKey;\n  } else {\n    this._primeCode = 8;\n  }\n}\nObject.defineProperty(DH.prototype, 'verifyError', {\n  enumerable: true,\n  get: function () {\n    if (typeof this._primeCode !== 'number') {\n      this._primeCode = checkPrime(this.__prime, this.__gen);\n    }\n    return this._primeCode;\n  }\n});\nDH.prototype.generateKeys = function () {\n  if (!this._priv) {\n    this._priv = new BN(randomBytes(this._primeLen));\n  }\n  this._pub = this._gen.toRed(this._prime).redPow(this._priv).fromRed();\n  return this.getPublicKey();\n};\n\nDH.prototype.computeSecret = function (other) {\n  other = new BN(other);\n  other = other.toRed(this._prime);\n  var secret = other.redPow(this._priv).fromRed();\n  var out = new Buffer(secret.toArray());\n  var prime = this.getPrime();\n  if (out.length < prime.length) {\n    var front = new Buffer(prime.length - out.length);\n    front.fill(0);\n    out = Buffer.concat([front, out]);\n  }\n  return out;\n};\n\nDH.prototype.getPublicKey = function getPublicKey(enc) {\n  return formatReturnValue(this._pub, enc);\n};\n\nDH.prototype.getPrivateKey = function getPrivateKey(enc) {\n  return formatReturnValue(this._priv, enc);\n};\n\nDH.prototype.getPrime = function (enc) {\n  return formatReturnValue(this.__prime, enc);\n};\n\nDH.prototype.getGenerator = function (enc) {\n  return formatReturnValue(this._gen, enc);\n};\n\nDH.prototype.setGenerator = function (gen, enc) {\n  enc = enc || 'utf8';\n  if (!Buffer.isBuffer(gen)) {\n    gen = new Buffer(gen, enc);\n  }\n  this.__gen = gen;\n  this._gen = new BN(gen);\n  return this;\n};\n\nfunction formatReturnValue(bn, enc) {\n  var buf = new Buffer(bn.toArray());\n  if (!enc) {\n    return buf;\n  } else {\n    return buf.toString(enc);\n  }\n}\n","map":{"mappings":[{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":1,"column":0},"generated":{"line":2,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":2,"column":0},"generated":{"line":3,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":3,"column":0},"generated":{"line":4,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":4,"column":0},"generated":{"line":5,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":5,"column":0},"generated":{"line":6,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":6,"column":0},"generated":{"line":7,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":7,"column":0},"generated":{"line":8,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":8,"column":0},"generated":{"line":9,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":9,"column":0},"generated":{"line":10,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":10,"column":0},"generated":{"line":11,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":11,"column":0},"generated":{"line":12,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":12,"column":0},"generated":{"line":13,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":13,"column":0},"generated":{"line":14,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":14,"column":0},"generated":{"line":15,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":15,"column":0},"generated":{"line":16,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":16,"column":0},"generated":{"line":17,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":17,"column":0},"generated":{"line":18,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":18,"column":0},"generated":{"line":19,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":19,"column":0},"generated":{"line":20,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":20,"column":0},"generated":{"line":21,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":21,"column":0},"generated":{"line":22,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":22,"column":0},"generated":{"line":23,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":23,"column":0},"generated":{"line":24,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":24,"column":0},"generated":{"line":25,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":25,"column":0},"generated":{"line":26,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":26,"column":0},"generated":{"line":27,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":27,"column":0},"generated":{"line":28,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":28,"column":0},"generated":{"line":29,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":29,"column":0},"generated":{"line":30,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":30,"column":0},"generated":{"line":31,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":31,"column":0},"generated":{"line":32,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":32,"column":0},"generated":{"line":33,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":33,"column":0},"generated":{"line":34,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":34,"column":0},"generated":{"line":35,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":35,"column":0},"generated":{"line":36,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":36,"column":0},"generated":{"line":37,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":37,"column":0},"generated":{"line":38,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":38,"column":0},"generated":{"line":39,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":39,"column":0},"generated":{"line":40,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":40,"column":0},"generated":{"line":41,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":41,"column":0},"generated":{"line":42,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":42,"column":0},"generated":{"line":43,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":43,"column":0},"generated":{"line":44,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":44,"column":0},"generated":{"line":45,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":45,"column":0},"generated":{"line":46,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":46,"column":0},"generated":{"line":47,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":47,"column":0},"generated":{"line":48,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":48,"column":0},"generated":{"line":49,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":49,"column":0},"generated":{"line":50,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":50,"column":0},"generated":{"line":51,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":51,"column":0},"generated":{"line":52,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":52,"column":0},"generated":{"line":53,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":53,"column":0},"generated":{"line":54,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":54,"column":0},"generated":{"line":55,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":55,"column":0},"generated":{"line":56,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":56,"column":0},"generated":{"line":57,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":57,"column":0},"generated":{"line":58,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":58,"column":0},"generated":{"line":59,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":59,"column":0},"generated":{"line":60,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":60,"column":0},"generated":{"line":61,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":61,"column":0},"generated":{"line":62,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":62,"column":0},"generated":{"line":63,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":63,"column":0},"generated":{"line":64,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":64,"column":0},"generated":{"line":65,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":65,"column":0},"generated":{"line":66,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":66,"column":0},"generated":{"line":67,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":67,"column":0},"generated":{"line":68,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":68,"column":0},"generated":{"line":69,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":69,"column":0},"generated":{"line":70,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":70,"column":0},"generated":{"line":71,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":71,"column":0},"generated":{"line":72,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":72,"column":0},"generated":{"line":73,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":73,"column":0},"generated":{"line":74,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":74,"column":0},"generated":{"line":75,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":75,"column":0},"generated":{"line":76,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":76,"column":0},"generated":{"line":77,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":77,"column":0},"generated":{"line":78,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":78,"column":0},"generated":{"line":79,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":79,"column":0},"generated":{"line":80,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":80,"column":0},"generated":{"line":81,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":81,"column":0},"generated":{"line":82,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":82,"column":0},"generated":{"line":83,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":83,"column":0},"generated":{"line":84,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":84,"column":0},"generated":{"line":85,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":85,"column":0},"generated":{"line":86,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":86,"column":0},"generated":{"line":87,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":87,"column":0},"generated":{"line":88,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":88,"column":0},"generated":{"line":89,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":89,"column":0},"generated":{"line":90,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":90,"column":0},"generated":{"line":91,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":91,"column":0},"generated":{"line":92,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":92,"column":0},"generated":{"line":93,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":93,"column":0},"generated":{"line":94,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":94,"column":0},"generated":{"line":95,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":95,"column":0},"generated":{"line":96,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":96,"column":0},"generated":{"line":97,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":97,"column":0},"generated":{"line":98,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":98,"column":0},"generated":{"line":99,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":99,"column":0},"generated":{"line":100,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":100,"column":0},"generated":{"line":101,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":101,"column":0},"generated":{"line":102,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":102,"column":0},"generated":{"line":103,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":103,"column":0},"generated":{"line":104,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":104,"column":0},"generated":{"line":105,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":105,"column":0},"generated":{"line":106,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":106,"column":0},"generated":{"line":107,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":107,"column":0},"generated":{"line":108,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":108,"column":0},"generated":{"line":109,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":109,"column":0},"generated":{"line":110,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":110,"column":0},"generated":{"line":111,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":111,"column":0},"generated":{"line":112,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":112,"column":0},"generated":{"line":113,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":113,"column":0},"generated":{"line":114,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":114,"column":0},"generated":{"line":115,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":115,"column":0},"generated":{"line":116,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":116,"column":0},"generated":{"line":117,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":117,"column":0},"generated":{"line":118,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":118,"column":0},"generated":{"line":119,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":119,"column":0},"generated":{"line":120,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":120,"column":0},"generated":{"line":121,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":121,"column":0},"generated":{"line":122,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":122,"column":0},"generated":{"line":123,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":123,"column":0},"generated":{"line":124,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":124,"column":0},"generated":{"line":125,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":125,"column":0},"generated":{"line":126,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":126,"column":0},"generated":{"line":127,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":127,"column":0},"generated":{"line":128,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":128,"column":0},"generated":{"line":129,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":129,"column":0},"generated":{"line":130,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":130,"column":0},"generated":{"line":131,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":131,"column":0},"generated":{"line":132,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":132,"column":0},"generated":{"line":133,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":133,"column":0},"generated":{"line":134,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":134,"column":0},"generated":{"line":135,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":135,"column":0},"generated":{"line":136,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":136,"column":0},"generated":{"line":137,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":137,"column":0},"generated":{"line":138,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":138,"column":0},"generated":{"line":139,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":139,"column":0},"generated":{"line":140,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":140,"column":0},"generated":{"line":141,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":141,"column":0},"generated":{"line":142,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":142,"column":0},"generated":{"line":143,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":143,"column":0},"generated":{"line":144,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":144,"column":0},"generated":{"line":145,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":145,"column":0},"generated":{"line":146,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":146,"column":0},"generated":{"line":147,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":147,"column":0},"generated":{"line":148,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":148,"column":0},"generated":{"line":149,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":149,"column":0},"generated":{"line":150,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":150,"column":0},"generated":{"line":151,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":151,"column":0},"generated":{"line":152,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":152,"column":0},"generated":{"line":153,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":153,"column":0},"generated":{"line":154,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":154,"column":0},"generated":{"line":155,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":155,"column":0},"generated":{"line":156,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":156,"column":0},"generated":{"line":157,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":157,"column":0},"generated":{"line":158,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":158,"column":0},"generated":{"line":159,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":159,"column":0},"generated":{"line":160,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":160,"column":0},"generated":{"line":161,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":161,"column":0},"generated":{"line":162,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":162,"column":0},"generated":{"line":163,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":163,"column":0},"generated":{"line":164,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":164,"column":0},"generated":{"line":165,"column":0}},{"source":"node_modules/diffie-hellman/lib/dh.js","original":{"line":165,"column":0},"generated":{"line":166,"column":0}}],"sources":{"node_modules/diffie-hellman/lib/dh.js":"var BN = require('bn.js');\nvar MillerRabin = require('miller-rabin');\nvar millerRabin = new MillerRabin();\nvar TWENTYFOUR = new BN(24);\nvar ELEVEN = new BN(11);\nvar TEN = new BN(10);\nvar THREE = new BN(3);\nvar SEVEN = new BN(7);\nvar primes = require('./generatePrime');\nvar randomBytes = require('randombytes');\nmodule.exports = DH;\n\nfunction setPublicKey(pub, enc) {\n  enc = enc || 'utf8';\n  if (!Buffer.isBuffer(pub)) {\n    pub = new Buffer(pub, enc);\n  }\n  this._pub = new BN(pub);\n  return this;\n}\n\nfunction setPrivateKey(priv, enc) {\n  enc = enc || 'utf8';\n  if (!Buffer.isBuffer(priv)) {\n    priv = new Buffer(priv, enc);\n  }\n  this._priv = new BN(priv);\n  return this;\n}\n\nvar primeCache = {};\nfunction checkPrime(prime, generator) {\n  var gen = generator.toString('hex');\n  var hex = [gen, prime.toString(16)].join('_');\n  if (hex in primeCache) {\n    return primeCache[hex];\n  }\n  var error = 0;\n\n  if (prime.isEven() ||\n    !primes.simpleSieve ||\n    !primes.fermatTest(prime) ||\n    !millerRabin.test(prime)) {\n    //not a prime so +1\n    error += 1;\n\n    if (gen === '02' || gen === '05') {\n      // we'd be able to check the generator\n      // it would fail so +8\n      error += 8;\n    } else {\n      //we wouldn't be able to test the generator\n      // so +4\n      error += 4;\n    }\n    primeCache[hex] = error;\n    return error;\n  }\n  if (!millerRabin.test(prime.shrn(1))) {\n    //not a safe prime\n    error += 2;\n  }\n  var rem;\n  switch (gen) {\n    case '02':\n      if (prime.mod(TWENTYFOUR).cmp(ELEVEN)) {\n        // unsuidable generator\n        error += 8;\n      }\n      break;\n    case '05':\n      rem = prime.mod(TEN);\n      if (rem.cmp(THREE) && rem.cmp(SEVEN)) {\n        // prime mod 10 needs to equal 3 or 7\n        error += 8;\n      }\n      break;\n    default:\n      error += 4;\n  }\n  primeCache[hex] = error;\n  return error;\n}\n\nfunction DH(prime, generator, malleable) {\n  this.setGenerator(generator);\n  this.__prime = new BN(prime);\n  this._prime = BN.mont(this.__prime);\n  this._primeLen = prime.length;\n  this._pub = undefined;\n  this._priv = undefined;\n  this._primeCode = undefined;\n  if (malleable) {\n    this.setPublicKey = setPublicKey;\n    this.setPrivateKey = setPrivateKey;\n  } else {\n    this._primeCode = 8;\n  }\n}\nObject.defineProperty(DH.prototype, 'verifyError', {\n  enumerable: true,\n  get: function () {\n    if (typeof this._primeCode !== 'number') {\n      this._primeCode = checkPrime(this.__prime, this.__gen);\n    }\n    return this._primeCode;\n  }\n});\nDH.prototype.generateKeys = function () {\n  if (!this._priv) {\n    this._priv = new BN(randomBytes(this._primeLen));\n  }\n  this._pub = this._gen.toRed(this._prime).redPow(this._priv).fromRed();\n  return this.getPublicKey();\n};\n\nDH.prototype.computeSecret = function (other) {\n  other = new BN(other);\n  other = other.toRed(this._prime);\n  var secret = other.redPow(this._priv).fromRed();\n  var out = new Buffer(secret.toArray());\n  var prime = this.getPrime();\n  if (out.length < prime.length) {\n    var front = new Buffer(prime.length - out.length);\n    front.fill(0);\n    out = Buffer.concat([front, out]);\n  }\n  return out;\n};\n\nDH.prototype.getPublicKey = function getPublicKey(enc) {\n  return formatReturnValue(this._pub, enc);\n};\n\nDH.prototype.getPrivateKey = function getPrivateKey(enc) {\n  return formatReturnValue(this._priv, enc);\n};\n\nDH.prototype.getPrime = function (enc) {\n  return formatReturnValue(this.__prime, enc);\n};\n\nDH.prototype.getGenerator = function (enc) {\n  return formatReturnValue(this._gen, enc);\n};\n\nDH.prototype.setGenerator = function (gen, enc) {\n  enc = enc || 'utf8';\n  if (!Buffer.isBuffer(gen)) {\n    gen = new Buffer(gen, enc);\n  }\n  this.__gen = gen;\n  this._gen = new BN(gen);\n  return this;\n};\n\nfunction formatReturnValue(bn, enc) {\n  var buf = new Buffer(bn.toArray());\n  if (!enc) {\n    return buf;\n  } else {\n    return buf.toString(enc);\n  }\n}\n"},"lineCount":166}},"hash":"480d6008c10d8a39b7c19292c921dd52","cacheData":{"env":{}}}