corrade-nucleus-nucleons – Blame information for rev 2

Subversion Repositories:
Rev:
Rev Author Line No. Line
2 office 1 /*
2 CryptoJS v3.1.2
3 code.google.com/p/crypto-js
4 (c) 2009-2013 by Jeff Mott. All rights reserved.
5 code.google.com/p/crypto-js/wiki/License
6 */
7 /**
8 * Counter block mode.
9 */
10 CryptoJS.mode.CTR = (function () {
11 var CTR = CryptoJS.lib.BlockCipherMode.extend();
12  
13 var Encryptor = CTR.Encryptor = CTR.extend({
14 processBlock: function (words, offset) {
15 // Shortcuts
16 var cipher = this._cipher
17 var blockSize = cipher.blockSize;
18 var iv = this._iv;
19 var counter = this._counter;
20  
21 // Generate keystream
22 if (iv) {
23 counter = this._counter = iv.slice(0);
24  
25 // Remove IV for subsequent blocks
26 this._iv = undefined;
27 }
28 var keystream = counter.slice(0);
29 cipher.encryptBlock(keystream, 0);
30  
31 // Increment counter
32 counter[blockSize - 1] = (counter[blockSize - 1] + 1) | 0
33  
34 // Encrypt
35 for (var i = 0; i < blockSize; i++) {
36 words[offset + i] ^= keystream[i];
37 }
38 }
39 });
40  
41 CTR.Decryptor = Encryptor;
42  
43 return CTR;
44 }());