{"version":3,"sources":["webpack:///./node_modules/parse-asn1/index.js","webpack:///./node_modules/parse-asn1/asn1.js","webpack:///./node_modules/parse-asn1/fixProc.js","webpack:///./node_modules/parse-asn1/certificate.js"],"names":["asn1","aesid","fixProc","ciphers","compat","Buffer","parseKeys","buffer","password","isBuffer","passphrase","key","from","subtype","ndata","stripped","type","tag","data","certificate","decode","tbsCertificate","subjectPublicKeyInfo","PublicKey","algorithm","join","RSAPublicKey","subjectPublicKey","subjectPrivateKey","params","pub_key","DSAparam","Error","salt","decrypt","kde","kdeparams","iters","parseInt","toString","algo","cipher","iv","cipherText","keylen","split","pbkdf2Sync","createDecipheriv","out","push","update","final","concat","EncryptedPrivateKey","PrivateKey","RSAPrivateKey","curve","privateKey","ECPrivateKey","priv_key","DSAPrivateKey","parameters","value","module","exports","signature","define","this","seq","obj","int","use","AlgorithmIdentifier","bitstr","objid","null_","optional","PrivateKeyInfo","octstr","EncryptedPrivateKeyInfo","explicit","ECParameters","choice","namedCurve","findProc","startRegex","fullRegex","evp","okey","decrypted","match","suite","replace","cipherKey","slice","match2","asn","Time","utcTime","utctime","generalTime","gentime","AttributeTypeValue","any","SubjectPublicKeyInfo","RelativeDistinguishedName","setof","RDNSequence","seqof","Name","rdnSequence","Validity","Extension","bool","def","TBSCertificate","implicit","X509Certificate"],"mappings":"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","file":"vendor.parse-asn1~644e72b6.0cb3c65e5ac4856e27a0.chunk.js","sourcesContent":["var asn1 = require('./asn1')\nvar aesid = require('./aesid.json')\nvar fixProc = require('./fixProc')\nvar ciphers = require('browserify-aes')\nvar compat = require('pbkdf2')\nvar Buffer = require('safe-buffer').Buffer\nmodule.exports = parseKeys\n\nfunction parseKeys (buffer) {\n var password\n if (typeof buffer === 'object' && !Buffer.isBuffer(buffer)) {\n password = buffer.passphrase\n buffer = buffer.key\n }\n if (typeof buffer === 'string') {\n buffer = Buffer.from(buffer)\n }\n\n var stripped = fixProc(buffer, password)\n\n var type = stripped.tag\n var data = stripped.data\n var subtype, ndata\n switch (type) {\n case 'CERTIFICATE':\n ndata = asn1.certificate.decode(data, 'der').tbsCertificate.subjectPublicKeyInfo\n // falls through\n case 'PUBLIC KEY':\n if (!ndata) {\n ndata = asn1.PublicKey.decode(data, 'der')\n }\n subtype = ndata.algorithm.algorithm.join('.')\n switch (subtype) {\n case '1.2.840.113549.1.1.1':\n return asn1.RSAPublicKey.decode(ndata.subjectPublicKey.data, 'der')\n case '1.2.840.10045.2.1':\n ndata.subjectPrivateKey = ndata.subjectPublicKey\n return {\n type: 'ec',\n data: ndata\n }\n case '1.2.840.10040.4.1':\n ndata.algorithm.params.pub_key = asn1.DSAparam.decode(ndata.subjectPublicKey.data, 'der')\n return {\n type: 'dsa',\n data: ndata.algorithm.params\n }\n default: throw new Error('unknown key id ' + subtype)\n }\n throw new Error('unknown key type ' + type)\n case 'ENCRYPTED PRIVATE KEY':\n data = asn1.EncryptedPrivateKey.decode(data, 'der')\n data = decrypt(data, password)\n // falls through\n case 'PRIVATE KEY':\n ndata = asn1.PrivateKey.decode(data, 'der')\n subtype = ndata.algorithm.algorithm.join('.')\n switch (subtype) {\n case '1.2.840.113549.1.1.1':\n return asn1.RSAPrivateKey.decode(ndata.subjectPrivateKey, 'der')\n case '1.2.840.10045.2.1':\n return {\n curve: ndata.algorithm.curve,\n privateKey: asn1.ECPrivateKey.decode(ndata.subjectPrivateKey, 'der').privateKey\n }\n case '1.2.840.10040.4.1':\n ndata.algorithm.params.priv_key = asn1.DSAparam.decode(ndata.subjectPrivateKey, 'der')\n return {\n type: 'dsa',\n params: ndata.algorithm.params\n }\n default: throw new Error('unknown key id ' + subtype)\n }\n throw new Error('unknown key type ' + type)\n case 'RSA PUBLIC KEY':\n return asn1.RSAPublicKey.decode(data, 'der')\n case 'RSA PRIVATE KEY':\n return asn1.RSAPrivateKey.decode(data, 'der')\n case 'DSA PRIVATE KEY':\n return {\n type: 'dsa',\n params: asn1.DSAPrivateKey.decode(data, 'der')\n }\n case 'EC PRIVATE KEY':\n data = asn1.ECPrivateKey.decode(data, 'der')\n return {\n curve: data.parameters.value,\n privateKey: data.privateKey\n }\n default: throw new Error('unknown key type ' + type)\n }\n}\nparseKeys.signature = asn1.signature\nfunction decrypt (data, password) {\n var salt = data.algorithm.decrypt.kde.kdeparams.salt\n var iters = parseInt(data.algorithm.decrypt.kde.kdeparams.iters.toString(), 10)\n var algo = aesid[data.algorithm.decrypt.cipher.algo.join('.')]\n var iv = data.algorithm.decrypt.cipher.iv\n var cipherText = data.subjectPrivateKey\n var keylen = parseInt(algo.split('-')[1], 10) / 8\n var key = compat.pbkdf2Sync(password, salt, iters, keylen, 'sha1')\n var cipher = ciphers.createDecipheriv(algo, key, iv)\n var out = []\n out.push(cipher.update(cipherText))\n out.push(cipher.final())\n return Buffer.concat(out)\n}\n","// from https://github.com/indutny/self-signed/blob/gh-pages/lib/asn1.js\n// Fedor, you are amazing.\n'use strict'\n\nvar asn1 = require('asn1.js')\n\nexports.certificate = require('./certificate')\n\nvar RSAPrivateKey = asn1.define('RSAPrivateKey', function () {\n this.seq().obj(\n this.key('version').int(),\n this.key('modulus').int(),\n this.key('publicExponent').int(),\n this.key('privateExponent').int(),\n this.key('prime1').int(),\n this.key('prime2').int(),\n this.key('exponent1').int(),\n this.key('exponent2').int(),\n this.key('coefficient').int()\n )\n})\nexports.RSAPrivateKey = RSAPrivateKey\n\nvar RSAPublicKey = asn1.define('RSAPublicKey', function () {\n this.seq().obj(\n this.key('modulus').int(),\n this.key('publicExponent').int()\n )\n})\nexports.RSAPublicKey = RSAPublicKey\n\nvar PublicKey = asn1.define('SubjectPublicKeyInfo', function () {\n this.seq().obj(\n this.key('algorithm').use(AlgorithmIdentifier),\n this.key('subjectPublicKey').bitstr()\n )\n})\nexports.PublicKey = PublicKey\n\nvar AlgorithmIdentifier = asn1.define('AlgorithmIdentifier', function () {\n this.seq().obj(\n this.key('algorithm').objid(),\n this.key('none').null_().optional(),\n this.key('curve').objid().optional(),\n this.key('params').seq().obj(\n this.key('p').int(),\n this.key('q').int(),\n this.key('g').int()\n ).optional()\n )\n})\n\nvar PrivateKeyInfo = asn1.define('PrivateKeyInfo', function () {\n this.seq().obj(\n this.key('version').int(),\n this.key('algorithm').use(AlgorithmIdentifier),\n this.key('subjectPrivateKey').octstr()\n )\n})\nexports.PrivateKey = PrivateKeyInfo\nvar EncryptedPrivateKeyInfo = asn1.define('EncryptedPrivateKeyInfo', function () {\n this.seq().obj(\n this.key('algorithm').seq().obj(\n this.key('id').objid(),\n this.key('decrypt').seq().obj(\n this.key('kde').seq().obj(\n this.key('id').objid(),\n this.key('kdeparams').seq().obj(\n this.key('salt').octstr(),\n this.key('iters').int()\n )\n ),\n this.key('cipher').seq().obj(\n this.key('algo').objid(),\n this.key('iv').octstr()\n )\n )\n ),\n this.key('subjectPrivateKey').octstr()\n )\n})\n\nexports.EncryptedPrivateKey = EncryptedPrivateKeyInfo\n\nvar DSAPrivateKey = asn1.define('DSAPrivateKey', function () {\n this.seq().obj(\n this.key('version').int(),\n this.key('p').int(),\n this.key('q').int(),\n this.key('g').int(),\n this.key('pub_key').int(),\n this.key('priv_key').int()\n )\n})\nexports.DSAPrivateKey = DSAPrivateKey\n\nexports.DSAparam = asn1.define('DSAparam', function () {\n this.int()\n})\n\nvar ECPrivateKey = asn1.define('ECPrivateKey', function () {\n this.seq().obj(\n this.key('version').int(),\n this.key('privateKey').octstr(),\n this.key('parameters').optional().explicit(0).use(ECParameters),\n this.key('publicKey').optional().explicit(1).bitstr()\n )\n})\nexports.ECPrivateKey = ECPrivateKey\n\nvar ECParameters = asn1.define('ECParameters', function () {\n this.choice({\n namedCurve: this.objid()\n })\n})\n\nexports.signature = asn1.define('signature', function () {\n this.seq().obj(\n this.key('r').int(),\n this.key('s').int()\n )\n})\n","// adapted from https://github.com/apatil/pemstrip\nvar findProc = /Proc-Type: 4,ENCRYPTED[\\n\\r]+DEK-Info: AES-((?:128)|(?:192)|(?:256))-CBC,([0-9A-H]+)[\\n\\r]+([0-9A-z\\n\\r\\+\\/\\=]+)[\\n\\r]+/m\nvar startRegex = /^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----/m\nvar fullRegex = /^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----([0-9A-z\\n\\r\\+\\/\\=]+)-----END \\1-----$/m\nvar evp = require('evp_bytestokey')\nvar ciphers = require('browserify-aes')\nvar Buffer = require('safe-buffer').Buffer\nmodule.exports = function (okey, password) {\n var key = okey.toString()\n var match = key.match(findProc)\n var decrypted\n if (!match) {\n var match2 = key.match(fullRegex)\n decrypted = new Buffer(match2[2].replace(/[\\r\\n]/g, ''), 'base64')\n } else {\n var suite = 'aes' + match[1]\n var iv = Buffer.from(match[2], 'hex')\n var cipherText = Buffer.from(match[3].replace(/[\\r\\n]/g, ''), 'base64')\n var cipherKey = evp(password, iv.slice(0, 8), parseInt(match[1], 10)).key\n var out = []\n var cipher = ciphers.createDecipheriv(suite, cipherKey, iv)\n out.push(cipher.update(cipherText))\n out.push(cipher.final())\n decrypted = Buffer.concat(out)\n }\n var tag = key.match(startRegex)[1]\n return {\n tag: tag,\n data: decrypted\n }\n}\n","// from https://github.com/Rantanen/node-dtls/blob/25a7dc861bda38cfeac93a723500eea4f0ac2e86/Certificate.js\n// thanks to @Rantanen\n\n'use strict'\n\nvar asn = require('asn1.js')\n\nvar Time = asn.define('Time', function () {\n this.choice({\n utcTime: this.utctime(),\n generalTime: this.gentime()\n })\n})\n\nvar AttributeTypeValue = asn.define('AttributeTypeValue', function () {\n this.seq().obj(\n this.key('type').objid(),\n this.key('value').any()\n )\n})\n\nvar AlgorithmIdentifier = asn.define('AlgorithmIdentifier', function () {\n this.seq().obj(\n this.key('algorithm').objid(),\n this.key('parameters').optional(),\n this.key('curve').objid().optional()\n )\n})\n\nvar SubjectPublicKeyInfo = asn.define('SubjectPublicKeyInfo', function () {\n this.seq().obj(\n this.key('algorithm').use(AlgorithmIdentifier),\n this.key('subjectPublicKey').bitstr()\n )\n})\n\nvar RelativeDistinguishedName = asn.define('RelativeDistinguishedName', function () {\n this.setof(AttributeTypeValue)\n})\n\nvar RDNSequence = asn.define('RDNSequence', function () {\n this.seqof(RelativeDistinguishedName)\n})\n\nvar Name = asn.define('Name', function () {\n this.choice({\n rdnSequence: this.use(RDNSequence)\n })\n})\n\nvar Validity = asn.define('Validity', function () {\n this.seq().obj(\n this.key('notBefore').use(Time),\n this.key('notAfter').use(Time)\n )\n})\n\nvar Extension = asn.define('Extension', function () {\n this.seq().obj(\n this.key('extnID').objid(),\n this.key('critical').bool().def(false),\n this.key('extnValue').octstr()\n )\n})\n\nvar TBSCertificate = asn.define('TBSCertificate', function () {\n this.seq().obj(\n this.key('version').explicit(0).int().optional(),\n this.key('serialNumber').int(),\n this.key('signature').use(AlgorithmIdentifier),\n this.key('issuer').use(Name),\n this.key('validity').use(Validity),\n this.key('subject').use(Name),\n this.key('subjectPublicKeyInfo').use(SubjectPublicKeyInfo),\n this.key('issuerUniqueID').implicit(1).bitstr().optional(),\n this.key('subjectUniqueID').implicit(2).bitstr().optional(),\n this.key('extensions').explicit(3).seqof(Extension).optional()\n )\n})\n\nvar X509Certificate = asn.define('X509Certificate', function () {\n this.seq().obj(\n this.key('tbsCertificate').use(TBSCertificate),\n this.key('signatureAlgorithm').use(AlgorithmIdentifier),\n this.key('signatureValue').bitstr()\n )\n})\n\nmodule.exports = X509Certificate\n"],"sourceRoot":""}