{"id":"node_modules/public-encrypt/privateDecrypt.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/public-encrypt/package.json","includedInParent":true,"mtime":1542583798549},{"name":"parse-asn1","loc":{"line":1,"column":24},"parent":"/www/ml-classifier/example/node_modules/public-encrypt/privateDecrypt.js","resolved":"/www/ml-classifier/example/node_modules/parse-asn1/index.js"},{"name":"./mgf","loc":{"line":2,"column":18},"parent":"/www/ml-classifier/example/node_modules/public-encrypt/privateDecrypt.js","resolved":"/www/ml-classifier/example/node_modules/public-encrypt/mgf.js"},{"name":"./xor","loc":{"line":3,"column":18},"parent":"/www/ml-classifier/example/node_modules/public-encrypt/privateDecrypt.js","resolved":"/www/ml-classifier/example/node_modules/public-encrypt/xor.js"},{"name":"bn.js","loc":{"line":4,"column":17},"parent":"/www/ml-classifier/example/node_modules/public-encrypt/privateDecrypt.js","resolved":"/www/ml-classifier/example/node_modules/bn.js/lib/bn.js"},{"name":"browserify-rsa","loc":{"line":5,"column":18},"parent":"/www/ml-classifier/example/node_modules/public-encrypt/privateDecrypt.js","resolved":"/www/ml-classifier/example/node_modules/browserify-rsa/index.js"},{"name":"create-hash","loc":{"line":6,"column":25},"parent":"/www/ml-classifier/example/node_modules/public-encrypt/privateDecrypt.js","resolved":"/www/ml-classifier/example/node_modules/create-hash/browser.js"},{"name":"./withPublic","loc":{"line":7,"column":25},"parent":"/www/ml-classifier/example/node_modules/public-encrypt/privateDecrypt.js","resolved":"/www/ml-classifier/example/node_modules/public-encrypt/withPublic.js"},{"name":"safe-buffer","loc":{"line":8,"column":21},"parent":"/www/ml-classifier/example/node_modules/public-encrypt/privateDecrypt.js","resolved":"/www/ml-classifier/example/node_modules/safe-buffer/index.js"}],"generated":{"js":"\nvar parseKeys = require('parse-asn1')\nvar mgf = require('./mgf')\nvar xor = require('./xor')\nvar BN = require('bn.js')\nvar crt = require('browserify-rsa')\nvar createHash = require('create-hash')\nvar withPublic = require('./withPublic')\nvar Buffer = require('safe-buffer').Buffer\n\nmodule.exports = function privateDecrypt (privateKey, enc, reverse) {\n  var padding\n  if (privateKey.padding) {\n    padding = privateKey.padding\n  } else if (reverse) {\n    padding = 1\n  } else {\n    padding = 4\n  }\n\n  var key = parseKeys(privateKey)\n  var k = key.modulus.byteLength()\n  if (enc.length > k || new BN(enc).cmp(key.modulus) >= 0) {\n    throw new Error('decryption error')\n  }\n  var msg\n  if (reverse) {\n    msg = withPublic(new BN(enc), key)\n  } else {\n    msg = crt(enc, key)\n  }\n  var zBuffer = Buffer.alloc(k - msg.length)\n  msg = Buffer.concat([zBuffer, msg], k)\n  if (padding === 4) {\n    return oaep(key, msg)\n  } else if (padding === 1) {\n    return pkcs1(key, msg, reverse)\n  } else if (padding === 3) {\n    return msg\n  } else {\n    throw new Error('unknown padding')\n  }\n}\n\nfunction oaep (key, msg) {\n  var k = key.modulus.byteLength()\n  var iHash = createHash('sha1').update(Buffer.alloc(0)).digest()\n  var hLen = iHash.length\n  if (msg[0] !== 0) {\n    throw new Error('decryption error')\n  }\n  var maskedSeed = msg.slice(1, hLen + 1)\n  var maskedDb = msg.slice(hLen + 1)\n  var seed = xor(maskedSeed, mgf(maskedDb, hLen))\n  var db = xor(maskedDb, mgf(seed, k - hLen - 1))\n  if (compare(iHash, db.slice(0, hLen))) {\n    throw new Error('decryption error')\n  }\n  var i = hLen\n  while (db[i] === 0) {\n    i++\n  }\n  if (db[i++] !== 1) {\n    throw new Error('decryption error')\n  }\n  return db.slice(i)\n}\n\nfunction pkcs1 (key, msg, reverse) {\n  var p1 = msg.slice(0, 2)\n  var i = 2\n  var status = 0\n  while (msg[i++] !== 0) {\n    if (i >= msg.length) {\n      status++\n      break\n    }\n  }\n  var ps = msg.slice(2, i - 1)\n\n  if ((p1.toString('hex') !== '0002' && !reverse) || (p1.toString('hex') !== '0001' && reverse)) {\n    status++\n  }\n  if (ps.length < 8) {\n    status++\n  }\n  if (status) {\n    throw new Error('decryption error')\n  }\n  return msg.slice(i)\n}\nfunction compare (a, b) {\n  a = Buffer.from(a)\n  b = Buffer.from(b)\n  var dif = 0\n  var len = a.length\n  if (a.length !== b.length) {\n    dif++\n    len = Math.min(a.length, b.length)\n  }\n  var i = -1\n  while (++i < len) {\n    dif += (a[i] ^ b[i])\n  }\n  return dif\n}\n","map":{"mappings":[{"source":"node_modules/public-encrypt/privateDecrypt.js","original":{"line":1,"column":0},"generated":{"line":2,"column":0}},{"source":"node_modules/public-encrypt/privateDecrypt.js","original":{"line":2,"column":0},"generated":{"line":3,"column":0}},{"source":"node_modules/public-encrypt/privateDecrypt.js","original":{"line":3,"column":0},"generated":{"line":4,"column":0}},{"source":"node_modules/public-encrypt/privateDecrypt.js","original":{"line":4,"column":0},"generated":{"line":5,"column":0}},{"source":"node_modules/public-encrypt/privateDecrypt.js","original":{"line":5,"column":0},"generated":{"line":6,"column":0}},{"source":"node_modules/public-encrypt/privateDecrypt.js","original":{"line":6,"column":0},"generated":{"line":7,"column":0}},{"source":"node_modules/public-encrypt/privateDecrypt.js","original":{"line":7,"column":0},"generated":{"line":8,"column":0}},{"source":"node_modules/public-encrypt/privateDecrypt.js","original":{"line":8,"column":0},"generated":{"line":9,"column":0}},{"source":"node_modules/public-encrypt/privateDecrypt.js","original":{"line":9,"column":0},"generated":{"line":10,"column":0}},{"source":"node_modules/public-encrypt/privateDecrypt.js","original":{"line":10,"column":0},"generated":{"line":11,"column":0}},{"source":"node_modules/public-encrypt/privateDecrypt.js","original":{"line":11,"column":0},"generated":{"line":12,"column":0}},{"source":"node_modules/public-encrypt/privateDecrypt.js","original":{"line":12,"column":0},"generated":{"line":13,"column":0}},{"source":"node_modules/public-encrypt/privateDecrypt.js","original":{"line":13,"column":0},"generated":{"line":14,"column":0}},{"source":"node_modules/public-encrypt/privateDecrypt.js","original":{"line":14,"column":0},"generated":{"line":15,"column":0}},{"source":"node_modules/public-encrypt/privateDecrypt.js","original":{"line":15,"column":0},"generated":{"line":16,"column":0}},{"source":"node_modules/public-encrypt/privateDecrypt.js","original":{"line":16,"column":0},"generated":{"line":17,"column":0}},{"source":"node_modules/public-encrypt/privateDecrypt.js","original":{"line":17,"column":0},"generated":{"line":18,"column":0}},{"source":"node_modules/public-encrypt/privateDecrypt.js","original":{"line":18,"column":0},"generated":{"line":19,"column":0}},{"source":"node_modules/public-encrypt/privateDecrypt.js","original":{"line":19,"column":0},"generated":{"line":20,"column":0}},{"source":"node_modules/public-encrypt/privateDecrypt.js","original":{"line":20,"column":0},"generated":{"line":21,"column":0}},{"source":"node_modules/public-encrypt/privateDecrypt.js","original":{"line":21,"column":0},"generated":{"line":22,"column":0}},{"source":"node_modules/public-encrypt/privateDecrypt.js","original":{"line":22,"column":0},"generated":{"line":23,"column":0}},{"source":"node_modules/public-encrypt/privateDecrypt.js","original":{"line":23,"column":0},"generated":{"line":24,"column":0}},{"source":"node_modules/public-encrypt/privateDecrypt.js","original":{"line":24,"column":0},"generated":{"line":25,"column":0}},{"source":"node_modules/public-encrypt/privateDecrypt.js","original":{"line":25,"column":0},"generated":{"line":26,"column":0}},{"source":"node_modules/public-encrypt/privateDecrypt.js","original":{"line":26,"column":0},"generated":{"line":27,"column":0}},{"source":"node_modules/public-encrypt/privateDecrypt.js","original":{"line":27,"column":0},"generated":{"line":28,"column":0}},{"source":"node_modules/public-encrypt/privateDecrypt.js","original":{"line":28,"column":0},"generated":{"line":29,"column":0}},{"source":"node_modules/public-encrypt/privateDecrypt.js","original":{"line":29,"column":0},"generated":{"line":30,"column":0}},{"source":"node_modules/public-encrypt/privateDecrypt.js","original":{"line":30,"column":0},"generated":{"line":31,"column":0}},{"source":"node_modules/public-encrypt/privateDecrypt.js","original":{"line":31,"column":0},"generated":{"line":32,"column":0}},{"source":"node_modules/public-encrypt/privateDecrypt.js","original":{"line":32,"column":0},"generated":{"line":33,"column":0}},{"source":"node_modules/public-encrypt/privateDecrypt.js","original":{"line":33,"column":0},"generated":{"line":34,"column":0}},{"source":"node_modules/public-encrypt/privateDecrypt.js","original":{"line":34,"column":0},"generated":{"line":35,"column":0}},{"source":"node_modules/public-encrypt/privateDecrypt.js","original":{"line":35,"column":0},"generated":{"line":36,"column":0}},{"source":"node_modules/public-encrypt/privateDecrypt.js","original":{"line":36,"column":0},"generated":{"line":37,"column":0}},{"source":"node_modules/public-encrypt/privateDecrypt.js","original":{"line":37,"column":0},"generated":{"line":38,"column":0}},{"source":"node_modules/public-encrypt/privateDecrypt.js","original":{"line":38,"column":0},"generated":{"line":39,"column":0}},{"source":"node_modules/public-encrypt/privateDecrypt.js","original":{"line":39,"column":0},"generated":{"line":40,"column":0}},{"source":"node_modules/public-encrypt/privateDecrypt.js","original":{"line":40,"column":0},"generated":{"line":41,"column":0}},{"source":"node_modules/public-encrypt/privateDecrypt.js","original":{"line":41,"column":0},"generated":{"line":42,"column":0}},{"source":"node_modules/public-encrypt/privateDecrypt.js","original":{"line":42,"column":0},"generated":{"line":43,"column":0}},{"source":"node_modules/public-encrypt/privateDecrypt.js","original":{"line":43,"column":0},"generated":{"line":44,"column":0}},{"source":"node_modules/public-encrypt/privateDecrypt.js","original":{"line":44,"column":0},"generated":{"line":45,"column":0}},{"source":"node_modules/public-encrypt/privateDecrypt.js","original":{"line":45,"column":0},"generated":{"line":46,"column":0}},{"source":"node_modules/public-encrypt/privateDecrypt.js","original":{"line":46,"column":0},"generated":{"line":47,"column":0}},{"source":"node_modules/public-encrypt/privateDecrypt.js","original":{"line":47,"column":0},"generated":{"line":48,"column":0}},{"source":"node_modules/public-encrypt/privateDecrypt.js","original":{"line":48,"column":0},"generated":{"line":49,"column":0}},{"source":"node_modules/public-encrypt/privateDecrypt.js","original":{"line":49,"column":0},"generated":{"line":50,"column":0}},{"source":"node_modules/public-encrypt/privateDecrypt.js","original":{"line":50,"column":0},"generated":{"line":51,"column":0}},{"source":"node_modules/public-encrypt/privateDecrypt.js","original":{"line":51,"column":0},"generated":{"line":52,"column":0}},{"source":"node_modules/public-encrypt/privateDecrypt.js","original":{"line":52,"column":0},"generated":{"line":53,"column":0}},{"source":"node_modules/public-encrypt/privateDecrypt.js","original":{"line":53,"column":0},"generated":{"line":54,"column":0}},{"source":"node_modules/public-encrypt/privateDecrypt.js","original":{"line":54,"column":0},"generated":{"line":55,"column":0}},{"source":"node_modules/public-encrypt/privateDecrypt.js","original":{"line":55,"column":0},"generated":{"line":56,"column":0}},{"source":"node_modules/public-encrypt/privateDecrypt.js","original":{"line":56,"column":0},"generated":{"line":57,"column":0}},{"source":"node_modules/public-encrypt/privateDecrypt.js","original":{"line":57,"column":0},"generated":{"line":58,"column":0}},{"source":"node_modules/public-encrypt/privateDecrypt.js","original":{"line":58,"column":0},"generated":{"line":59,"column":0}},{"source":"node_modules/public-encrypt/privateDecrypt.js","original":{"line":59,"column":0},"generated":{"line":60,"column":0}},{"source":"node_modules/public-encrypt/privateDecrypt.js","original":{"line":60,"column":0},"generated":{"line":61,"column":0}},{"source":"node_modules/public-encrypt/privateDecrypt.js","original":{"line":61,"column":0},"generated":{"line":62,"column":0}},{"source":"node_modules/public-encrypt/privateDecrypt.js","original":{"line":62,"column":0},"generated":{"line":63,"column":0}},{"source":"node_modules/public-encrypt/privateDecrypt.js","original":{"line":63,"column":0},"generated":{"line":64,"column":0}},{"source":"node_modules/public-encrypt/privateDecrypt.js","original":{"line":64,"column":0},"generated":{"line":65,"column":0}},{"source":"node_modules/public-encrypt/privateDecrypt.js","original":{"line":65,"column":0},"generated":{"line":66,"column":0}},{"source":"node_modules/public-encrypt/privateDecrypt.js","original":{"line":66,"column":0},"generated":{"line":67,"column":0}},{"source":"node_modules/public-encrypt/privateDecrypt.js","original":{"line":67,"column":0},"generated":{"line":68,"column":0}},{"source":"node_modules/public-encrypt/privateDecrypt.js","original":{"line":68,"column":0},"generated":{"line":69,"column":0}},{"source":"node_modules/public-encrypt/privateDecrypt.js","original":{"line":69,"column":0},"generated":{"line":70,"column":0}},{"source":"node_modules/public-encrypt/privateDecrypt.js","original":{"line":70,"column":0},"generated":{"line":71,"column":0}},{"source":"node_modules/public-encrypt/privateDecrypt.js","original":{"line":71,"column":0},"generated":{"line":72,"column":0}},{"source":"node_modules/public-encrypt/privateDecrypt.js","original":{"line":72,"column":0},"generated":{"line":73,"column":0}},{"source":"node_modules/public-encrypt/privateDecrypt.js","original":{"line":73,"column":0},"generated":{"line":74,"column":0}},{"source":"node_modules/public-encrypt/privateDecrypt.js","original":{"line":74,"column":0},"generated":{"line":75,"column":0}},{"source":"node_modules/public-encrypt/privateDecrypt.js","original":{"line":75,"column":0},"generated":{"line":76,"column":0}},{"source":"node_modules/public-encrypt/privateDecrypt.js","original":{"line":76,"column":0},"generated":{"line":77,"column":0}},{"source":"node_modules/public-encrypt/privateDecrypt.js","original":{"line":77,"column":0},"generated":{"line":78,"column":0}},{"source":"node_modules/public-encrypt/privateDecrypt.js","original":{"line":78,"column":0},"generated":{"line":79,"column":0}},{"source":"node_modules/public-encrypt/privateDecrypt.js","original":{"line":79,"column":0},"generated":{"line":80,"column":0}},{"source":"node_modules/public-encrypt/privateDecrypt.js","original":{"line":80,"column":0},"generated":{"line":81,"column":0}},{"source":"node_modules/public-encrypt/privateDecrypt.js","original":{"line":81,"column":0},"generated":{"line":82,"column":0}},{"source":"node_modules/public-encrypt/privateDecrypt.js","original":{"line":82,"column":0},"generated":{"line":83,"column":0}},{"source":"node_modules/public-encrypt/privateDecrypt.js","original":{"line":83,"column":0},"generated":{"line":84,"column":0}},{"source":"node_modules/public-encrypt/privateDecrypt.js","original":{"line":84,"column":0},"generated":{"line":85,"column":0}},{"source":"node_modules/public-encrypt/privateDecrypt.js","original":{"line":85,"column":0},"generated":{"line":86,"column":0}},{"source":"node_modules/public-encrypt/privateDecrypt.js","original":{"line":86,"column":0},"generated":{"line":87,"column":0}},{"source":"node_modules/public-encrypt/privateDecrypt.js","original":{"line":87,"column":0},"generated":{"line":88,"column":0}},{"source":"node_modules/public-encrypt/privateDecrypt.js","original":{"line":88,"column":0},"generated":{"line":89,"column":0}},{"source":"node_modules/public-encrypt/privateDecrypt.js","original":{"line":89,"column":0},"generated":{"line":90,"column":0}},{"source":"node_modules/public-encrypt/privateDecrypt.js","original":{"line":90,"column":0},"generated":{"line":91,"column":0}},{"source":"node_modules/public-encrypt/privateDecrypt.js","original":{"line":91,"column":0},"generated":{"line":92,"column":0}},{"source":"node_modules/public-encrypt/privateDecrypt.js","original":{"line":92,"column":0},"generated":{"line":93,"column":0}},{"source":"node_modules/public-encrypt/privateDecrypt.js","original":{"line":93,"column":0},"generated":{"line":94,"column":0}},{"source":"node_modules/public-encrypt/privateDecrypt.js","original":{"line":94,"column":0},"generated":{"line":95,"column":0}},{"source":"node_modules/public-encrypt/privateDecrypt.js","original":{"line":95,"column":0},"generated":{"line":96,"column":0}},{"source":"node_modules/public-encrypt/privateDecrypt.js","original":{"line":96,"column":0},"generated":{"line":97,"column":0}},{"source":"node_modules/public-encrypt/privateDecrypt.js","original":{"line":97,"column":0},"generated":{"line":98,"column":0}},{"source":"node_modules/public-encrypt/privateDecrypt.js","original":{"line":98,"column":0},"generated":{"line":99,"column":0}},{"source":"node_modules/public-encrypt/privateDecrypt.js","original":{"line":99,"column":0},"generated":{"line":100,"column":0}},{"source":"node_modules/public-encrypt/privateDecrypt.js","original":{"line":100,"column":0},"generated":{"line":101,"column":0}},{"source":"node_modules/public-encrypt/privateDecrypt.js","original":{"line":101,"column":0},"generated":{"line":102,"column":0}},{"source":"node_modules/public-encrypt/privateDecrypt.js","original":{"line":102,"column":0},"generated":{"line":103,"column":0}},{"source":"node_modules/public-encrypt/privateDecrypt.js","original":{"line":103,"column":0},"generated":{"line":104,"column":0}},{"source":"node_modules/public-encrypt/privateDecrypt.js","original":{"line":104,"column":0},"generated":{"line":105,"column":0}},{"source":"node_modules/public-encrypt/privateDecrypt.js","original":{"line":105,"column":0},"generated":{"line":106,"column":0}},{"source":"node_modules/public-encrypt/privateDecrypt.js","original":{"line":106,"column":0},"generated":{"line":107,"column":0}}],"sources":{"node_modules/public-encrypt/privateDecrypt.js":"var parseKeys = require('parse-asn1')\nvar mgf = require('./mgf')\nvar xor = require('./xor')\nvar BN = require('bn.js')\nvar crt = require('browserify-rsa')\nvar createHash = require('create-hash')\nvar withPublic = require('./withPublic')\nvar Buffer = require('safe-buffer').Buffer\n\nmodule.exports = function privateDecrypt (privateKey, enc, reverse) {\n  var padding\n  if (privateKey.padding) {\n    padding = privateKey.padding\n  } else if (reverse) {\n    padding = 1\n  } else {\n    padding = 4\n  }\n\n  var key = parseKeys(privateKey)\n  var k = key.modulus.byteLength()\n  if (enc.length > k || new BN(enc).cmp(key.modulus) >= 0) {\n    throw new Error('decryption error')\n  }\n  var msg\n  if (reverse) {\n    msg = withPublic(new BN(enc), key)\n  } else {\n    msg = crt(enc, key)\n  }\n  var zBuffer = Buffer.alloc(k - msg.length)\n  msg = Buffer.concat([zBuffer, msg], k)\n  if (padding === 4) {\n    return oaep(key, msg)\n  } else if (padding === 1) {\n    return pkcs1(key, msg, reverse)\n  } else if (padding === 3) {\n    return msg\n  } else {\n    throw new Error('unknown padding')\n  }\n}\n\nfunction oaep (key, msg) {\n  var k = key.modulus.byteLength()\n  var iHash = createHash('sha1').update(Buffer.alloc(0)).digest()\n  var hLen = iHash.length\n  if (msg[0] !== 0) {\n    throw new Error('decryption error')\n  }\n  var maskedSeed = msg.slice(1, hLen + 1)\n  var maskedDb = msg.slice(hLen + 1)\n  var seed = xor(maskedSeed, mgf(maskedDb, hLen))\n  var db = xor(maskedDb, mgf(seed, k - hLen - 1))\n  if (compare(iHash, db.slice(0, hLen))) {\n    throw new Error('decryption error')\n  }\n  var i = hLen\n  while (db[i] === 0) {\n    i++\n  }\n  if (db[i++] !== 1) {\n    throw new Error('decryption error')\n  }\n  return db.slice(i)\n}\n\nfunction pkcs1 (key, msg, reverse) {\n  var p1 = msg.slice(0, 2)\n  var i = 2\n  var status = 0\n  while (msg[i++] !== 0) {\n    if (i >= msg.length) {\n      status++\n      break\n    }\n  }\n  var ps = msg.slice(2, i - 1)\n\n  if ((p1.toString('hex') !== '0002' && !reverse) || (p1.toString('hex') !== '0001' && reverse)) {\n    status++\n  }\n  if (ps.length < 8) {\n    status++\n  }\n  if (status) {\n    throw new Error('decryption error')\n  }\n  return msg.slice(i)\n}\nfunction compare (a, b) {\n  a = Buffer.from(a)\n  b = Buffer.from(b)\n  var dif = 0\n  var len = a.length\n  if (a.length !== b.length) {\n    dif++\n    len = Math.min(a.length, b.length)\n  }\n  var i = -1\n  while (++i < len) {\n    dif += (a[i] ^ b[i])\n  }\n  return dif\n}\n"},"lineCount":107}},"hash":"ec660ff3b0b47c191874a3542f8a4249","cacheData":{"env":{}}}