{"version":3,"sources":["webpack:////home/runner/work/frontend-monorepo/frontend-monorepo/node_modules/browserify-aes/browser.js","webpack:////home/runner/work/frontend-monorepo/frontend-monorepo/node_modules/browserify-aes/aes.js","webpack:////home/runner/work/frontend-monorepo/frontend-monorepo/node_modules/browserify-aes/ghash.js","webpack:////home/runner/work/frontend-monorepo/frontend-monorepo/node_modules/browserify-aes/modes/ctr.js","webpack:////home/runner/work/frontend-monorepo/frontend-monorepo/node_modules/browserify-aes/modes/index.js","webpack:////home/runner/work/frontend-monorepo/frontend-monorepo/node_modules/browserify-aes/incr32.js","webpack:////home/runner/work/frontend-monorepo/frontend-monorepo/node_modules/browserify-aes/modes/cfb8.js","webpack:////home/runner/work/frontend-monorepo/frontend-monorepo/node_modules/browserify-aes/streamCipher.js","webpack:////home/runner/work/frontend-monorepo/frontend-monorepo/node_modules/browserify-aes/authCipher.js","webpack:////home/runner/work/frontend-monorepo/frontend-monorepo/node_modules/browserify-aes/modes/cfb1.js","webpack:////home/runner/work/frontend-monorepo/frontend-monorepo/node_modules/browserify-aes/decrypter.js","webpack:////home/runner/work/frontend-monorepo/frontend-monorepo/node_modules/browserify-aes/modes/ecb.js","webpack:////home/runner/work/frontend-monorepo/frontend-monorepo/node_modules/browserify-aes/modes/cbc.js","webpack:////home/runner/work/frontend-monorepo/frontend-monorepo/node_modules/browserify-aes/encrypter.js","webpack:////home/runner/work/frontend-monorepo/frontend-monorepo/node_modules/browserify-aes/modes/ofb.js","webpack:////home/runner/work/frontend-monorepo/frontend-monorepo/node_modules/browserify-aes/modes/cfb.js"],"names":["ciphers","deciphers","modes","exports","createCipher","Cipher","createCipheriv","Cipheriv","createDecipher","Decipher","createDecipheriv","Decipheriv","listCiphers","getCiphers","Object","keys","Buffer","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","ZEROES","alloc","fromArray","GHASH","h","state","cache","ghash","block","_multiply","lsbVi","Vi","Zi","update","chunk","concat","slice","final","abl","bl","xor","incr32","getBlock","self","_cipher","_prev","encrypt","chunkNum","Math","ceil","start","_cache","offset","pad","modeModules","ECB","CBC","CFB","CFB8","CFB1","OFB","CTR","GCM","mode","iv","item","readUInt8","writeUInt8","encryptByte","byteParam","decrypt","aes","Transform","StreamCipher","call","_secCache","_decrypt","_mode","inherits","_update","_final","ck","_ghash","_finID","toPad","ivBits","tail","writeUIntBE","calcIv","_alen","_len","_authTag","_called","rump","Error","tag","a","b","min","xorTest","getAuthTag","setAuthTag","setAAD","bit","value","shiftIn","buffer","AuthCipher","MODES","ebtk","Splitter","_last","_autopadding","suite","password","config","toLowerCase","TypeError","type","data","thing","add","get","push","flush","last","padded","unpad","setAutoPadding","setTo","autoPadding","PADDING","equals","padBuff","encryptStart"],"mappings":"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","file":"npm.browserify-aes.e15aa970c52275ce1001.chunk.js","sourcesContent":["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","// 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 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 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 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 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 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 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 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","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 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 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 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"],"sourceRoot":""}