1 line
12 KiB
JSON
1 line
12 KiB
JSON
{"ast":null,"code":"var AuthCipher = require('./authCipher');\n\nvar Buffer = require('safe-buffer').Buffer;\n\nvar MODES = require('./modes');\n\nvar StreamCipher = require('./streamCipher');\n\nvar Transform = require('cipher-base');\n\nvar aes = require('./aes');\n\nvar ebtk = require('evp_bytestokey');\n\nvar inherits = require('inherits');\n\nfunction Decipher(mode, key, iv) {\n Transform.call(this);\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\n var chunk;\n var thing;\n var out = [];\n\n while (chunk = this._cache.get(this._autopadding)) {\n thing = this._mode.decrypt(this, chunk);\n out.push(thing);\n }\n\n return Buffer.concat(out);\n};\n\nDecipher.prototype._final = function () {\n var chunk = this._cache.flush();\n\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\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\n if (padded < 1 || padded > 16) {\n throw new Error('unable to decrypt data');\n }\n\n var i = -1;\n\n while (++i < padded) {\n if (last[i + (16 - padded)] !== padded) {\n throw new Error('unable to decrypt data');\n }\n }\n\n if (padded === 16) return;\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 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 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 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;","map":{"version":3,"sources":["/Users/tylerkoenig/Code/personal/react-scss2/node_modules/browserify-aes/decrypter.js"],"names":["AuthCipher","require","Buffer","MODES","StreamCipher","Transform","aes","ebtk","inherits","Decipher","mode","key","iv","call","_cache","Splitter","_last","_cipher","AES","_prev","from","_mode","_autopadding","prototype","_update","data","add","chunk","thing","out","get","decrypt","push","concat","_final","flush","unpad","Error","setAutoPadding","setTo","cache","allocUnsafe","autoPadding","length","slice","last","padded","i","createDecipheriv","suite","password","config","toLowerCase","TypeError","type","module","createDecipher","keys","exports"],"mappings":"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","sourcesContent":["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"]},"metadata":{},"sourceType":"script"} |