From d743aa39f3ddaf5e3f1d5f40e2a3ec9eb90cfc4d Mon Sep 17 00:00:00 2001 From: Pliable Pixels Date: Fri, 5 Aug 2016 14:05:24 -0400 Subject: #293 - logs now won't have password stored, and userProfile is cryptoJS ciphered Former-commit-id: 0db06364a3532cbbb31bd5fa33a488b232f725a5 --- www/lib/crypto-js/mode-ofb.js | 54 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 www/lib/crypto-js/mode-ofb.js (limited to 'www/lib/crypto-js/mode-ofb.js') diff --git a/www/lib/crypto-js/mode-ofb.js b/www/lib/crypto-js/mode-ofb.js new file mode 100644 index 00000000..c01314c2 --- /dev/null +++ b/www/lib/crypto-js/mode-ofb.js @@ -0,0 +1,54 @@ +;(function (root, factory, undef) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core"), require("./cipher-core")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core", "./cipher-core"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + /** + * Output Feedback block mode. + */ + CryptoJS.mode.OFB = (function () { + var OFB = CryptoJS.lib.BlockCipherMode.extend(); + + var Encryptor = OFB.Encryptor = OFB.extend({ + processBlock: function (words, offset) { + // Shortcuts + var cipher = this._cipher + var blockSize = cipher.blockSize; + var iv = this._iv; + var keystream = this._keystream; + + // Generate keystream + if (iv) { + keystream = this._keystream = iv.slice(0); + + // Remove IV for subsequent blocks + this._iv = undefined; + } + cipher.encryptBlock(keystream, 0); + + // Encrypt + for (var i = 0; i < blockSize; i++) { + words[offset + i] ^= keystream[i]; + } + } + }); + + OFB.Decryptor = Encryptor; + + return OFB; + }()); + + + return CryptoJS.mode.OFB; + +})); \ No newline at end of file -- cgit v1.2.3