{"version":3,"sources":["../node_modules/browserify-aes/aes.js","../node_modules/browserify-aes/browser.js","../node_modules/browserify-aes/modes/index.js","../node_modules/browserify-aes/modes/ctr.js","../node_modules/browserify-aes/incr32.js","../node_modules/browserify-aes/authCipher.js","../node_modules/browserify-aes/streamCipher.js","../node_modules/browserify-aes/encrypter.js","../node_modules/browserify-aes/modes/ecb.js","../node_modules/browserify-aes/modes/cbc.js","../node_modules/browserify-aes/modes/cfb.js","../node_modules/browserify-aes/modes/cfb8.js","../node_modules/browserify-aes/modes/cfb1.js","../node_modules/browserify-aes/modes/ofb.js","../node_modules/browserify-aes/ghash.js","../node_modules/browserify-aes/decrypter.js"],"names":["Buffer","require","asUInt32Array","buf","isBuffer","from","len","length","out","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","AES","key","this","_key","_reset","blockSize","keySize","prototype","keyWords","ksRows","k","invKeySchedule","ik","ksR","tt","_nRounds","_keySchedule","_invKeySchedule","encryptBlockRaw","encryptBlock","allocUnsafe","writeUInt32BE","decryptBlock","m1","scrub","module","exports","ciphers","deciphers","modes","createCipher","Cipher","createCipheriv","Cipheriv","createDecipher","Decipher","createDecipheriv","Decipheriv","listCiphers","getCiphers","Object","keys","modeModules","ECB","CBC","CFB","CFB8","CFB1","OFB","CTR","GCM","mode","xor","incr32","getBlock","self","_cipher","_prev","encrypt","chunk","chunkNum","Math","ceil","start","_cache","concat","offset","pad","slice","iv","item","readUInt8","writeUInt8","aes","Transform","inherits","GHASH","StreamCipher","decrypt","call","h","alloc","ck","_ghash","_finID","ghash","toPad","update","ivBits","tail","writeUIntBE","state","calcIv","_secCache","_decrypt","_alen","_len","_mode","_authTag","_called","_update","rump","_final","Error","tag","final","a","b","min","xorTest","getAuthTag","setAuthTag","setAAD","MODES","AuthCipher","ebtk","Splitter","_autopadding","data","thing","add","get","push","PADDING","cache","suite","password","config","toLowerCase","TypeError","type","flush","equals","setAutoPadding","setTo","padBuff","block","encryptStart","encryptByte","byteParam","bit","value","shiftIn","buffer","ZEROES","fromArray","_multiply","lsbVi","Vi","Zi","abl","bl","_last","last","padded","unpad","autoPadding"],"mappings":"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","file":"static/js/browserify-aes.4474ac0d.chunk.js","sourcesContent":["// 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 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 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","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","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 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 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","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","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 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 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","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 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 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\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"],"sourceRoot":""}