github.com/jincm/wesharechain@v0.0.0-20210122032815-1537409ce26a/app/lib/crypto1/ofb/ofb.js (about) 1 /*! 2 * Crypto-JS v1.1.0 3 * http://code.google.com/p/crypto-js/ 4 * Copyright (c) 2009, Jeff Mott. All rights reserved. 5 * http://code.google.com/p/crypto-js/wiki/License 6 */ 7 (function(){ 8 9 // Public API 10 Crypto.mode.OFB = { 11 encrypt: OFB, 12 decrypt: OFB 13 }; 14 15 // The mode function 16 function OFB(cipher, m, iv) { 17 18 var blockSizeInBytes = cipher._blocksize * 4, 19 keystream = iv.slice(0); 20 21 // Encrypt each byte 22 for (var i = 0; i < m.length; i++) { 23 24 // Generate keystream 25 if (i % blockSizeInBytes == 0) 26 cipher._encryptblock(keystream, 0); 27 28 // Encrypt byte 29 m[i] ^= keystream[i % blockSizeInBytes]; 30 31 } 32 33 } 34 35 })();