{"version":3,"sources":["webpack:///./node_modules/browserify-sign/algos.js","webpack:///./node_modules/browserify-sign/browser/sign.js","webpack:///./node_modules/browserify-sign/browser/verify.js","webpack:///./node_modules/browserify-sign/browser/index.js"],"names":["module","exports","Buffer","createHmac","crt","EC","ec","BN","parseKeys","curves","getKey","x","q","hash","algo","from","toArray","length","byteLength","zeros","alloc","concat","hlen","hbits","bits","bits2int","mod","out","bits2octets","v","fill","k","update","digest","obits","shift","bitLength","ishrn","makeKey","kv","t","cmp","makeR","g","p","toRed","mont","redPow","fromRed","key","hashType","signType","tag","priv","curve","Error","curveId","join","keyFromPrivate","privateKey","sign","toDER","ecSign","type","params","priv_key","r","H","s","invm","imul","add","mul","cmpn","res","dsaSign","len","modulus","pad","push","i","checkValue","b","sig","pub","data","algorithm","pubkey","subjectPrivateKey","verify","ecVerify","y","pub_key","unpacked","signature","decode","montp","w","dsaVerify","padNum","red","publicExponent","Math","min","createHash","stream","inherits","algorithms","Sign","Writable","call","this","_hashType","_hash","_tag","id","_signType","Verify","createSign","createVerify","Object","keys","forEach","toLowerCase","prototype","_write","_","done","enc","end","toString"],"mappings":"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","file":"vendor.browserify-sign~41d44f25.56c630102aa302429dbc.chunk.js","sourcesContent":["module.exports = require('./browser/algorithms.json')\n","// much of this based on https://github.com/indutny/self-signed/blob/gh-pages/lib/rsa.js\nvar Buffer = require('safe-buffer').Buffer\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 Buffer.from(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 Buffer.from(res)\n}\n\nfunction getKey (x, q, hash, algo) {\n x = Buffer.from(x.toArray())\n if (x.length < q.byteLength()) {\n var zeros = Buffer.alloc(q.byteLength() - x.length)\n x = Buffer.concat([zeros, x])\n }\n var hlen = hash.length\n var hbits = bits2octets(hash, q)\n var v = Buffer.alloc(hlen)\n v.fill(1)\n var k = Buffer.alloc(hlen)\n k = createHmac(algo, k).update(v).update(Buffer.from([0])).update(x).update(hbits).digest()\n v = createHmac(algo, k).update(v).digest()\n k = createHmac(algo, k).update(v).update(Buffer.from([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 = Buffer.from(bits.toArray())\n if (out.length < q.byteLength()) {\n var zeros = Buffer.alloc(q.byteLength() - out.length)\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 = Buffer.alloc(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(Buffer.from([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","// much of this based on https://github.com/indutny/self-signed/blob/gh-pages/lib/rsa.js\nvar Buffer = require('safe-buffer').Buffer\nvar BN = require('bn.js')\nvar EC = require('elliptic').ec\nvar parseKeys = require('parse-asn1')\nvar curves = require('./curves.json')\n\nfunction verify (sig, hash, key, signType, tag) {\n var pub = parseKeys(key)\n if (pub.type === 'ec') {\n // rsa keys can be interpreted as ecdsa ones in openssl\n if (signType !== 'ecdsa' && signType !== 'ecdsa/rsa') throw new Error('wrong public key type')\n return ecVerify(sig, hash, pub)\n } else if (pub.type === 'dsa') {\n if (signType !== 'dsa') throw new Error('wrong public key type')\n return dsaVerify(sig, hash, pub)\n } else {\n if (signType !== 'rsa' && signType !== 'ecdsa/rsa') throw new Error('wrong public key type')\n }\n hash = Buffer.concat([tag, hash])\n var len = pub.modulus.byteLength()\n var pad = [1]\n var padNum = 0\n while (hash.length + pad.length + 2 < len) {\n pad.push(0xff)\n padNum++\n }\n pad.push(0x00)\n var i = -1\n while (++i < hash.length) {\n pad.push(hash[i])\n }\n pad = Buffer.from(pad)\n var red = BN.mont(pub.modulus)\n sig = new BN(sig).toRed(red)\n\n sig = sig.redPow(new BN(pub.publicExponent))\n sig = Buffer.from(sig.fromRed().toArray())\n var out = padNum < 8 ? 1 : 0\n len = Math.min(sig.length, pad.length)\n if (sig.length !== pad.length) out = 1\n\n i = -1\n while (++i < len) out |= sig[i] ^ pad[i]\n return out === 0\n}\n\nfunction ecVerify (sig, hash, pub) {\n var curveId = curves[pub.data.algorithm.curve.join('.')]\n if (!curveId) throw new Error('unknown curve ' + pub.data.algorithm.curve.join('.'))\n\n var curve = new EC(curveId)\n var pubkey = pub.data.subjectPrivateKey.data\n\n return curve.verify(hash, sig, pubkey)\n}\n\nfunction dsaVerify (sig, hash, pub) {\n var p = pub.data.p\n var q = pub.data.q\n var g = pub.data.g\n var y = pub.data.pub_key\n var unpacked = parseKeys.signature.decode(sig, 'der')\n var s = unpacked.s\n var r = unpacked.r\n checkValue(s, q)\n checkValue(r, q)\n var montp = BN.mont(p)\n var w = s.invm(q)\n var v = g.toRed(montp)\n .redPow(new BN(hash).mul(w).mod(q))\n .fromRed()\n .mul(y.toRed(montp).redPow(r.mul(w).mod(q)).fromRed())\n .mod(p)\n .mod(q)\n return v.cmp(r) === 0\n}\n\nfunction checkValue (b, q) {\n if (b.cmpn(0) <= 0) throw new Error('invalid sig')\n if (b.cmp(q) >= q) throw new Error('invalid sig')\n}\n\nmodule.exports = verify\n","var Buffer = require('safe-buffer').Buffer\nvar createHash = require('create-hash')\nvar stream = require('readable-stream')\nvar inherits = require('inherits')\nvar sign = require('./sign')\nvar verify = require('./verify')\n\nvar algorithms = require('./algorithms.json')\nObject.keys(algorithms).forEach(function (key) {\n algorithms[key].id = Buffer.from(algorithms[key].id, 'hex')\n algorithms[key.toLowerCase()] = algorithms[key]\n})\n\nfunction Sign (algorithm) {\n stream.Writable.call(this)\n\n var data = algorithms[algorithm]\n if (!data) throw new Error('Unknown message digest')\n\n this._hashType = data.hash\n this._hash = createHash(data.hash)\n this._tag = data.id\n this._signType = data.sign\n}\ninherits(Sign, stream.Writable)\n\nSign.prototype._write = function _write (data, _, done) {\n this._hash.update(data)\n done()\n}\n\nSign.prototype.update = function update (data, enc) {\n if (typeof data === 'string') data = Buffer.from(data, enc)\n\n this._hash.update(data)\n return this\n}\n\nSign.prototype.sign = function signMethod (key, enc) {\n this.end()\n var hash = this._hash.digest()\n var sig = sign(hash, key, this._hashType, this._signType, this._tag)\n\n return enc ? sig.toString(enc) : sig\n}\n\nfunction Verify (algorithm) {\n stream.Writable.call(this)\n\n var data = algorithms[algorithm]\n if (!data) throw new Error('Unknown message digest')\n\n this._hash = createHash(data.hash)\n this._tag = data.id\n this._signType = data.sign\n}\ninherits(Verify, stream.Writable)\n\nVerify.prototype._write = function _write (data, _, done) {\n this._hash.update(data)\n done()\n}\n\nVerify.prototype.update = function update (data, enc) {\n if (typeof data === 'string') data = Buffer.from(data, enc)\n\n this._hash.update(data)\n return this\n}\n\nVerify.prototype.verify = function verifyMethod (key, sig, enc) {\n if (typeof sig === 'string') sig = Buffer.from(sig, enc)\n\n this.end()\n var hash = this._hash.digest()\n return verify(sig, hash, key, this._signType, this._tag)\n}\n\nfunction createSign (algorithm) {\n return new Sign(algorithm)\n}\n\nfunction createVerify (algorithm) {\n return new Verify(algorithm)\n}\n\nmodule.exports = {\n Sign: createSign,\n Verify: createVerify,\n createSign: createSign,\n createVerify: createVerify\n}\n"],"sourceRoot":""}