{"version":3,"sources":["webpack:///./node_modules/browserify-aes/modes/ecb.js","webpack:///./node_modules/browserify-aes/streamCipher.js","webpack:///./node_modules/browserify-des/modes.js","webpack:///./node_modules/browserify-des/index.js","webpack:///./node_modules/browserify-aes/modes/cfb.js","webpack:///./node_modules/browserify-aes/aes.js","webpack:///./node_modules/browserify-aes/ghash.js","webpack:///./node_modules/browserify-aes/decrypter.js","webpack:///./node_modules/browserify-aes/modes/ofb.js","webpack:///./node_modules/browserify-aes/modes/cfb1.js","webpack:///./node_modules/browserify-aes/modes/cfb8.js","webpack:///./node_modules/browserify-aes/modes/ctr.js","webpack:///./node_modules/browserify-aes/authCipher.js","webpack:///./node_modules/browserify-aes/encrypter.js","webpack:///./node_modules/browserify-cipher/browser.js","webpack:///./node_modules/browserify-rsa/index.js","webpack:///./node_modules/browserify-aes/modes/index.js","webpack:///./node_modules/browserify-aes/incr32.js","webpack:///./node_modules/browserify-aes/modes/cbc.js","webpack:///./node_modules/browserify-aes/browser.js","webpack:///./node_modules/brorand/index.js"],"names":["exports","encrypt","self","block","_cipher","encryptBlock","decrypt","decryptBlock","aes","Buffer","Transform","inherits","StreamCipher","mode","key","iv","call","this","AES","_prev","from","_cache","allocUnsafe","_secCache","_decrypt","_mode","prototype","_update","chunk","_final","scrub","module","des","des3","CipherBase","modes","CBC","instantiate","EDE","DES","opts","type","modeName","toLowerCase","isBuffer","concat","slice","_des","create","data","update","final","xor","encryptStart","len","length","out","asUInt32Array","buf","Array","i","readUInt32BE","scrubVec","v","cryptBlock","M","keySchedule","SUB_MIX","SBOX","nRounds","t0","t1","t2","t3","SUB_MIX0","SUB_MIX1","SUB_MIX2","SUB_MIX3","s0","s1","s2","s3","ksRow","round","RCON","G","d","j","INV_SBOX","INV_SUB_MIX","x","xi","sx","x2","x4","x8","t","_key","_reset","blockSize","keySize","keyWords","ksRows","k","invKeySchedule","ik","ksR","tt","_nRounds","_keySchedule","_invKeySchedule","encryptBlockRaw","writeUInt32BE","m1","ZEROES","alloc","toArray","fromArray","GHASH","h","state","cache","ghash","_multiply","lsbVi","Vi","Zi","abl","bl","AuthCipher","MODES","ebtk","Decipher","Splitter","_last","_autopadding","unpad","last","padded","Error","createDecipheriv","suite","password","config","TypeError","createDecipher","keys","thing","add","get","push","flush","setAutoPadding","setTo","autoPadding","getBlock","pad","encryptByte","byteParam","bit","value","shiftIn","buffer","incr32","chunkNum","Math","ceil","start","offset","xorTest","a","b","min","calcIv","ck","_finID","toPad","ivBits","tail","writeUIntBE","_ghash","_alen","_len","_authTag","_called","rump","tag","getAuthTag","setAuthTag","setAAD","Cipher","PADDING","createCipheriv","createCipher","equals","padBuff","writeUInt8","aesModes","desModes","keyLen","ivLen","getCiphers","Object","Cipheriv","Decipheriv","listCiphers","randomBytes","blind","priv","r","getr","blinder","toRed","bn","mont","modulus","redPow","publicExponent","fromRed","unblinder","invm","crt","msg","blinds","byteLength","blinded","mul","umod","c1","prime1","c2","prime2","qinv","coefficient","p","q","exponent1","m2","exponent2","isub","imul","iadd","cmp","modeModules","ECB","CFB","CFB8","CFB1","OFB","CTR","GCM","item","readUInt8","ciphers","deciphers","Rand","rand","generate","_rand","n","getBytes","res","Uint8Array","getByte","crypto","getRandomValues","arr","msCrypto","window","e"],"mappings":"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","file":"js/chunk-vendors~5bb1f863.f1b580c4.js","sourcesContent":["exports.encrypt = function (self, block) {\n return self._cipher.encryptBlock(block)\n}\n\nexports.decrypt = function (self, block) {\n return self._cipher.decryptBlock(block)\n}\n","var aes = require('./aes')\nvar Buffer = require('safe-buffer').Buffer\nvar Transform = require('cipher-base')\nvar inherits = require('inherits')\n\nfunction StreamCipher (mode, key, iv, decrypt) {\n Transform.call(this)\n\n this._cipher = new aes.AES(key)\n this._prev = Buffer.from(iv)\n this._cache = Buffer.allocUnsafe(0)\n this._secCache = Buffer.allocUnsafe(0)\n this._decrypt = decrypt\n this._mode = mode\n}\n\ninherits(StreamCipher, Transform)\n\nStreamCipher.prototype._update = function (chunk) {\n return this._mode.encrypt(this, chunk, this._decrypt)\n}\n\nStreamCipher.prototype._final = function () {\n this._cipher.scrub()\n}\n\nmodule.exports = StreamCipher\n","exports['des-ecb'] = {\n key: 8,\n iv: 0\n}\nexports['des-cbc'] = exports.des = {\n key: 8,\n iv: 8\n}\nexports['des-ede3-cbc'] = exports.des3 = {\n key: 24,\n iv: 8\n}\nexports['des-ede3'] = {\n key: 24,\n iv: 0\n}\nexports['des-ede-cbc'] = {\n key: 16,\n iv: 8\n}\nexports['des-ede'] = {\n key: 16,\n iv: 0\n}\n","var CipherBase = require('cipher-base')\nvar des = require('des.js')\nvar inherits = require('inherits')\nvar Buffer = require('safe-buffer').Buffer\n\nvar modes = {\n 'des-ede3-cbc': des.CBC.instantiate(des.EDE),\n 'des-ede3': des.EDE,\n 'des-ede-cbc': des.CBC.instantiate(des.EDE),\n 'des-ede': des.EDE,\n 'des-cbc': des.CBC.instantiate(des.DES),\n 'des-ecb': des.DES\n}\nmodes.des = modes['des-cbc']\nmodes.des3 = modes['des-ede3-cbc']\nmodule.exports = DES\ninherits(DES, CipherBase)\nfunction DES (opts) {\n CipherBase.call(this)\n var modeName = opts.mode.toLowerCase()\n var mode = modes[modeName]\n var type\n if (opts.decrypt) {\n type = 'decrypt'\n } else {\n type = 'encrypt'\n }\n var key = opts.key\n if (!Buffer.isBuffer(key)) {\n key = Buffer.from(key)\n }\n if (modeName === 'des-ede' || modeName === 'des-ede-cbc') {\n key = Buffer.concat([key, key.slice(0, 8)])\n }\n var iv = opts.iv\n if (!Buffer.isBuffer(iv)) {\n iv = Buffer.from(iv)\n }\n this._des = mode.create({\n key: key,\n iv: iv,\n type: type\n })\n}\nDES.prototype._update = function (data) {\n return Buffer.from(this._des.update(data))\n}\nDES.prototype._final = function () {\n return Buffer.from(this._des.final())\n}\n","var Buffer = require('safe-buffer').Buffer\nvar xor = require('buffer-xor')\n\nfunction encryptStart (self, data, decrypt) {\n var len = data.length\n var out = xor(data, self._cache)\n self._cache = self._cache.slice(len)\n self._prev = Buffer.concat([self._prev, decrypt ? data : out])\n return out\n}\n\nexports.encrypt = function (self, data, decrypt) {\n var out = Buffer.allocUnsafe(0)\n var len\n\n while (data.length) {\n if (self._cache.length === 0) {\n self._cache = self._cipher.encryptBlock(self._prev)\n self._prev = Buffer.allocUnsafe(0)\n }\n\n if (self._cache.length <= data.length) {\n len = self._cache.length\n out = Buffer.concat([out, encryptStart(self, data.slice(0, len), decrypt)])\n data = data.slice(len)\n } else {\n out = Buffer.concat([out, encryptStart(self, data, decrypt)])\n break\n }\n }\n\n return out\n}\n","// based on the aes implimentation in triple sec\n// https://github.com/keybase/triplesec\n// which is in turn based on the one from crypto-js\n// https://code.google.com/p/crypto-js/\n\nvar Buffer = require('safe-buffer').Buffer\n\nfunction asUInt32Array (buf) {\n if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf)\n\n var len = (buf.length / 4) | 0\n var out = new Array(len)\n\n for (var i = 0; i < len; i++) {\n out[i] = buf.readUInt32BE(i * 4)\n }\n\n return out\n}\n\nfunction scrubVec (v) {\n for (var i = 0; i < v.length; v++) {\n v[i] = 0\n }\n}\n\nfunction cryptBlock (M, keySchedule, SUB_MIX, SBOX, nRounds) {\n var SUB_MIX0 = SUB_MIX[0]\n var SUB_MIX1 = SUB_MIX[1]\n var SUB_MIX2 = SUB_MIX[2]\n var SUB_MIX3 = SUB_MIX[3]\n\n var s0 = M[0] ^ keySchedule[0]\n var s1 = M[1] ^ keySchedule[1]\n var s2 = M[2] ^ keySchedule[2]\n var s3 = M[3] ^ keySchedule[3]\n var t0, t1, t2, t3\n var ksRow = 4\n\n for (var round = 1; round < nRounds; round++) {\n t0 = SUB_MIX0[s0 >>> 24] ^ SUB_MIX1[(s1 >>> 16) & 0xff] ^ SUB_MIX2[(s2 >>> 8) & 0xff] ^ SUB_MIX3[s3 & 0xff] ^ keySchedule[ksRow++]\n t1 = SUB_MIX0[s1 >>> 24] ^ SUB_MIX1[(s2 >>> 16) & 0xff] ^ SUB_MIX2[(s3 >>> 8) & 0xff] ^ SUB_MIX3[s0 & 0xff] ^ keySchedule[ksRow++]\n t2 = SUB_MIX0[s2 >>> 24] ^ SUB_MIX1[(s3 >>> 16) & 0xff] ^ SUB_MIX2[(s0 >>> 8) & 0xff] ^ SUB_MIX3[s1 & 0xff] ^ keySchedule[ksRow++]\n t3 = SUB_MIX0[s3 >>> 24] ^ SUB_MIX1[(s0 >>> 16) & 0xff] ^ SUB_MIX2[(s1 >>> 8) & 0xff] ^ SUB_MIX3[s2 & 0xff] ^ keySchedule[ksRow++]\n s0 = t0\n s1 = t1\n s2 = t2\n s3 = t3\n }\n\n t0 = ((SBOX[s0 >>> 24] << 24) | (SBOX[(s1 >>> 16) & 0xff] << 16) | (SBOX[(s2 >>> 8) & 0xff] << 8) | SBOX[s3 & 0xff]) ^ keySchedule[ksRow++]\n t1 = ((SBOX[s1 >>> 24] << 24) | (SBOX[(s2 >>> 16) & 0xff] << 16) | (SBOX[(s3 >>> 8) & 0xff] << 8) | SBOX[s0 & 0xff]) ^ keySchedule[ksRow++]\n t2 = ((SBOX[s2 >>> 24] << 24) | (SBOX[(s3 >>> 16) & 0xff] << 16) | (SBOX[(s0 >>> 8) & 0xff] << 8) | SBOX[s1 & 0xff]) ^ keySchedule[ksRow++]\n t3 = ((SBOX[s3 >>> 24] << 24) | (SBOX[(s0 >>> 16) & 0xff] << 16) | (SBOX[(s1 >>> 8) & 0xff] << 8) | SBOX[s2 & 0xff]) ^ keySchedule[ksRow++]\n t0 = t0 >>> 0\n t1 = t1 >>> 0\n t2 = t2 >>> 0\n t3 = t3 >>> 0\n\n return [t0, t1, t2, t3]\n}\n\n// AES constants\nvar RCON = [0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36]\nvar G = (function () {\n // Compute double table\n var d = new Array(256)\n for (var j = 0; j < 256; j++) {\n if (j < 128) {\n d[j] = j << 1\n } else {\n d[j] = (j << 1) ^ 0x11b\n }\n }\n\n var SBOX = []\n var INV_SBOX = []\n var SUB_MIX = [[], [], [], []]\n var INV_SUB_MIX = [[], [], [], []]\n\n // Walk GF(2^8)\n var x = 0\n var xi = 0\n for (var i = 0; i < 256; ++i) {\n // Compute sbox\n var sx = xi ^ (xi << 1) ^ (xi << 2) ^ (xi << 3) ^ (xi << 4)\n sx = (sx >>> 8) ^ (sx & 0xff) ^ 0x63\n SBOX[x] = sx\n INV_SBOX[sx] = x\n\n // Compute multiplication\n var x2 = d[x]\n var x4 = d[x2]\n var x8 = d[x4]\n\n // Compute sub bytes, mix columns tables\n var t = (d[sx] * 0x101) ^ (sx * 0x1010100)\n SUB_MIX[0][x] = (t << 24) | (t >>> 8)\n SUB_MIX[1][x] = (t << 16) | (t >>> 16)\n SUB_MIX[2][x] = (t << 8) | (t >>> 24)\n SUB_MIX[3][x] = t\n\n // Compute inv sub bytes, inv mix columns tables\n t = (x8 * 0x1010101) ^ (x4 * 0x10001) ^ (x2 * 0x101) ^ (x * 0x1010100)\n INV_SUB_MIX[0][sx] = (t << 24) | (t >>> 8)\n INV_SUB_MIX[1][sx] = (t << 16) | (t >>> 16)\n INV_SUB_MIX[2][sx] = (t << 8) | (t >>> 24)\n INV_SUB_MIX[3][sx] = t\n\n if (x === 0) {\n x = xi = 1\n } else {\n x = x2 ^ d[d[d[x8 ^ x2]]]\n xi ^= d[d[xi]]\n }\n }\n\n return {\n SBOX: SBOX,\n INV_SBOX: INV_SBOX,\n SUB_MIX: SUB_MIX,\n INV_SUB_MIX: INV_SUB_MIX\n }\n})()\n\nfunction AES (key) {\n this._key = asUInt32Array(key)\n this._reset()\n}\n\nAES.blockSize = 4 * 4\nAES.keySize = 256 / 8\nAES.prototype.blockSize = AES.blockSize\nAES.prototype.keySize = AES.keySize\nAES.prototype._reset = function () {\n var keyWords = this._key\n var keySize = keyWords.length\n var nRounds = keySize + 6\n var ksRows = (nRounds + 1) * 4\n\n var keySchedule = []\n for (var k = 0; k < keySize; k++) {\n keySchedule[k] = keyWords[k]\n }\n\n for (k = keySize; k < ksRows; k++) {\n var t = keySchedule[k - 1]\n\n if (k % keySize === 0) {\n t = (t << 8) | (t >>> 24)\n t =\n (G.SBOX[t >>> 24] << 24) |\n (G.SBOX[(t >>> 16) & 0xff] << 16) |\n (G.SBOX[(t >>> 8) & 0xff] << 8) |\n (G.SBOX[t & 0xff])\n\n t ^= RCON[(k / keySize) | 0] << 24\n } else if (keySize > 6 && k % keySize === 4) {\n t =\n (G.SBOX[t >>> 24] << 24) |\n (G.SBOX[(t >>> 16) & 0xff] << 16) |\n (G.SBOX[(t >>> 8) & 0xff] << 8) |\n (G.SBOX[t & 0xff])\n }\n\n keySchedule[k] = keySchedule[k - keySize] ^ t\n }\n\n var invKeySchedule = []\n for (var ik = 0; ik < ksRows; ik++) {\n var ksR = ksRows - ik\n var tt = keySchedule[ksR - (ik % 4 ? 0 : 4)]\n\n if (ik < 4 || ksR <= 4) {\n invKeySchedule[ik] = tt\n } else {\n invKeySchedule[ik] =\n G.INV_SUB_MIX[0][G.SBOX[tt >>> 24]] ^\n G.INV_SUB_MIX[1][G.SBOX[(tt >>> 16) & 0xff]] ^\n G.INV_SUB_MIX[2][G.SBOX[(tt >>> 8) & 0xff]] ^\n G.INV_SUB_MIX[3][G.SBOX[tt & 0xff]]\n }\n }\n\n this._nRounds = nRounds\n this._keySchedule = keySchedule\n this._invKeySchedule = invKeySchedule\n}\n\nAES.prototype.encryptBlockRaw = function (M) {\n M = asUInt32Array(M)\n return cryptBlock(M, this._keySchedule, G.SUB_MIX, G.SBOX, this._nRounds)\n}\n\nAES.prototype.encryptBlock = function (M) {\n var out = this.encryptBlockRaw(M)\n var buf = Buffer.allocUnsafe(16)\n buf.writeUInt32BE(out[0], 0)\n buf.writeUInt32BE(out[1], 4)\n buf.writeUInt32BE(out[2], 8)\n buf.writeUInt32BE(out[3], 12)\n return buf\n}\n\nAES.prototype.decryptBlock = function (M) {\n M = asUInt32Array(M)\n\n // swap\n var m1 = M[1]\n M[1] = M[3]\n M[3] = m1\n\n var out = cryptBlock(M, this._invKeySchedule, G.INV_SUB_MIX, G.INV_SBOX, this._nRounds)\n var buf = Buffer.allocUnsafe(16)\n buf.writeUInt32BE(out[0], 0)\n buf.writeUInt32BE(out[3], 4)\n buf.writeUInt32BE(out[2], 8)\n buf.writeUInt32BE(out[1], 12)\n return buf\n}\n\nAES.prototype.scrub = function () {\n scrubVec(this._keySchedule)\n scrubVec(this._invKeySchedule)\n scrubVec(this._key)\n}\n\nmodule.exports.AES = AES\n","var Buffer = require('safe-buffer').Buffer\nvar ZEROES = Buffer.alloc(16, 0)\n\nfunction toArray (buf) {\n return [\n buf.readUInt32BE(0),\n buf.readUInt32BE(4),\n buf.readUInt32BE(8),\n buf.readUInt32BE(12)\n ]\n}\n\nfunction fromArray (out) {\n var buf = Buffer.allocUnsafe(16)\n buf.writeUInt32BE(out[0] >>> 0, 0)\n buf.writeUInt32BE(out[1] >>> 0, 4)\n buf.writeUInt32BE(out[2] >>> 0, 8)\n buf.writeUInt32BE(out[3] >>> 0, 12)\n return buf\n}\n\nfunction GHASH (key) {\n this.h = key\n this.state = Buffer.alloc(16, 0)\n this.cache = Buffer.allocUnsafe(0)\n}\n\n// from http://bitwiseshiftleft.github.io/sjcl/doc/symbols/src/core_gcm.js.html\n// by Juho Vähä-Herttua\nGHASH.prototype.ghash = function (block) {\n var i = -1\n while (++i < block.length) {\n this.state[i] ^= block[i]\n }\n this._multiply()\n}\n\nGHASH.prototype._multiply = function () {\n var Vi = toArray(this.h)\n var Zi = [0, 0, 0, 0]\n var j, xi, lsbVi\n var i = -1\n while (++i < 128) {\n xi = (this.state[~~(i / 8)] & (1 << (7 - (i % 8)))) !== 0\n if (xi) {\n // Z_i+1 = Z_i ^ V_i\n Zi[0] ^= Vi[0]\n Zi[1] ^= Vi[1]\n Zi[2] ^= Vi[2]\n Zi[3] ^= Vi[3]\n }\n\n // Store the value of LSB(V_i)\n lsbVi = (Vi[3] & 1) !== 0\n\n // V_i+1 = V_i >> 1\n for (j = 3; j > 0; j--) {\n Vi[j] = (Vi[j] >>> 1) | ((Vi[j - 1] & 1) << 31)\n }\n Vi[0] = Vi[0] >>> 1\n\n // If LSB(V_i) is 1, V_i+1 = (V_i >> 1) ^ R\n if (lsbVi) {\n Vi[0] = Vi[0] ^ (0xe1 << 24)\n }\n }\n this.state = fromArray(Zi)\n}\n\nGHASH.prototype.update = function (buf) {\n this.cache = Buffer.concat([this.cache, buf])\n var chunk\n while (this.cache.length >= 16) {\n chunk = this.cache.slice(0, 16)\n this.cache = this.cache.slice(16)\n this.ghash(chunk)\n }\n}\n\nGHASH.prototype.final = function (abl, bl) {\n if (this.cache.length) {\n this.ghash(Buffer.concat([this.cache, ZEROES], 16))\n }\n\n this.ghash(fromArray([0, abl, 0, bl]))\n return this.state\n}\n\nmodule.exports = GHASH\n","var AuthCipher = require('./authCipher')\nvar Buffer = require('safe-buffer').Buffer\nvar MODES = require('./modes')\nvar StreamCipher = require('./streamCipher')\nvar Transform = require('cipher-base')\nvar aes = require('./aes')\nvar ebtk = require('evp_bytestokey')\nvar inherits = require('inherits')\n\nfunction Decipher (mode, key, iv) {\n Transform.call(this)\n\n this._cache = new Splitter()\n this._last = void 0\n this._cipher = new aes.AES(key)\n this._prev = Buffer.from(iv)\n this._mode = mode\n this._autopadding = true\n}\n\ninherits(Decipher, Transform)\n\nDecipher.prototype._update = function (data) {\n this._cache.add(data)\n var chunk\n var thing\n var out = []\n while ((chunk = this._cache.get(this._autopadding))) {\n thing = this._mode.decrypt(this, chunk)\n out.push(thing)\n }\n return Buffer.concat(out)\n}\n\nDecipher.prototype._final = function () {\n var chunk = this._cache.flush()\n if (this._autopadding) {\n return unpad(this._mode.decrypt(this, chunk))\n } else if (chunk) {\n throw new Error('data not multiple of block length')\n }\n}\n\nDecipher.prototype.setAutoPadding = function (setTo) {\n this._autopadding = !!setTo\n return this\n}\n\nfunction Splitter () {\n this.cache = Buffer.allocUnsafe(0)\n}\n\nSplitter.prototype.add = function (data) {\n this.cache = Buffer.concat([this.cache, data])\n}\n\nSplitter.prototype.get = function (autoPadding) {\n var out\n if (autoPadding) {\n if (this.cache.length > 16) {\n out = this.cache.slice(0, 16)\n this.cache = this.cache.slice(16)\n return out\n }\n } else {\n if (this.cache.length >= 16) {\n out = this.cache.slice(0, 16)\n this.cache = this.cache.slice(16)\n return out\n }\n }\n\n return null\n}\n\nSplitter.prototype.flush = function () {\n if (this.cache.length) return this.cache\n}\n\nfunction unpad (last) {\n var padded = last[15]\n if (padded < 1 || padded > 16) {\n throw new Error('unable to decrypt data')\n }\n var i = -1\n while (++i < padded) {\n if (last[(i + (16 - padded))] !== padded) {\n throw new Error('unable to decrypt data')\n }\n }\n if (padded === 16) return\n\n return last.slice(0, 16 - padded)\n}\n\nfunction createDecipheriv (suite, password, iv) {\n var config = MODES[suite.toLowerCase()]\n if (!config) throw new TypeError('invalid suite type')\n\n if (typeof iv === 'string') iv = Buffer.from(iv)\n if (config.mode !== 'GCM' && iv.length !== config.iv) throw new TypeError('invalid iv length ' + iv.length)\n\n if (typeof password === 'string') password = Buffer.from(password)\n if (password.length !== config.key / 8) throw new TypeError('invalid key length ' + password.length)\n\n if (config.type === 'stream') {\n return new StreamCipher(config.module, password, iv, true)\n } else if (config.type === 'auth') {\n return new AuthCipher(config.module, password, iv, true)\n }\n\n return new Decipher(config.module, password, iv)\n}\n\nfunction createDecipher (suite, password) {\n var config = MODES[suite.toLowerCase()]\n if (!config) throw new TypeError('invalid suite type')\n\n var keys = ebtk(password, false, config.key, config.iv)\n return createDecipheriv(suite, keys.key, keys.iv)\n}\n\nexports.createDecipher = createDecipher\nexports.createDecipheriv = createDecipheriv\n","var xor = require('buffer-xor')\n\nfunction getBlock (self) {\n self._prev = self._cipher.encryptBlock(self._prev)\n return self._prev\n}\n\nexports.encrypt = function (self, chunk) {\n while (self._cache.length < chunk.length) {\n self._cache = Buffer.concat([self._cache, getBlock(self)])\n }\n\n var pad = self._cache.slice(0, chunk.length)\n self._cache = self._cache.slice(chunk.length)\n return xor(chunk, pad)\n}\n","var Buffer = require('safe-buffer').Buffer\n\nfunction encryptByte (self, byteParam, decrypt) {\n var pad\n var i = -1\n var len = 8\n var out = 0\n var bit, value\n while (++i < len) {\n pad = self._cipher.encryptBlock(self._prev)\n bit = (byteParam & (1 << (7 - i))) ? 0x80 : 0\n value = pad[0] ^ bit\n out += ((value & 0x80) >> (i % 8))\n self._prev = shiftIn(self._prev, decrypt ? bit : value)\n }\n return out\n}\n\nfunction shiftIn (buffer, value) {\n var len = buffer.length\n var i = -1\n var out = Buffer.allocUnsafe(buffer.length)\n buffer = Buffer.concat([buffer, Buffer.from([value])])\n\n while (++i < len) {\n out[i] = buffer[i] << 1 | buffer[i + 1] >> (7)\n }\n\n return out\n}\n\nexports.encrypt = function (self, chunk, decrypt) {\n var len = chunk.length\n var out = Buffer.allocUnsafe(len)\n var i = -1\n\n while (++i < len) {\n out[i] = encryptByte(self, chunk[i], decrypt)\n }\n\n return out\n}\n","var Buffer = require('safe-buffer').Buffer\n\nfunction encryptByte (self, byteParam, decrypt) {\n var pad = self._cipher.encryptBlock(self._prev)\n var out = pad[0] ^ byteParam\n\n self._prev = Buffer.concat([\n self._prev.slice(1),\n Buffer.from([decrypt ? byteParam : out])\n ])\n\n return out\n}\n\nexports.encrypt = function (self, chunk, decrypt) {\n var len = chunk.length\n var out = Buffer.allocUnsafe(len)\n var i = -1\n\n while (++i < len) {\n out[i] = encryptByte(self, chunk[i], decrypt)\n }\n\n return out\n}\n","var xor = require('buffer-xor')\nvar Buffer = require('safe-buffer').Buffer\nvar incr32 = require('../incr32')\n\nfunction getBlock (self) {\n var out = self._cipher.encryptBlockRaw(self._prev)\n incr32(self._prev)\n return out\n}\n\nvar blockSize = 16\nexports.encrypt = function (self, chunk) {\n var chunkNum = Math.ceil(chunk.length / blockSize)\n var start = self._cache.length\n self._cache = Buffer.concat([\n self._cache,\n Buffer.allocUnsafe(chunkNum * blockSize)\n ])\n for (var i = 0; i < chunkNum; i++) {\n var out = getBlock(self)\n var offset = start + i * blockSize\n self._cache.writeUInt32BE(out[0], offset + 0)\n self._cache.writeUInt32BE(out[1], offset + 4)\n self._cache.writeUInt32BE(out[2], offset + 8)\n self._cache.writeUInt32BE(out[3], offset + 12)\n }\n var pad = self._cache.slice(0, chunk.length)\n self._cache = self._cache.slice(chunk.length)\n return xor(chunk, pad)\n}\n","var aes = require('./aes')\nvar Buffer = require('safe-buffer').Buffer\nvar Transform = require('cipher-base')\nvar inherits = require('inherits')\nvar GHASH = require('./ghash')\nvar xor = require('buffer-xor')\nvar incr32 = require('./incr32')\n\nfunction xorTest (a, b) {\n var out = 0\n if (a.length !== b.length) out++\n\n var len = Math.min(a.length, b.length)\n for (var i = 0; i < len; ++i) {\n out += (a[i] ^ b[i])\n }\n\n return out\n}\n\nfunction calcIv (self, iv, ck) {\n if (iv.length === 12) {\n self._finID = Buffer.concat([iv, Buffer.from([0, 0, 0, 1])])\n return Buffer.concat([iv, Buffer.from([0, 0, 0, 2])])\n }\n var ghash = new GHASH(ck)\n var len = iv.length\n var toPad = len % 16\n ghash.update(iv)\n if (toPad) {\n toPad = 16 - toPad\n ghash.update(Buffer.alloc(toPad, 0))\n }\n ghash.update(Buffer.alloc(8, 0))\n var ivBits = len * 8\n var tail = Buffer.alloc(8)\n tail.writeUIntBE(ivBits, 0, 8)\n ghash.update(tail)\n self._finID = ghash.state\n var out = Buffer.from(self._finID)\n incr32(out)\n return out\n}\nfunction StreamCipher (mode, key, iv, decrypt) {\n Transform.call(this)\n\n var h = Buffer.alloc(4, 0)\n\n this._cipher = new aes.AES(key)\n var ck = this._cipher.encryptBlock(h)\n this._ghash = new GHASH(ck)\n iv = calcIv(this, iv, ck)\n\n this._prev = Buffer.from(iv)\n this._cache = Buffer.allocUnsafe(0)\n this._secCache = Buffer.allocUnsafe(0)\n this._decrypt = decrypt\n this._alen = 0\n this._len = 0\n this._mode = mode\n\n this._authTag = null\n this._called = false\n}\n\ninherits(StreamCipher, Transform)\n\nStreamCipher.prototype._update = function (chunk) {\n if (!this._called && this._alen) {\n var rump = 16 - (this._alen % 16)\n if (rump < 16) {\n rump = Buffer.alloc(rump, 0)\n this._ghash.update(rump)\n }\n }\n\n this._called = true\n var out = this._mode.encrypt(this, chunk)\n if (this._decrypt) {\n this._ghash.update(chunk)\n } else {\n this._ghash.update(out)\n }\n this._len += chunk.length\n return out\n}\n\nStreamCipher.prototype._final = function () {\n if (this._decrypt && !this._authTag) throw new Error('Unsupported state or unable to authenticate data')\n\n var tag = xor(this._ghash.final(this._alen * 8, this._len * 8), this._cipher.encryptBlock(this._finID))\n if (this._decrypt && xorTest(tag, this._authTag)) throw new Error('Unsupported state or unable to authenticate data')\n\n this._authTag = tag\n this._cipher.scrub()\n}\n\nStreamCipher.prototype.getAuthTag = function getAuthTag () {\n if (this._decrypt || !Buffer.isBuffer(this._authTag)) throw new Error('Attempting to get auth tag in unsupported state')\n\n return this._authTag\n}\n\nStreamCipher.prototype.setAuthTag = function setAuthTag (tag) {\n if (!this._decrypt) throw new Error('Attempting to set auth tag in unsupported state')\n\n this._authTag = tag\n}\n\nStreamCipher.prototype.setAAD = function setAAD (buf) {\n if (this._called) throw new Error('Attempting to set AAD in unsupported state')\n\n this._ghash.update(buf)\n this._alen += buf.length\n}\n\nmodule.exports = StreamCipher\n","var MODES = require('./modes')\nvar AuthCipher = require('./authCipher')\nvar Buffer = require('safe-buffer').Buffer\nvar StreamCipher = require('./streamCipher')\nvar Transform = require('cipher-base')\nvar aes = require('./aes')\nvar ebtk = require('evp_bytestokey')\nvar inherits = require('inherits')\n\nfunction Cipher (mode, key, iv) {\n Transform.call(this)\n\n this._cache = new Splitter()\n this._cipher = new aes.AES(key)\n this._prev = Buffer.from(iv)\n this._mode = mode\n this._autopadding = true\n}\n\ninherits(Cipher, Transform)\n\nCipher.prototype._update = function (data) {\n this._cache.add(data)\n var chunk\n var thing\n var out = []\n\n while ((chunk = this._cache.get())) {\n thing = this._mode.encrypt(this, chunk)\n out.push(thing)\n }\n\n return Buffer.concat(out)\n}\n\nvar PADDING = Buffer.alloc(16, 0x10)\n\nCipher.prototype._final = function () {\n var chunk = this._cache.flush()\n if (this._autopadding) {\n chunk = this._mode.encrypt(this, chunk)\n this._cipher.scrub()\n return chunk\n }\n\n if (!chunk.equals(PADDING)) {\n this._cipher.scrub()\n throw new Error('data not multiple of block length')\n }\n}\n\nCipher.prototype.setAutoPadding = function (setTo) {\n this._autopadding = !!setTo\n return this\n}\n\nfunction Splitter () {\n this.cache = Buffer.allocUnsafe(0)\n}\n\nSplitter.prototype.add = function (data) {\n this.cache = Buffer.concat([this.cache, data])\n}\n\nSplitter.prototype.get = function () {\n if (this.cache.length > 15) {\n var out = this.cache.slice(0, 16)\n this.cache = this.cache.slice(16)\n return out\n }\n return null\n}\n\nSplitter.prototype.flush = function () {\n var len = 16 - this.cache.length\n var padBuff = Buffer.allocUnsafe(len)\n\n var i = -1\n while (++i < len) {\n padBuff.writeUInt8(len, i)\n }\n\n return Buffer.concat([this.cache, padBuff])\n}\n\nfunction createCipheriv (suite, password, iv) {\n var config = MODES[suite.toLowerCase()]\n if (!config) throw new TypeError('invalid suite type')\n\n if (typeof password === 'string') password = Buffer.from(password)\n if (password.length !== config.key / 8) throw new TypeError('invalid key length ' + password.length)\n\n if (typeof iv === 'string') iv = Buffer.from(iv)\n if (config.mode !== 'GCM' && iv.length !== config.iv) throw new TypeError('invalid iv length ' + iv.length)\n\n if (config.type === 'stream') {\n return new StreamCipher(config.module, password, iv)\n } else if (config.type === 'auth') {\n return new AuthCipher(config.module, password, iv)\n }\n\n return new Cipher(config.module, password, iv)\n}\n\nfunction createCipher (suite, password) {\n var config = MODES[suite.toLowerCase()]\n if (!config) throw new TypeError('invalid suite type')\n\n var keys = ebtk(password, false, config.key, config.iv)\n return createCipheriv(suite, keys.key, keys.iv)\n}\n\nexports.createCipheriv = createCipheriv\nexports.createCipher = createCipher\n","var DES = require('browserify-des')\nvar aes = require('browserify-aes/browser')\nvar aesModes = require('browserify-aes/modes')\nvar desModes = require('browserify-des/modes')\nvar ebtk = require('evp_bytestokey')\n\nfunction createCipher (suite, password) {\n suite = suite.toLowerCase()\n\n var keyLen, ivLen\n if (aesModes[suite]) {\n keyLen = aesModes[suite].key\n ivLen = aesModes[suite].iv\n } else if (desModes[suite]) {\n keyLen = desModes[suite].key * 8\n ivLen = desModes[suite].iv\n } else {\n throw new TypeError('invalid suite type')\n }\n\n var keys = ebtk(password, false, keyLen, ivLen)\n return createCipheriv(suite, keys.key, keys.iv)\n}\n\nfunction createDecipher (suite, password) {\n suite = suite.toLowerCase()\n\n var keyLen, ivLen\n if (aesModes[suite]) {\n keyLen = aesModes[suite].key\n ivLen = aesModes[suite].iv\n } else if (desModes[suite]) {\n keyLen = desModes[suite].key * 8\n ivLen = desModes[suite].iv\n } else {\n throw new TypeError('invalid suite type')\n }\n\n var keys = ebtk(password, false, keyLen, ivLen)\n return createDecipheriv(suite, keys.key, keys.iv)\n}\n\nfunction createCipheriv (suite, key, iv) {\n suite = suite.toLowerCase()\n if (aesModes[suite]) return aes.createCipheriv(suite, key, iv)\n if (desModes[suite]) return new DES({ key: key, iv: iv, mode: suite })\n\n throw new TypeError('invalid suite type')\n}\n\nfunction createDecipheriv (suite, key, iv) {\n suite = suite.toLowerCase()\n if (aesModes[suite]) return aes.createDecipheriv(suite, key, iv)\n if (desModes[suite]) return new DES({ key: key, iv: iv, mode: suite, decrypt: true })\n\n throw new TypeError('invalid suite type')\n}\n\nfunction getCiphers () {\n return Object.keys(desModes).concat(aes.getCiphers())\n}\n\nexports.createCipher = exports.Cipher = createCipher\nexports.createCipheriv = exports.Cipheriv = createCipheriv\nexports.createDecipher = exports.Decipher = createDecipher\nexports.createDecipheriv = exports.Decipheriv = createDecipheriv\nexports.listCiphers = exports.getCiphers = getCiphers\n","var bn = require('bn.js');\nvar randomBytes = require('randombytes');\nmodule.exports = crt;\nfunction blind(priv) {\n var r = getr(priv);\n var blinder = r.toRed(bn.mont(priv.modulus))\n .redPow(new bn(priv.publicExponent)).fromRed();\n return {\n blinder: blinder,\n unblinder:r.invm(priv.modulus)\n };\n}\nfunction crt(msg, priv) {\n var blinds = blind(priv);\n var len = priv.modulus.byteLength();\n var mod = bn.mont(priv.modulus);\n var blinded = new bn(msg).mul(blinds.blinder).umod(priv.modulus);\n var c1 = blinded.toRed(bn.mont(priv.prime1));\n var c2 = blinded.toRed(bn.mont(priv.prime2));\n var qinv = priv.coefficient;\n var p = priv.prime1;\n var q = priv.prime2;\n var m1 = c1.redPow(priv.exponent1);\n var m2 = c2.redPow(priv.exponent2);\n m1 = m1.fromRed();\n m2 = m2.fromRed();\n var h = m1.isub(m2).imul(qinv).umod(p);\n h.imul(q);\n m2.iadd(h);\n return new Buffer(m2.imul(blinds.unblinder).umod(priv.modulus).toArray(false, len));\n}\ncrt.getr = getr;\nfunction getr(priv) {\n var len = priv.modulus.byteLength();\n var r = new bn(randomBytes(len));\n while (r.cmp(priv.modulus) >= 0 || !r.umod(priv.prime1) || !r.umod(priv.prime2)) {\n r = new bn(randomBytes(len));\n }\n return r;\n}\n","var modeModules = {\n ECB: require('./ecb'),\n CBC: require('./cbc'),\n CFB: require('./cfb'),\n CFB8: require('./cfb8'),\n CFB1: require('./cfb1'),\n OFB: require('./ofb'),\n CTR: require('./ctr'),\n GCM: require('./ctr')\n}\n\nvar modes = require('./list.json')\n\nfor (var key in modes) {\n modes[key].module = modeModules[modes[key].mode]\n}\n\nmodule.exports = modes\n","function incr32 (iv) {\n var len = iv.length\n var item\n while (len--) {\n item = iv.readUInt8(len)\n if (item === 255) {\n iv.writeUInt8(0, len)\n } else {\n item++\n iv.writeUInt8(item, len)\n break\n }\n }\n}\nmodule.exports = incr32\n","var xor = require('buffer-xor')\n\nexports.encrypt = function (self, block) {\n var data = xor(block, self._prev)\n\n self._prev = self._cipher.encryptBlock(data)\n return self._prev\n}\n\nexports.decrypt = function (self, block) {\n var pad = self._prev\n\n self._prev = block\n var out = self._cipher.decryptBlock(block)\n\n return xor(out, pad)\n}\n","var ciphers = require('./encrypter')\nvar deciphers = require('./decrypter')\nvar modes = require('./modes/list.json')\n\nfunction getCiphers () {\n return Object.keys(modes)\n}\n\nexports.createCipher = exports.Cipher = ciphers.createCipher\nexports.createCipheriv = exports.Cipheriv = ciphers.createCipheriv\nexports.createDecipher = exports.Decipher = deciphers.createDecipher\nexports.createDecipheriv = exports.Decipheriv = deciphers.createDecipheriv\nexports.listCiphers = exports.getCiphers = getCiphers\n","var r;\n\nmodule.exports = function rand(len) {\n if (!r)\n r = new Rand(null);\n\n return r.generate(len);\n};\n\nfunction Rand(rand) {\n this.rand = rand;\n}\nmodule.exports.Rand = Rand;\n\nRand.prototype.generate = function generate(len) {\n return this._rand(len);\n};\n\n// Emulate crypto API using randy\nRand.prototype._rand = function _rand(n) {\n if (this.rand.getBytes)\n return this.rand.getBytes(n);\n\n var res = new Uint8Array(n);\n for (var i = 0; i < res.length; i++)\n res[i] = this.rand.getByte();\n return res;\n};\n\nif (typeof self === 'object') {\n if (self.crypto && self.crypto.getRandomValues) {\n // Modern browsers\n Rand.prototype._rand = function _rand(n) {\n var arr = new Uint8Array(n);\n self.crypto.getRandomValues(arr);\n return arr;\n };\n } else if (self.msCrypto && self.msCrypto.getRandomValues) {\n // IE\n Rand.prototype._rand = function _rand(n) {\n var arr = new Uint8Array(n);\n self.msCrypto.getRandomValues(arr);\n return arr;\n };\n\n // Safari's WebWorkers do not have `crypto`\n } else if (typeof window === 'object') {\n // Old junk\n Rand.prototype._rand = function() {\n throw new Error('Not implemented yet');\n };\n }\n} else {\n // Node.js or Web worker with no crypto support\n try {\n var crypto = require('crypto');\n if (typeof crypto.randomBytes !== 'function')\n throw new Error('Not supported');\n\n Rand.prototype._rand = function _rand(n) {\n return crypto.randomBytes(n);\n };\n } catch (e) {\n }\n}\n"],"sourceRoot":""}