1 line
11 KiB
JSON
1 line
11 KiB
JSON
{"ast":null,"code":"var MODES = require('./modes');\n\nvar AuthCipher = require('./authCipher');\n\nvar Buffer = require('safe-buffer').Buffer;\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 Cipher(mode, key, iv) {\n Transform.call(this);\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\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\n if (this._autopadding) {\n chunk = this._mode.encrypt(this, chunk);\n\n this._cipher.scrub();\n\n return chunk;\n }\n\n if (!chunk.equals(PADDING)) {\n this._cipher.scrub();\n\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\n return null;\n};\n\nSplitter.prototype.flush = function () {\n var len = 16 - this.cache.length;\n var padBuff = Buffer.allocUnsafe(len);\n var i = -1;\n\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 if (typeof password === 'string') password = Buffer.from(password);\n if (password.length !== config.key / 8) throw new TypeError('invalid key length ' + password.length);\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 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;","map":{"version":3,"sources":["/Users/tylerkoenig/Code/personal/react-scss2/node_modules/browserify-aes/encrypter.js"],"names":["MODES","require","AuthCipher","Buffer","StreamCipher","Transform","aes","ebtk","inherits","Cipher","mode","key","iv","call","_cache","Splitter","_cipher","AES","_prev","from","_mode","_autopadding","prototype","_update","data","add","chunk","thing","out","get","encrypt","push","concat","PADDING","alloc","_final","flush","scrub","equals","Error","setAutoPadding","setTo","cache","allocUnsafe","length","slice","len","padBuff","i","writeUInt8","createCipheriv","suite","password","config","toLowerCase","TypeError","type","module","createCipher","keys","exports"],"mappings":"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","sourcesContent":["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"]},"metadata":{},"sourceType":"script"} |