{"ast":null,"code":"var elliptic = require('elliptic');\n\nvar BN = require('bn.js');\n\nmodule.exports = function createECDH(curve) {\n return new ECDH(curve);\n};\n\nvar aliases = {\n secp256k1: {\n name: 'secp256k1',\n byteLength: 32\n },\n secp224r1: {\n name: 'p224',\n byteLength: 28\n },\n prime256v1: {\n name: 'p256',\n byteLength: 32\n },\n prime192v1: {\n name: 'p192',\n byteLength: 24\n },\n ed25519: {\n name: 'ed25519',\n byteLength: 32\n },\n secp384r1: {\n name: 'p384',\n byteLength: 48\n },\n secp521r1: {\n name: 'p521',\n byteLength: 66\n }\n};\naliases.p224 = aliases.secp224r1;\naliases.p256 = aliases.secp256r1 = aliases.prime256v1;\naliases.p192 = aliases.secp192r1 = aliases.prime192v1;\naliases.p384 = aliases.secp384r1;\naliases.p521 = aliases.secp521r1;\n\nfunction ECDH(curve) {\n this.curveType = aliases[curve];\n\n if (!this.curveType) {\n this.curveType = {\n name: curve\n };\n }\n\n this.curve = new elliptic.ec(this.curveType.name); // eslint-disable-line new-cap\n\n this.keys = void 0;\n}\n\nECDH.prototype.generateKeys = function (enc, format) {\n this.keys = this.curve.genKeyPair();\n return this.getPublicKey(enc, format);\n};\n\nECDH.prototype.computeSecret = function (other, inenc, enc) {\n inenc = inenc || 'utf8';\n\n if (!Buffer.isBuffer(other)) {\n other = new Buffer(other, inenc);\n }\n\n var otherPub = this.curve.keyFromPublic(other).getPublic();\n var out = otherPub.mul(this.keys.getPrivate()).getX();\n return formatReturnValue(out, enc, this.curveType.byteLength);\n};\n\nECDH.prototype.getPublicKey = function (enc, format) {\n var key = this.keys.getPublic(format === 'compressed', true);\n\n if (format === 'hybrid') {\n if (key[key.length - 1] % 2) {\n key[0] = 7;\n } else {\n key[0] = 6;\n }\n }\n\n return formatReturnValue(key, enc);\n};\n\nECDH.prototype.getPrivateKey = function (enc) {\n return formatReturnValue(this.keys.getPrivate(), enc);\n};\n\nECDH.prototype.setPublicKey = function (pub, enc) {\n enc = enc || 'utf8';\n\n if (!Buffer.isBuffer(pub)) {\n pub = new Buffer(pub, enc);\n }\n\n this.keys._importPublic(pub);\n\n return this;\n};\n\nECDH.prototype.setPrivateKey = function (priv, enc) {\n enc = enc || 'utf8';\n\n if (!Buffer.isBuffer(priv)) {\n priv = new Buffer(priv, enc);\n }\n\n var _priv = new BN(priv);\n\n _priv = _priv.toString(16);\n this.keys = this.curve.genKeyPair();\n\n this.keys._importPrivate(_priv);\n\n return this;\n};\n\nfunction formatReturnValue(bn, enc, len) {\n if (!Array.isArray(bn)) {\n bn = bn.toArray();\n }\n\n var buf = new Buffer(bn);\n\n if (len && buf.length < len) {\n var zeros = new Buffer(len - buf.length);\n zeros.fill(0);\n buf = Buffer.concat([zeros, buf]);\n }\n\n if (!enc) {\n return buf;\n } else {\n return buf.toString(enc);\n }\n}","map":{"version":3,"sources":["/Users/tylerkoenig/Code/personal/react-scss2/node_modules/create-ecdh/browser.js"],"names":["elliptic","require","BN","module","exports","createECDH","curve","ECDH","aliases","secp256k1","name","byteLength","secp224r1","prime256v1","prime192v1","ed25519","secp384r1","secp521r1","p224","p256","secp256r1","p192","secp192r1","p384","p521","curveType","ec","keys","prototype","generateKeys","enc","format","genKeyPair","getPublicKey","computeSecret","other","inenc","Buffer","isBuffer","otherPub","keyFromPublic","getPublic","out","mul","getPrivate","getX","formatReturnValue","key","length","getPrivateKey","setPublicKey","pub","_importPublic","setPrivateKey","priv","_priv","toString","_importPrivate","bn","len","Array","isArray","toArray","buf","zeros","fill","concat"],"mappings":"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","sourcesContent":["var elliptic = require('elliptic')\nvar BN = require('bn.js')\n\nmodule.exports = function createECDH (curve) {\n return new ECDH(curve)\n}\n\nvar aliases = {\n secp256k1: {\n name: 'secp256k1',\n byteLength: 32\n },\n secp224r1: {\n name: 'p224',\n byteLength: 28\n },\n prime256v1: {\n name: 'p256',\n byteLength: 32\n },\n prime192v1: {\n name: 'p192',\n byteLength: 24\n },\n ed25519: {\n name: 'ed25519',\n byteLength: 32\n },\n secp384r1: {\n name: 'p384',\n byteLength: 48\n },\n secp521r1: {\n name: 'p521',\n byteLength: 66\n }\n}\n\naliases.p224 = aliases.secp224r1\naliases.p256 = aliases.secp256r1 = aliases.prime256v1\naliases.p192 = aliases.secp192r1 = aliases.prime192v1\naliases.p384 = aliases.secp384r1\naliases.p521 = aliases.secp521r1\n\nfunction ECDH (curve) {\n this.curveType = aliases[curve]\n if (!this.curveType) {\n this.curveType = {\n name: curve\n }\n }\n this.curve = new elliptic.ec(this.curveType.name) // eslint-disable-line new-cap\n this.keys = void 0\n}\n\nECDH.prototype.generateKeys = function (enc, format) {\n this.keys = this.curve.genKeyPair()\n return this.getPublicKey(enc, format)\n}\n\nECDH.prototype.computeSecret = function (other, inenc, enc) {\n inenc = inenc || 'utf8'\n if (!Buffer.isBuffer(other)) {\n other = new Buffer(other, inenc)\n }\n var otherPub = this.curve.keyFromPublic(other).getPublic()\n var out = otherPub.mul(this.keys.getPrivate()).getX()\n return formatReturnValue(out, enc, this.curveType.byteLength)\n}\n\nECDH.prototype.getPublicKey = function (enc, format) {\n var key = this.keys.getPublic(format === 'compressed', true)\n if (format === 'hybrid') {\n if (key[key.length - 1] % 2) {\n key[0] = 7\n } else {\n key[0] = 6\n }\n }\n return formatReturnValue(key, enc)\n}\n\nECDH.prototype.getPrivateKey = function (enc) {\n return formatReturnValue(this.keys.getPrivate(), enc)\n}\n\nECDH.prototype.setPublicKey = function (pub, enc) {\n enc = enc || 'utf8'\n if (!Buffer.isBuffer(pub)) {\n pub = new Buffer(pub, enc)\n }\n this.keys._importPublic(pub)\n return this\n}\n\nECDH.prototype.setPrivateKey = function (priv, enc) {\n enc = enc || 'utf8'\n if (!Buffer.isBuffer(priv)) {\n priv = new Buffer(priv, enc)\n }\n\n var _priv = new BN(priv)\n _priv = _priv.toString(16)\n this.keys = this.curve.genKeyPair()\n this.keys._importPrivate(_priv)\n return this\n}\n\nfunction formatReturnValue (bn, enc, len) {\n if (!Array.isArray(bn)) {\n bn = bn.toArray()\n }\n var buf = new Buffer(bn)\n if (len && buf.length < len) {\n var zeros = new Buffer(len - buf.length)\n zeros.fill(0)\n buf = Buffer.concat([zeros, buf])\n }\n if (!enc) {\n return buf\n } else {\n return buf.toString(enc)\n }\n}\n"]},"metadata":{},"sourceType":"script"}