1 line
11 KiB
JSON
1 line
11 KiB
JSON
{"ast":null,"code":"var aes = require('./aes');\n\nvar Buffer = require('safe-buffer').Buffer;\n\nvar Transform = require('cipher-base');\n\nvar inherits = require('inherits');\n\nvar GHASH = require('./ghash');\n\nvar xor = require('buffer-xor');\n\nvar incr32 = require('./incr32');\n\nfunction xorTest(a, b) {\n var out = 0;\n if (a.length !== b.length) out++;\n var len = Math.min(a.length, b.length);\n\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\n var ghash = new GHASH(ck);\n var len = iv.length;\n var toPad = len % 16;\n ghash.update(iv);\n\n if (toPad) {\n toPad = 16 - toPad;\n ghash.update(Buffer.alloc(toPad, 0));\n }\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}\n\nfunction StreamCipher(mode, key, iv, decrypt) {\n Transform.call(this);\n var h = Buffer.alloc(4, 0);\n this._cipher = new aes.AES(key);\n\n var ck = this._cipher.encryptBlock(h);\n\n this._ghash = new GHASH(ck);\n iv = calcIv(this, iv, ck);\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 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\n if (rump < 16) {\n rump = Buffer.alloc(rump, 0);\n\n this._ghash.update(rump);\n }\n }\n\n this._called = true;\n\n var out = this._mode.encrypt(this, chunk);\n\n if (this._decrypt) {\n this._ghash.update(chunk);\n } else {\n this._ghash.update(out);\n }\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 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 this._authTag = tag;\n\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 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 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\n this._alen += buf.length;\n};\n\nmodule.exports = StreamCipher;","map":{"version":3,"sources":["/Users/tylerkoenig/Code/personal/react-scss2/node_modules/browserify-aes/authCipher.js"],"names":["aes","require","Buffer","Transform","inherits","GHASH","xor","incr32","xorTest","a","b","out","length","len","Math","min","i","calcIv","self","iv","ck","_finID","concat","from","ghash","toPad","update","alloc","ivBits","tail","writeUIntBE","state","StreamCipher","mode","key","decrypt","call","h","_cipher","AES","encryptBlock","_ghash","_prev","_cache","allocUnsafe","_secCache","_decrypt","_alen","_len","_mode","_authTag","_called","prototype","_update","chunk","rump","encrypt","_final","Error","tag","final","scrub","getAuthTag","isBuffer","setAuthTag","setAAD","buf","module","exports"],"mappings":"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","sourcesContent":["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"]},"metadata":{},"sourceType":"script"} |