1 line
11 KiB
JSON
1 line
11 KiB
JSON
{"ast":null,"code":"'use strict';\n\nvar assert = require('minimalistic-assert');\n\nfunction Cipher(options) {\n this.options = options;\n this.type = this.options.type;\n this.blockSize = 8;\n\n this._init();\n\n this.buffer = new Array(this.blockSize);\n this.bufferOff = 0;\n}\n\nmodule.exports = Cipher;\n\nCipher.prototype._init = function _init() {// Might be overrided\n};\n\nCipher.prototype.update = function update(data) {\n if (data.length === 0) return [];\n if (this.type === 'decrypt') return this._updateDecrypt(data);else return this._updateEncrypt(data);\n};\n\nCipher.prototype._buffer = function _buffer(data, off) {\n // Append data to buffer\n var min = Math.min(this.buffer.length - this.bufferOff, data.length - off);\n\n for (var i = 0; i < min; i++) this.buffer[this.bufferOff + i] = data[off + i];\n\n this.bufferOff += min; // Shift next\n\n return min;\n};\n\nCipher.prototype._flushBuffer = function _flushBuffer(out, off) {\n this._update(this.buffer, 0, out, off);\n\n this.bufferOff = 0;\n return this.blockSize;\n};\n\nCipher.prototype._updateEncrypt = function _updateEncrypt(data) {\n var inputOff = 0;\n var outputOff = 0;\n var count = (this.bufferOff + data.length) / this.blockSize | 0;\n var out = new Array(count * this.blockSize);\n\n if (this.bufferOff !== 0) {\n inputOff += this._buffer(data, inputOff);\n if (this.bufferOff === this.buffer.length) outputOff += this._flushBuffer(out, outputOff);\n } // Write blocks\n\n\n var max = data.length - (data.length - inputOff) % this.blockSize;\n\n for (; inputOff < max; inputOff += this.blockSize) {\n this._update(data, inputOff, out, outputOff);\n\n outputOff += this.blockSize;\n } // Queue rest\n\n\n for (; inputOff < data.length; inputOff++, this.bufferOff++) this.buffer[this.bufferOff] = data[inputOff];\n\n return out;\n};\n\nCipher.prototype._updateDecrypt = function _updateDecrypt(data) {\n var inputOff = 0;\n var outputOff = 0;\n var count = Math.ceil((this.bufferOff + data.length) / this.blockSize) - 1;\n var out = new Array(count * this.blockSize); // TODO(indutny): optimize it, this is far from optimal\n\n for (; count > 0; count--) {\n inputOff += this._buffer(data, inputOff);\n outputOff += this._flushBuffer(out, outputOff);\n } // Buffer rest of the input\n\n\n inputOff += this._buffer(data, inputOff);\n return out;\n};\n\nCipher.prototype.final = function final(buffer) {\n var first;\n if (buffer) first = this.update(buffer);\n var last;\n if (this.type === 'encrypt') last = this._finalEncrypt();else last = this._finalDecrypt();\n if (first) return first.concat(last);else return last;\n};\n\nCipher.prototype._pad = function _pad(buffer, off) {\n if (off === 0) return false;\n\n while (off < buffer.length) buffer[off++] = 0;\n\n return true;\n};\n\nCipher.prototype._finalEncrypt = function _finalEncrypt() {\n if (!this._pad(this.buffer, this.bufferOff)) return [];\n var out = new Array(this.blockSize);\n\n this._update(this.buffer, 0, out, 0);\n\n return out;\n};\n\nCipher.prototype._unpad = function _unpad(buffer) {\n return buffer;\n};\n\nCipher.prototype._finalDecrypt = function _finalDecrypt() {\n assert.equal(this.bufferOff, this.blockSize, 'Not enough data to decrypt');\n var out = new Array(this.blockSize);\n\n this._flushBuffer(out, 0);\n\n return this._unpad(out);\n};","map":{"version":3,"sources":["/Users/tylerkoenig/Code/personal/react-scss2/node_modules/des.js/lib/des/cipher.js"],"names":["assert","require","Cipher","options","type","blockSize","_init","buffer","Array","bufferOff","module","exports","prototype","update","data","length","_updateDecrypt","_updateEncrypt","_buffer","off","min","Math","i","_flushBuffer","out","_update","inputOff","outputOff","count","max","ceil","final","first","last","_finalEncrypt","_finalDecrypt","concat","_pad","_unpad","equal"],"mappings":"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","sourcesContent":["'use strict';\n\nvar assert = require('minimalistic-assert');\n\nfunction Cipher(options) {\n this.options = options;\n\n this.type = this.options.type;\n this.blockSize = 8;\n this._init();\n\n this.buffer = new Array(this.blockSize);\n this.bufferOff = 0;\n}\nmodule.exports = Cipher;\n\nCipher.prototype._init = function _init() {\n // Might be overrided\n};\n\nCipher.prototype.update = function update(data) {\n if (data.length === 0)\n return [];\n\n if (this.type === 'decrypt')\n return this._updateDecrypt(data);\n else\n return this._updateEncrypt(data);\n};\n\nCipher.prototype._buffer = function _buffer(data, off) {\n // Append data to buffer\n var min = Math.min(this.buffer.length - this.bufferOff, data.length - off);\n for (var i = 0; i < min; i++)\n this.buffer[this.bufferOff + i] = data[off + i];\n this.bufferOff += min;\n\n // Shift next\n return min;\n};\n\nCipher.prototype._flushBuffer = function _flushBuffer(out, off) {\n this._update(this.buffer, 0, out, off);\n this.bufferOff = 0;\n return this.blockSize;\n};\n\nCipher.prototype._updateEncrypt = function _updateEncrypt(data) {\n var inputOff = 0;\n var outputOff = 0;\n\n var count = ((this.bufferOff + data.length) / this.blockSize) | 0;\n var out = new Array(count * this.blockSize);\n\n if (this.bufferOff !== 0) {\n inputOff += this._buffer(data, inputOff);\n\n if (this.bufferOff === this.buffer.length)\n outputOff += this._flushBuffer(out, outputOff);\n }\n\n // Write blocks\n var max = data.length - ((data.length - inputOff) % this.blockSize);\n for (; inputOff < max; inputOff += this.blockSize) {\n this._update(data, inputOff, out, outputOff);\n outputOff += this.blockSize;\n }\n\n // Queue rest\n for (; inputOff < data.length; inputOff++, this.bufferOff++)\n this.buffer[this.bufferOff] = data[inputOff];\n\n return out;\n};\n\nCipher.prototype._updateDecrypt = function _updateDecrypt(data) {\n var inputOff = 0;\n var outputOff = 0;\n\n var count = Math.ceil((this.bufferOff + data.length) / this.blockSize) - 1;\n var out = new Array(count * this.blockSize);\n\n // TODO(indutny): optimize it, this is far from optimal\n for (; count > 0; count--) {\n inputOff += this._buffer(data, inputOff);\n outputOff += this._flushBuffer(out, outputOff);\n }\n\n // Buffer rest of the input\n inputOff += this._buffer(data, inputOff);\n\n return out;\n};\n\nCipher.prototype.final = function final(buffer) {\n var first;\n if (buffer)\n first = this.update(buffer);\n\n var last;\n if (this.type === 'encrypt')\n last = this._finalEncrypt();\n else\n last = this._finalDecrypt();\n\n if (first)\n return first.concat(last);\n else\n return last;\n};\n\nCipher.prototype._pad = function _pad(buffer, off) {\n if (off === 0)\n return false;\n\n while (off < buffer.length)\n buffer[off++] = 0;\n\n return true;\n};\n\nCipher.prototype._finalEncrypt = function _finalEncrypt() {\n if (!this._pad(this.buffer, this.bufferOff))\n return [];\n\n var out = new Array(this.blockSize);\n this._update(this.buffer, 0, out, 0);\n return out;\n};\n\nCipher.prototype._unpad = function _unpad(buffer) {\n return buffer;\n};\n\nCipher.prototype._finalDecrypt = function _finalDecrypt() {\n assert.equal(this.bufferOff, this.blockSize, 'Not enough data to decrypt');\n var out = new Array(this.blockSize);\n this._flushBuffer(out, 0);\n\n return this._unpad(out);\n};\n"]},"metadata":{},"sourceType":"script"} |