{"id":"node_modules/browserify-sign/browser/sign.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/browserify-sign/package.json","includedInParent":true,"mtime":1542304151835},{"name":"create-hmac","loc":{"line":2,"column":25},"parent":"/www/ml-classifier/example/node_modules/browserify-sign/browser/sign.js","resolved":"/www/ml-classifier/example/node_modules/create-hmac/browser.js"},{"name":"browserify-rsa","loc":{"line":3,"column":18},"parent":"/www/ml-classifier/example/node_modules/browserify-sign/browser/sign.js","resolved":"/www/ml-classifier/example/node_modules/browserify-rsa/index.js"},{"name":"elliptic","loc":{"line":4,"column":17},"parent":"/www/ml-classifier/example/node_modules/browserify-sign/browser/sign.js","resolved":"/www/ml-classifier/example/node_modules/elliptic/lib/elliptic.js"},{"name":"bn.js","loc":{"line":5,"column":17},"parent":"/www/ml-classifier/example/node_modules/browserify-sign/browser/sign.js","resolved":"/www/ml-classifier/example/node_modules/bn.js/lib/bn.js"},{"name":"parse-asn1","loc":{"line":6,"column":24},"parent":"/www/ml-classifier/example/node_modules/browserify-sign/browser/sign.js","resolved":"/www/ml-classifier/example/node_modules/parse-asn1/index.js"},{"name":"./curves.json","loc":{"line":7,"column":21},"parent":"/www/ml-classifier/example/node_modules/browserify-sign/browser/sign.js","resolved":"/www/ml-classifier/example/node_modules/browserify-sign/browser/curves.json"},{"name":"buffer","parent":"/www/ml-classifier/example/node_modules/browserify-sign/browser/sign.js","resolved":"/www/ml-classifier/example/node_modules/buffer/index.js"}],"generated":{"js":"var Buffer = require(\"buffer\").Buffer;\n// much of this based on https://github.com/indutny/self-signed/blob/gh-pages/lib/rsa.js\nvar createHmac = require('create-hmac')\nvar crt = require('browserify-rsa')\nvar EC = require('elliptic').ec\nvar BN = require('bn.js')\nvar parseKeys = require('parse-asn1')\nvar curves = require('./curves.json')\n\nfunction sign (hash, key, hashType, signType, tag) {\n  var priv = parseKeys(key)\n  if (priv.curve) {\n    // rsa keys can be interpreted as ecdsa ones in openssl\n    if (signType !== 'ecdsa' && signType !== 'ecdsa/rsa') throw new Error('wrong private key type')\n    return ecSign(hash, priv)\n  } else if (priv.type === 'dsa') {\n    if (signType !== 'dsa') throw new Error('wrong private key type')\n    return dsaSign(hash, priv, hashType)\n  } else {\n    if (signType !== 'rsa' && signType !== 'ecdsa/rsa') throw new Error('wrong private key type')\n  }\n  hash = Buffer.concat([tag, hash])\n  var len = priv.modulus.byteLength()\n  var pad = [ 0, 1 ]\n  while (hash.length + pad.length + 1 < len) pad.push(0xff)\n  pad.push(0x00)\n  var i = -1\n  while (++i < hash.length) pad.push(hash[i])\n\n  var out = crt(pad, priv)\n  return out\n}\n\nfunction ecSign (hash, priv) {\n  var curveId = curves[priv.curve.join('.')]\n  if (!curveId) throw new Error('unknown curve ' + priv.curve.join('.'))\n\n  var curve = new EC(curveId)\n  var key = curve.keyFromPrivate(priv.privateKey)\n  var out = key.sign(hash)\n\n  return new Buffer(out.toDER())\n}\n\nfunction dsaSign (hash, priv, algo) {\n  var x = priv.params.priv_key\n  var p = priv.params.p\n  var q = priv.params.q\n  var g = priv.params.g\n  var r = new BN(0)\n  var k\n  var H = bits2int(hash, q).mod(q)\n  var s = false\n  var kv = getKey(x, q, hash, algo)\n  while (s === false) {\n    k = makeKey(q, kv, algo)\n    r = makeR(g, k, p, q)\n    s = k.invm(q).imul(H.add(x.mul(r))).mod(q)\n    if (s.cmpn(0) === 0) {\n      s = false\n      r = new BN(0)\n    }\n  }\n  return toDER(r, s)\n}\n\nfunction toDER (r, s) {\n  r = r.toArray()\n  s = s.toArray()\n\n  // Pad values\n  if (r[0] & 0x80) r = [ 0 ].concat(r)\n  if (s[0] & 0x80) s = [ 0 ].concat(s)\n\n  var total = r.length + s.length + 4\n  var res = [ 0x30, total, 0x02, r.length ]\n  res = res.concat(r, [ 0x02, s.length ], s)\n  return new Buffer(res)\n}\n\nfunction getKey (x, q, hash, algo) {\n  x = new Buffer(x.toArray())\n  if (x.length < q.byteLength()) {\n    var zeros = new Buffer(q.byteLength() - x.length)\n    zeros.fill(0)\n    x = Buffer.concat([ zeros, x ])\n  }\n  var hlen = hash.length\n  var hbits = bits2octets(hash, q)\n  var v = new Buffer(hlen)\n  v.fill(1)\n  var k = new Buffer(hlen)\n  k.fill(0)\n  k = createHmac(algo, k).update(v).update(new Buffer([ 0 ])).update(x).update(hbits).digest()\n  v = createHmac(algo, k).update(v).digest()\n  k = createHmac(algo, k).update(v).update(new Buffer([ 1 ])).update(x).update(hbits).digest()\n  v = createHmac(algo, k).update(v).digest()\n  return { k: k, v: v }\n}\n\nfunction bits2int (obits, q) {\n  var bits = new BN(obits)\n  var shift = (obits.length << 3) - q.bitLength()\n  if (shift > 0) bits.ishrn(shift)\n  return bits\n}\n\nfunction bits2octets (bits, q) {\n  bits = bits2int(bits, q)\n  bits = bits.mod(q)\n  var out = new Buffer(bits.toArray())\n  if (out.length < q.byteLength()) {\n    var zeros = new Buffer(q.byteLength() - out.length)\n    zeros.fill(0)\n    out = Buffer.concat([ zeros, out ])\n  }\n  return out\n}\n\nfunction makeKey (q, kv, algo) {\n  var t\n  var k\n\n  do {\n    t = new Buffer(0)\n\n    while (t.length * 8 < q.bitLength()) {\n      kv.v = createHmac(algo, kv.k).update(kv.v).digest()\n      t = Buffer.concat([ t, kv.v ])\n    }\n\n    k = bits2int(t, q)\n    kv.k = createHmac(algo, kv.k).update(kv.v).update(new Buffer([ 0 ])).digest()\n    kv.v = createHmac(algo, kv.k).update(kv.v).digest()\n  } while (k.cmp(q) !== -1)\n\n  return k\n}\n\nfunction makeR (g, k, p, q) {\n  return g.toRed(BN.mont(p)).redPow(k).fromRed().mod(q)\n}\n\nmodule.exports = sign\nmodule.exports.getKey = getKey\nmodule.exports.makeKey = makeKey\n","map":{"mappings":[{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":1,"column":0},"generated":{"line":2,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":2,"column":0},"generated":{"line":3,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":3,"column":0},"generated":{"line":4,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":4,"column":0},"generated":{"line":5,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":5,"column":0},"generated":{"line":6,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":6,"column":0},"generated":{"line":7,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":7,"column":0},"generated":{"line":8,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":8,"column":0},"generated":{"line":9,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":9,"column":0},"generated":{"line":10,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":10,"column":0},"generated":{"line":11,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":11,"column":0},"generated":{"line":12,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":12,"column":0},"generated":{"line":13,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":13,"column":0},"generated":{"line":14,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":14,"column":0},"generated":{"line":15,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":15,"column":0},"generated":{"line":16,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":16,"column":0},"generated":{"line":17,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":17,"column":0},"generated":{"line":18,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":18,"column":0},"generated":{"line":19,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":19,"column":0},"generated":{"line":20,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":20,"column":0},"generated":{"line":21,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":21,"column":0},"generated":{"line":22,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":22,"column":0},"generated":{"line":23,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":23,"column":0},"generated":{"line":24,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":24,"column":0},"generated":{"line":25,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":25,"column":0},"generated":{"line":26,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":26,"column":0},"generated":{"line":27,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":27,"column":0},"generated":{"line":28,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":28,"column":0},"generated":{"line":29,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":29,"column":0},"generated":{"line":30,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":30,"column":0},"generated":{"line":31,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":31,"column":0},"generated":{"line":32,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":32,"column":0},"generated":{"line":33,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":33,"column":0},"generated":{"line":34,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":34,"column":0},"generated":{"line":35,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":35,"column":0},"generated":{"line":36,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":36,"column":0},"generated":{"line":37,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":37,"column":0},"generated":{"line":38,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":38,"column":0},"generated":{"line":39,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":39,"column":0},"generated":{"line":40,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":40,"column":0},"generated":{"line":41,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":41,"column":0},"generated":{"line":42,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":42,"column":0},"generated":{"line":43,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":43,"column":0},"generated":{"line":44,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":44,"column":0},"generated":{"line":45,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":45,"column":0},"generated":{"line":46,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":46,"column":0},"generated":{"line":47,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":47,"column":0},"generated":{"line":48,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":48,"column":0},"generated":{"line":49,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":49,"column":0},"generated":{"line":50,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":50,"column":0},"generated":{"line":51,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":51,"column":0},"generated":{"line":52,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":52,"column":0},"generated":{"line":53,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":53,"column":0},"generated":{"line":54,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":54,"column":0},"generated":{"line":55,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":55,"column":0},"generated":{"line":56,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":56,"column":0},"generated":{"line":57,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":57,"column":0},"generated":{"line":58,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":58,"column":0},"generated":{"line":59,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":59,"column":0},"generated":{"line":60,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":60,"column":0},"generated":{"line":61,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":61,"column":0},"generated":{"line":62,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":62,"column":0},"generated":{"line":63,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":63,"column":0},"generated":{"line":64,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":64,"column":0},"generated":{"line":65,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":65,"column":0},"generated":{"line":66,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":66,"column":0},"generated":{"line":67,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":67,"column":0},"generated":{"line":68,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":68,"column":0},"generated":{"line":69,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":69,"column":0},"generated":{"line":70,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":70,"column":0},"generated":{"line":71,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":71,"column":0},"generated":{"line":72,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":72,"column":0},"generated":{"line":73,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":73,"column":0},"generated":{"line":74,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":74,"column":0},"generated":{"line":75,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":75,"column":0},"generated":{"line":76,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":76,"column":0},"generated":{"line":77,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":77,"column":0},"generated":{"line":78,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":78,"column":0},"generated":{"line":79,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":79,"column":0},"generated":{"line":80,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":80,"column":0},"generated":{"line":81,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":81,"column":0},"generated":{"line":82,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":82,"column":0},"generated":{"line":83,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":83,"column":0},"generated":{"line":84,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":84,"column":0},"generated":{"line":85,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":85,"column":0},"generated":{"line":86,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":86,"column":0},"generated":{"line":87,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":87,"column":0},"generated":{"line":88,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":88,"column":0},"generated":{"line":89,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":89,"column":0},"generated":{"line":90,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":90,"column":0},"generated":{"line":91,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":91,"column":0},"generated":{"line":92,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":92,"column":0},"generated":{"line":93,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":93,"column":0},"generated":{"line":94,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":94,"column":0},"generated":{"line":95,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":95,"column":0},"generated":{"line":96,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":96,"column":0},"generated":{"line":97,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":97,"column":0},"generated":{"line":98,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":98,"column":0},"generated":{"line":99,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":99,"column":0},"generated":{"line":100,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":100,"column":0},"generated":{"line":101,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":101,"column":0},"generated":{"line":102,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":102,"column":0},"generated":{"line":103,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":103,"column":0},"generated":{"line":104,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":104,"column":0},"generated":{"line":105,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":105,"column":0},"generated":{"line":106,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":106,"column":0},"generated":{"line":107,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":107,"column":0},"generated":{"line":108,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":108,"column":0},"generated":{"line":109,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":109,"column":0},"generated":{"line":110,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":110,"column":0},"generated":{"line":111,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":111,"column":0},"generated":{"line":112,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":112,"column":0},"generated":{"line":113,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":113,"column":0},"generated":{"line":114,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":114,"column":0},"generated":{"line":115,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":115,"column":0},"generated":{"line":116,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":116,"column":0},"generated":{"line":117,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":117,"column":0},"generated":{"line":118,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":118,"column":0},"generated":{"line":119,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":119,"column":0},"generated":{"line":120,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":120,"column":0},"generated":{"line":121,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":121,"column":0},"generated":{"line":122,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":122,"column":0},"generated":{"line":123,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":123,"column":0},"generated":{"line":124,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":124,"column":0},"generated":{"line":125,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":125,"column":0},"generated":{"line":126,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":126,"column":0},"generated":{"line":127,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":127,"column":0},"generated":{"line":128,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":128,"column":0},"generated":{"line":129,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":129,"column":0},"generated":{"line":130,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":130,"column":0},"generated":{"line":131,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":131,"column":0},"generated":{"line":132,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":132,"column":0},"generated":{"line":133,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":133,"column":0},"generated":{"line":134,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":134,"column":0},"generated":{"line":135,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":135,"column":0},"generated":{"line":136,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":136,"column":0},"generated":{"line":137,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":137,"column":0},"generated":{"line":138,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":138,"column":0},"generated":{"line":139,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":139,"column":0},"generated":{"line":140,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":140,"column":0},"generated":{"line":141,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":141,"column":0},"generated":{"line":142,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":142,"column":0},"generated":{"line":143,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":143,"column":0},"generated":{"line":144,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":144,"column":0},"generated":{"line":145,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":145,"column":0},"generated":{"line":146,"column":0}},{"source":"node_modules/browserify-sign/browser/sign.js","original":{"line":146,"column":0},"generated":{"line":147,"column":0}}],"sources":{"node_modules/browserify-sign/browser/sign.js":"// much of this based on https://github.com/indutny/self-signed/blob/gh-pages/lib/rsa.js\nvar createHmac = require('create-hmac')\nvar crt = require('browserify-rsa')\nvar EC = require('elliptic').ec\nvar BN = require('bn.js')\nvar parseKeys = require('parse-asn1')\nvar curves = require('./curves.json')\n\nfunction sign (hash, key, hashType, signType, tag) {\n  var priv = parseKeys(key)\n  if (priv.curve) {\n    // rsa keys can be interpreted as ecdsa ones in openssl\n    if (signType !== 'ecdsa' && signType !== 'ecdsa/rsa') throw new Error('wrong private key type')\n    return ecSign(hash, priv)\n  } else if (priv.type === 'dsa') {\n    if (signType !== 'dsa') throw new Error('wrong private key type')\n    return dsaSign(hash, priv, hashType)\n  } else {\n    if (signType !== 'rsa' && signType !== 'ecdsa/rsa') throw new Error('wrong private key type')\n  }\n  hash = Buffer.concat([tag, hash])\n  var len = priv.modulus.byteLength()\n  var pad = [ 0, 1 ]\n  while (hash.length + pad.length + 1 < len) pad.push(0xff)\n  pad.push(0x00)\n  var i = -1\n  while (++i < hash.length) pad.push(hash[i])\n\n  var out = crt(pad, priv)\n  return out\n}\n\nfunction ecSign (hash, priv) {\n  var curveId = curves[priv.curve.join('.')]\n  if (!curveId) throw new Error('unknown curve ' + priv.curve.join('.'))\n\n  var curve = new EC(curveId)\n  var key = curve.keyFromPrivate(priv.privateKey)\n  var out = key.sign(hash)\n\n  return new Buffer(out.toDER())\n}\n\nfunction dsaSign (hash, priv, algo) {\n  var x = priv.params.priv_key\n  var p = priv.params.p\n  var q = priv.params.q\n  var g = priv.params.g\n  var r = new BN(0)\n  var k\n  var H = bits2int(hash, q).mod(q)\n  var s = false\n  var kv = getKey(x, q, hash, algo)\n  while (s === false) {\n    k = makeKey(q, kv, algo)\n    r = makeR(g, k, p, q)\n    s = k.invm(q).imul(H.add(x.mul(r))).mod(q)\n    if (s.cmpn(0) === 0) {\n      s = false\n      r = new BN(0)\n    }\n  }\n  return toDER(r, s)\n}\n\nfunction toDER (r, s) {\n  r = r.toArray()\n  s = s.toArray()\n\n  // Pad values\n  if (r[0] & 0x80) r = [ 0 ].concat(r)\n  if (s[0] & 0x80) s = [ 0 ].concat(s)\n\n  var total = r.length + s.length + 4\n  var res = [ 0x30, total, 0x02, r.length ]\n  res = res.concat(r, [ 0x02, s.length ], s)\n  return new Buffer(res)\n}\n\nfunction getKey (x, q, hash, algo) {\n  x = new Buffer(x.toArray())\n  if (x.length < q.byteLength()) {\n    var zeros = new Buffer(q.byteLength() - x.length)\n    zeros.fill(0)\n    x = Buffer.concat([ zeros, x ])\n  }\n  var hlen = hash.length\n  var hbits = bits2octets(hash, q)\n  var v = new Buffer(hlen)\n  v.fill(1)\n  var k = new Buffer(hlen)\n  k.fill(0)\n  k = createHmac(algo, k).update(v).update(new Buffer([ 0 ])).update(x).update(hbits).digest()\n  v = createHmac(algo, k).update(v).digest()\n  k = createHmac(algo, k).update(v).update(new Buffer([ 1 ])).update(x).update(hbits).digest()\n  v = createHmac(algo, k).update(v).digest()\n  return { k: k, v: v }\n}\n\nfunction bits2int (obits, q) {\n  var bits = new BN(obits)\n  var shift = (obits.length << 3) - q.bitLength()\n  if (shift > 0) bits.ishrn(shift)\n  return bits\n}\n\nfunction bits2octets (bits, q) {\n  bits = bits2int(bits, q)\n  bits = bits.mod(q)\n  var out = new Buffer(bits.toArray())\n  if (out.length < q.byteLength()) {\n    var zeros = new Buffer(q.byteLength() - out.length)\n    zeros.fill(0)\n    out = Buffer.concat([ zeros, out ])\n  }\n  return out\n}\n\nfunction makeKey (q, kv, algo) {\n  var t\n  var k\n\n  do {\n    t = new Buffer(0)\n\n    while (t.length * 8 < q.bitLength()) {\n      kv.v = createHmac(algo, kv.k).update(kv.v).digest()\n      t = Buffer.concat([ t, kv.v ])\n    }\n\n    k = bits2int(t, q)\n    kv.k = createHmac(algo, kv.k).update(kv.v).update(new Buffer([ 0 ])).digest()\n    kv.v = createHmac(algo, kv.k).update(kv.v).digest()\n  } while (k.cmp(q) !== -1)\n\n  return k\n}\n\nfunction makeR (g, k, p, q) {\n  return g.toRed(BN.mont(p)).redPow(k).fromRed().mod(q)\n}\n\nmodule.exports = sign\nmodule.exports.getKey = getKey\nmodule.exports.makeKey = makeKey\n"},"lineCount":147}},"hash":"97784406b4ff08217cf5ea587cdb98b3","cacheData":{"env":{}}}