corrade-nucleus-nucleons – Blame information for rev 20
?pathlinks?
Rev | Author | Line No. | Line |
---|---|---|---|
20 | office | 1 | (function(){ |
2 | |||
3 | var C = (typeof window === 'undefined') ? require('./Crypto').Crypto : window.Crypto; |
||
4 | |||
5 | // Shortcuts
|
||
6 | var util = C.util, |
||
7 | charenc = C.charenc, |
||
8 | UTF8 = charenc.UTF8, |
||
9 | Binary = charenc.Binary; |
||
10 | |||
11 | // Inner state
|
||
12 | var x = [], |
||
13 | c = [], |
||
14 | b; |
||
15 | |||
16 | var Rabbit = C.Rabbit = { |
||
17 | |||
18 | /**
|
||
19 | * Public API
|
||
20 | */ |
||
21 | |||
22 | encrypt: function (message, password) { |
||
23 | |||
24 | var |
||
25 | |||
26 | // Convert to bytes
|
||
27 | m = UTF8.stringToBytes(message), |
||
28 | |||
29 | // Generate random IV
|
||
30 | iv = util.randomBytes(8), |
||
31 | |||
32 | // Generate key
|
||
33 | k = password.constructor == String ? |
||
34 | // Derive key from passphrase
|
||
35 | C.PBKDF2(password, iv, 32, { asBytes: true }) : |
||
36 | // else, assume byte array representing cryptographic key
|
||
37 | password; |
||
38 | |||
39 | // Encrypt
|
||
40 | Rabbit._rabbit(m, k, util.bytesToWords(iv)); |
||
41 | |||
42 | // Return ciphertext
|
||
43 | return util.bytesToBase64(iv.concat(m)); |
||
44 | |||
45 | }, |
||
46 | |||
47 | decrypt: function (ciphertext, password) { |
||
48 | |||
49 | var |
||
50 | |||
51 | // Convert to bytes
|
||
52 | c = util.base64ToBytes(ciphertext), |
||
53 | |||
54 | // Separate IV and message
|
||
55 | iv = c.splice(0, 8), |
||
56 | |||
57 | // Generate key
|
||
58 | k = password.constructor == String ? |
||
59 | // Derive key from passphrase
|
||
60 | C.PBKDF2(password, iv, 32, { asBytes: true }) : |
||
61 | // else, assume byte array representing cryptographic key
|
||
62 | password; |
||
63 | |||
64 | // Decrypt
|
||
65 | Rabbit._rabbit(c, k, util.bytesToWords(iv)); |
||
66 | |||
67 | // Return plaintext
|
||
68 | return UTF8.bytesToString(c); |
||
69 | |||
70 | }, |
||
71 | |||
72 | |||
73 | /**
|
||
74 | * Internal methods
|
||
75 | */ |
||
76 | |||
77 | // Encryption/decryption scheme
|
||
78 | _rabbit: function (m, k, iv) { |
||
79 | |||
80 | Rabbit._keysetup(k); |
||
81 | if (iv) Rabbit._ivsetup(iv); |
||
82 | |||
83 | for (var s = [], i = 0; i < m.length; i++) { |
||
84 | |||
85 | if (i % 16 == 0) { |
||
86 | |||
87 | // Iterate the system
|
||
88 | Rabbit._nextstate(); |
||
89 | |||
90 | // Generate 16 bytes of pseudo-random data
|
||
91 | s[0] = x[0] ^ (x[5] >>> 16) ^ (x[3] << 16); |
||
92 | s[1] = x[2] ^ (x[7] >>> 16) ^ (x[5] << 16); |
||
93 | s[2] = x[4] ^ (x[1] >>> 16) ^ (x[7] << 16); |
||
94 | s[3] = x[6] ^ (x[3] >>> 16) ^ (x[1] << 16); |
||
95 | |||
96 | // Swap endian
|
||
97 | for (var j = 0; j < 4; j++) { |
||
98 | s[j] = ((s[j] << 8) | (s[j] >>> 24)) & 0x00FF00FF | |
||
99 | ((s[j] << 24) | (s[j] >>> 8)) & 0xFF00FF00; |
||
100 | } |
||
101 | |||
102 | // Convert words to bytes
|
||
103 | for (var b = 120; b >= 0; b -= 8) |
||
104 | s[b / 8] = (s[b >>> 5] >>> (24 - b % 32)) & 0xFF;
|
||
105 | |||
106 | }
|
||
107 | |||
108 | m[i] ^= s[i % 16];
|
||
109 | |||
110 | }
|
||
111 | |||
112 | },
|
||
113 | |||
114 | // Key setup scheme
|
||
115 | _keysetup: function (k) {
|
||
116 | |||
117 | // Generate initial state values
|
||
118 | x[0] = k[0];
|
||
119 | x[2] = k[1];
|
||
120 | x[4] = k[2];
|
||
121 | x[6] = k[3];
|
||
122 | x[1] = (k[3] << 16) | (k[2] >>> 16);
><> |
||
123 | << 16) | (k[2] >< 16) | (k[2] > x[3] = (k[0] << 16) | (k[3] >>> 16);
><>><> |
||
124 | << 16) | (k[2] >< 16) | (k[2] ><< 16) | (k[3] >< 16) | (k[3] > x[5] = (k[1] << 16) | (k[0] >>> 16);
><>><>><> |
||
125 | << 16) | (k[2] >< 16) | (k[2] ><< 16) | (k[3] >< 16) | (k[3] ><< 16) | (k[0] >< 16) | (k[0] > x[7] = (k[2] << 16) | (k[1] >>> 16);
><>><>><>><> |
||
126 | |||
127 | << 16) | (k[2] >< 16) | (k[2] ><< 16) | (k[3] >< 16) | (k[3] ><< 16) | (k[0] >< 16) | (k[0] ><< 16) | (k[1] >< 16) | (k[1] > // Generate initial counter values
><>><>><>><> |
||
128 | << 16) | (k[2] >< 16) | (k[2] ><< 16) | (k[3] >< 16) | (k[3] ><< 16) | (k[0] >< 16) | (k[0] ><< 16) | (k[1] >< 16) | (k[1] > c[0] = util.rotl(k[2], 16);
><>><>><>><> |
||
129 | << 16) | (k[2] >< 16) | (k[2] ><< 16) | (k[3] >< 16) | (k[3] ><< 16) | (k[0] >< 16) | (k[0] ><< 16) | (k[1] >< 16) | (k[1] > c[2] = util.rotl(k[3], 16);
><>><>><>><> |
||
130 | << 16) | (k[2] >< 16) | (k[2] ><< 16) | (k[3] >< 16) | (k[3] ><< 16) | (k[0] >< 16) | (k[0] ><< 16) | (k[1] >< 16) | (k[1] > c[4] = util.rotl(k[0], 16);
><>><>><>><> |
||
131 | << 16) | (k[2] >< 16) | (k[2] ><< 16) | (k[3] >< 16) | (k[3] ><< 16) | (k[0] >< 16) | (k[0] ><< 16) | (k[1] >< 16) | (k[1] > c[6] = util.rotl(k[1], 16);
><>><>><>><> |
||
132 | << 16) | (k[2] >< 16) | (k[2] ><< 16) | (k[3] >< 16) | (k[3] ><< 16) | (k[0] >< 16) | (k[0] ><< 16) | (k[1] >< 16) | (k[1] > c[1] = (k[0] & 0xFFFF0000) | (k[1] & 0xFFFF);
><>><>><>><> |
||
133 | << 16) | (k[2] >< 16) | (k[2] ><< 16) | (k[3] >< 16) | (k[3] ><< 16) | (k[0] >< 16) | (k[0] ><< 16) | (k[1] >< 16) | (k[1] > c[3] = (k[1] & 0xFFFF0000) | (k[2] & 0xFFFF);
><>><>><>><> |
||
134 | << 16) | (k[2] >< 16) | (k[2] ><< 16) | (k[3] >< 16) | (k[3] ><< 16) | (k[0] >< 16) | (k[0] ><< 16) | (k[1] >< 16) | (k[1] > c[5] = (k[2] & 0xFFFF0000) | (k[3] & 0xFFFF);
><>><>><>><> |
||
135 | << 16) | (k[2] >< 16) | (k[2] ><< 16) | (k[3] >< 16) | (k[3] ><< 16) | (k[0] >< 16) | (k[0] ><< 16) | (k[1] >< 16) | (k[1] > c[7] = (k[3] & 0xFFFF0000) | (k[0] & 0xFFFF);
><>><>><>><> |
||
136 | |||
137 | << 16) | (k[2] >< 16) | (k[2] ><< 16) | (k[3] >< 16) | (k[3] ><< 16) | (k[0] >< 16) | (k[0] ><< 16) | (k[1] >< 16) | (k[1] > // Clear carry bit
><>><>><>><> |
||
138 | << 16) | (k[2] >< 16) | (k[2] ><< 16) | (k[3] >< 16) | (k[3] ><< 16) | (k[0] >< 16) | (k[0] ><< 16) | (k[1] >< 16) | (k[1] > b = 0;
><>><>><>><> |
||
139 | |||
140 | << 16) | (k[2] >< 16) | (k[2] ><< 16) | (k[3] >< 16) | (k[3] ><< 16) | (k[0] >< 16) | (k[0] ><< 16) | (k[1] >< 16) | (k[1] > // Iterate the system four times
><>><>><>><> |
||
141 | << 16) | (k[2] >< 16) | (k[2] ><< 16) | (k[3] >< 16) | (k[3] ><< 16) | (k[0] >< 16) | (k[0] ><< 16) | (k[1] >< 16) | (k[1] > for (var i = 0; i < 4; i++) Rabbit._nextstate();
>><>><>><>><> |
||
142 | |||
143 | << 16) | (k[2] >< 16) | (k[2] ><< 16) | (k[3] >< 16) | (k[3] ><< 16) | (k[0] >< 16) | (k[0] ><< 16) | (k[1] >< 16) | (k[1] >< 4; i++) Rabbit._nextstate();
// Modify the counters
>><>><>><>><> |
||
144 | << 16) | (k[2] >< 16) | (k[2] ><< 16) | (k[3] >< 16) | (k[3] ><< 16) | (k[0] >< 16) | (k[0] ><< 16) | (k[1] >< 16) | (k[1] >< 4; i++) Rabbit._nextstate();
for (var i = 0; i < 8; i++) c[i] ^= x[(i + 4) & 7];
>>><>><>><>><> |
||
145 | |||
146 | << 16) | (k[2] >< 16) | (k[2] ><< 16) | (k[3] >< 16) | (k[3] ><< 16) | (k[0] >< 16) | (k[0] ><< 16) | (k[1] >< 16) | (k[1] >< 4; i++) Rabbit._nextstate();
< 8; i++) c[i] ^= x[(i + 4) & 7];
},
>>><>><>><>><> |
||
147 | |||
148 | << 16) | (k[2] >< 16) | (k[2] ><< 16) | (k[3] >< 16) | (k[3] ><< 16) | (k[0] >< 16) | (k[0] ><< 16) | (k[1] >< 16) | (k[1] >< 4; i++) Rabbit._nextstate();
< 8; i++) c[i] ^= x[(i + 4) & 7];
// IV setup scheme
>>><>><>><>><> |
||
149 | << 16) | (k[2] >< 16) | (k[2] ><< 16) | (k[3] >< 16) | (k[3] ><< 16) | (k[0] >< 16) | (k[0] ><< 16) | (k[1] >< 16) | (k[1] >< 4; i++) Rabbit._nextstate();
< 8; i++) c[i] ^= x[(i + 4) & 7];
_ivsetup: function (iv) {
>>><>><>><>><> |
||
150 | |||
151 | << 16) | (k[2] >< 16) | (k[2] ><< 16) | (k[3] >< 16) | (k[3] ><< 16) | (k[0] >< 16) | (k[0] ><< 16) | (k[1] >< 16) | (k[1] >< 4; i++) Rabbit._nextstate();
< 8; i++) c[i] ^= x[(i + 4) & 7];
// Generate four subvectors
>>><>><>><>><> |
||
152 | << 16) | (k[2] >< 16) | (k[2] ><< 16) | (k[3] >< 16) | (k[3] ><< 16) | (k[0] >< 16) | (k[0] ><< 16) | (k[1] >< 16) | (k[1] >< 4; i++) Rabbit._nextstate();
< 8; i++) c[i] ^= x[(i + 4) & 7];
var i0 = util.endian(iv[0]),
>>><>><>><>><> |
||
153 | << 16) | (k[2] >< 16) | (k[2] ><< 16) | (k[3] >< 16) | (k[3] ><< 16) | (k[0] >< 16) | (k[0] ><< 16) | (k[1] >< 16) | (k[1] >< 4; i++) Rabbit._nextstate();
< 8; i++) c[i] ^= x[(i + 4) & 7];
i2 = util.endian(iv[1]),
>>><>><>><>><> |
||
154 | << 16) | (k[2] >< 16) | (k[2] ><< 16) | (k[3] >< 16) | (k[3] ><< 16) | (k[0] >< 16) | (k[0] ><< 16) | (k[1] >< 16) | (k[1] >< 4; i++) Rabbit._nextstate();
< 8; i++) c[i] ^= x[(i + 4) & 7];
i1 = (i0 >>> 16) | (i2 & 0xFFFF0000),
>>><>><>><>><> |
||
155 | << 16) | (k[2] >< 16) | (k[2] ><< 16) | (k[3] >< 16) | (k[3] ><< 16) | (k[0] >< 16) | (k[0] ><< 16) | (k[1] >< 16) | (k[1] >< 4; i++) Rabbit._nextstate();
< 8; i++) c[i] ^= x[(i + 4) & 7];
i3 = (i2 << 16) | (i0 & 0x0000FFFF);
><>>>><>><>><>><> |
||
156 | |||
157 | << 16) | (k[2] >< 16) | (k[2] ><< 16) | (k[3] >< 16) | (k[3] ><< 16) | (k[0] >< 16) | (k[0] ><< 16) | (k[1] >< 16) | (k[1] >< 4; i++) Rabbit._nextstate();
< 8; i++) c[i] ^= x[(i + 4) & 7];
<< 16) | (i0 & 0x0000FFFF);
< 16) | (i0 & 0x0000FFFF);
// Modify counter values
><>>>><>><>><>><> |
||
158 | << 16) | (k[2] >< 16) | (k[2] ><< 16) | (k[3] >< 16) | (k[3] ><< 16) | (k[0] >< 16) | (k[0] ><< 16) | (k[1] >< 16) | (k[1] >< 4; i++) Rabbit._nextstate();
< 8; i++) c[i] ^= x[(i + 4) & 7];
<< 16) | (i0 & 0x0000FFFF);
< 16) | (i0 & 0x0000FFFF);
c[0] ^= i0;
><>>>><>><>><>><> |
||
159 | << 16) | (k[2] >< 16) | (k[2] ><< 16) | (k[3] >< 16) | (k[3] ><< 16) | (k[0] >< 16) | (k[0] ><< 16) | (k[1] >< 16) | (k[1] >< 4; i++) Rabbit._nextstate();
< 8; i++) c[i] ^= x[(i + 4) & 7];
<< 16) | (i0 & 0x0000FFFF);
< 16) | (i0 & 0x0000FFFF);
c[1] ^= i1;
><>>>><>><>><>><> |
||
160 | << 16) | (k[2] >< 16) | (k[2] ><< 16) | (k[3] >< 16) | (k[3] ><< 16) | (k[0] >< 16) | (k[0] ><< 16) | (k[1] >< 16) | (k[1] >< 4; i++) Rabbit._nextstate();
< 8; i++) c[i] ^= x[(i + 4) & 7];
<< 16) | (i0 & 0x0000FFFF);
< 16) | (i0 & 0x0000FFFF);
c[2] ^= i2;
><>>>><>><>><>><> |
||
161 | << 16) | (k[2] >< 16) | (k[2] ><< 16) | (k[3] >< 16) | (k[3] ><< 16) | (k[0] >< 16) | (k[0] ><< 16) | (k[1] >< 16) | (k[1] >< 4; i++) Rabbit._nextstate();
< 8; i++) c[i] ^= x[(i + 4) & 7];
<< 16) | (i0 & 0x0000FFFF);
< 16) | (i0 & 0x0000FFFF);
c[3] ^= i3;
><>>>><>><>><>><> |
||
162 | << 16) | (k[2] >< 16) | (k[2] ><< 16) | (k[3] >< 16) | (k[3] ><< 16) | (k[0] >< 16) | (k[0] ><< 16) | (k[1] >< 16) | (k[1] >< 4; i++) Rabbit._nextstate();
< 8; i++) c[i] ^= x[(i + 4) & 7];
<< 16) | (i0 & 0x0000FFFF);
< 16) | (i0 & 0x0000FFFF);
c[4] ^= i0;
><>>>><>><>><>><> |
||
163 | << 16) | (k[2] >< 16) | (k[2] ><< 16) | (k[3] >< 16) | (k[3] ><< 16) | (k[0] >< 16) | (k[0] ><< 16) | (k[1] >< 16) | (k[1] >< 4; i++) Rabbit._nextstate();
< 8; i++) c[i] ^= x[(i + 4) & 7];
<< 16) | (i0 & 0x0000FFFF);
< 16) | (i0 & 0x0000FFFF);
c[5] ^= i1;
><>>>><>><>><>><> |
||
164 | << 16) | (k[2] >< 16) | (k[2] ><< 16) | (k[3] >< 16) | (k[3] ><< 16) | (k[0] >< 16) | (k[0] ><< 16) | (k[1] >< 16) | (k[1] >< 4; i++) Rabbit._nextstate();
< 8; i++) c[i] ^= x[(i + 4) & 7];
<< 16) | (i0 & 0x0000FFFF);
< 16) | (i0 & 0x0000FFFF);
c[6] ^= i2;
><>>>><>><>><>><> |
||
165 | << 16) | (k[2] >< 16) | (k[2] ><< 16) | (k[3] >< 16) | (k[3] ><< 16) | (k[0] >< 16) | (k[0] ><< 16) | (k[1] >< 16) | (k[1] >< 4; i++) Rabbit._nextstate();
< 8; i++) c[i] ^= x[(i + 4) & 7];
<< 16) | (i0 & 0x0000FFFF);
< 16) | (i0 & 0x0000FFFF);
c[7] ^= i3;
><>>>><>><>><>><> |
||
166 | |||
167 | << 16) | (k[2] >< 16) | (k[2] ><< 16) | (k[3] >< 16) | (k[3] ><< 16) | (k[0] >< 16) | (k[0] ><< 16) | (k[1] >< 16) | (k[1] >< 4; i++) Rabbit._nextstate();
< 8; i++) c[i] ^= x[(i + 4) & 7];
<< 16) | (i0 & 0x0000FFFF);
< 16) | (i0 & 0x0000FFFF);
// Iterate the system four times
><>>>><>><>><>><> |
||
168 | << 16) | (k[2] >< 16) | (k[2] ><< 16) | (k[3] >< 16) | (k[3] ><< 16) | (k[0] >< 16) | (k[0] ><< 16) | (k[1] >< 16) | (k[1] >< 4; i++) Rabbit._nextstate();
< 8; i++) c[i] ^= x[(i + 4) & 7];
<< 16) | (i0 & 0x0000FFFF);
< 16) | (i0 & 0x0000FFFF);
for (var i = 0; i < 4; i++) Rabbit._nextstate();
>><>>>><>><>><>><> |
||
169 | |||
170 | << 16) | (k[2] >< 16) | (k[2] ><< 16) | (k[3] >< 16) | (k[3] ><< 16) | (k[0] >< 16) | (k[0] ><< 16) | (k[1] >< 16) | (k[1] >< 4; i++) Rabbit._nextstate();
< 8; i++) c[i] ^= x[(i + 4) & 7];
<< 16) | (i0 & 0x0000FFFF);
< 16) | (i0 & 0x0000FFFF);
< 4; i++) Rabbit._nextstate();
},
>><>>>><>><>><>><> |
||
171 | |||
172 | << 16) | (k[2] >< 16) | (k[2] ><< 16) | (k[3] >< 16) | (k[3] ><< 16) | (k[0] >< 16) | (k[0] ><< 16) | (k[1] >< 16) | (k[1] >< 4; i++) Rabbit._nextstate();
< 8; i++) c[i] ^= x[(i + 4) & 7];
<< 16) | (i0 & 0x0000FFFF);
< 16) | (i0 & 0x0000FFFF);
< 4; i++) Rabbit._nextstate();
// Next-state function
>><>>>><>><>><>><> |
||
173 | << 16) | (k[2] >< 16) | (k[2] ><< 16) | (k[3] >< 16) | (k[3] ><< 16) | (k[0] >< 16) | (k[0] ><< 16) | (k[1] >< 16) | (k[1] >< 4; i++) Rabbit._nextstate();
< 8; i++) c[i] ^= x[(i + 4) & 7];
<< 16) | (i0 & 0x0000FFFF);
< 16) | (i0 & 0x0000FFFF);
< 4; i++) Rabbit._nextstate();
_nextstate: function () {
>><>>>><>><>><>><> |
||
174 | |||
175 | << 16) | (k[2] >< 16) | (k[2] ><< 16) | (k[3] >< 16) | (k[3] ><< 16) | (k[0] >< 16) | (k[0] ><< 16) | (k[1] >< 16) | (k[1] >< 4; i++) Rabbit._nextstate();
< 8; i++) c[i] ^= x[(i + 4) & 7];
<< 16) | (i0 & 0x0000FFFF);
< 16) | (i0 & 0x0000FFFF);
< 4; i++) Rabbit._nextstate();
// Save old counter values
>><>>>><>><>><>><> |
||
176 | << 16) | (k[2] >< 16) | (k[2] ><< 16) | (k[3] >< 16) | (k[3] ><< 16) | (k[0] >< 16) | (k[0] ><< 16) | (k[1] >< 16) | (k[1] >< 4; i++) Rabbit._nextstate();
< 8; i++) c[i] ^= x[(i + 4) & 7];
<< 16) | (i0 & 0x0000FFFF);
< 16) | (i0 & 0x0000FFFF);
< 4; i++) Rabbit._nextstate();
for (var c_old = [], i = 0; i < 8; i++) c_old[i] = c[i];
>>><>>>><>><>><>><> |
||
177 | |||
178 | << 16) | (k[2] >< 16) | (k[2] ><< 16) | (k[3] >< 16) | (k[3] ><< 16) | (k[0] >< 16) | (k[0] ><< 16) | (k[1] >< 16) | (k[1] >< 4; i++) Rabbit._nextstate();
< 8; i++) c[i] ^= x[(i + 4) & 7];
<< 16) | (i0 & 0x0000FFFF);
< 16) | (i0 & 0x0000FFFF);
< 4; i++) Rabbit._nextstate();
< 8; i++) c_old[i] = c[i];
// Calculate new counter values
>>><>>>><>><>><>><> |
||
179 | << 16) | (k[2] >< 16) | (k[2] ><< 16) | (k[3] >< 16) | (k[3] ><< 16) | (k[0] >< 16) | (k[0] ><< 16) | (k[1] >< 16) | (k[1] >< 4; i++) Rabbit._nextstate();
< 8; i++) c[i] ^= x[(i + 4) & 7];
<< 16) | (i0 & 0x0000FFFF);
< 16) | (i0 & 0x0000FFFF);
< 4; i++) Rabbit._nextstate();
< 8; i++) c_old[i] = c[i];
c[0] = (c[0] + 0x4D34D34D + b) >>> 0;
>>><>>>><>><>><>><> |
||
180 | << 16) | (k[2] >< 16) | (k[2] ><< 16) | (k[3] >< 16) | (k[3] ><< 16) | (k[0] >< 16) | (k[0] ><< 16) | (k[1] >< 16) | (k[1] >< 4; i++) Rabbit._nextstate();
< 8; i++) c[i] ^= x[(i + 4) & 7];
<< 16) | (i0 & 0x0000FFFF);
< 16) | (i0 & 0x0000FFFF);
< 4; i++) Rabbit._nextstate();
< 8; i++) c_old[i] = c[i];
c[1] = (c[1] + 0xD34D34D3 + ((c[0] >>> 0) < (c_old[0] >>> 0) ? 1 : 0)) >>> 0;
>>>><>>>><>><>><>><> |
||
181 | << 16) | (k[2] >< 16) | (k[2] ><< 16) | (k[3] >< 16) | (k[3] ><< 16) | (k[0] >< 16) | (k[0] ><< 16) | (k[1] >< 16) | (k[1] >< 4; i++) Rabbit._nextstate();
< 8; i++) c[i] ^= x[(i + 4) & 7];
<< 16) | (i0 & 0x0000FFFF);
< 16) | (i0 & 0x0000FFFF);
< 4; i++) Rabbit._nextstate();
< 8; i++) c_old[i] = c[i];
< (c_old[0] > c[2] = (c[2] + 0x34D34D34 + ((c[1] >>> 0) < (c_old[1] >>> 0) ? 1 : 0)) >>> 0;
>>>>><>>>><>><>><>><> |
||
182 | << 16) | (k[2] >< 16) | (k[2] ><< 16) | (k[3] >< 16) | (k[3] ><< 16) | (k[0] >< 16) | (k[0] ><< 16) | (k[1] >< 16) | (k[1] >< 4; i++) Rabbit._nextstate();
< 8; i++) c[i] ^= x[(i + 4) & 7];
<< 16) | (i0 & 0x0000FFFF);
< 16) | (i0 & 0x0000FFFF);
< 4; i++) Rabbit._nextstate();
< 8; i++) c_old[i] = c[i];
< (c_old[0] >< (c_old[1] > c[3] = (c[3] + 0x4D34D34D + ((c[2] >>> 0) < (c_old[2] >>> 0) ? 1 : 0)) >>> 0;
>>>>>><>>>><>><>><>><> |
||
183 | << 16) | (k[2] >< 16) | (k[2] ><< 16) | (k[3] >< 16) | (k[3] ><< 16) | (k[0] >< 16) | (k[0] ><< 16) | (k[1] >< 16) | (k[1] >< 4; i++) Rabbit._nextstate();
< 8; i++) c[i] ^= x[(i + 4) & 7];
<< 16) | (i0 & 0x0000FFFF);
< 16) | (i0 & 0x0000FFFF);
< 4; i++) Rabbit._nextstate();
< 8; i++) c_old[i] = c[i];
< (c_old[0] >< (c_old[1] >< (c_old[2] > c[4] = (c[4] + 0xD34D34D3 + ((c[3] >>> 0) < (c_old[3] >>> 0) ? 1 : 0)) >>> 0;
>>>>>>><>>>><>><>><>><> |
||
184 | << 16) | (k[2] >< 16) | (k[2] ><< 16) | (k[3] >< 16) | (k[3] ><< 16) | (k[0] >< 16) | (k[0] ><< 16) | (k[1] >< 16) | (k[1] >< 4; i++) Rabbit._nextstate();
< 8; i++) c[i] ^= x[(i + 4) & 7];
<< 16) | (i0 & 0x0000FFFF);
< 16) | (i0 & 0x0000FFFF);
< 4; i++) Rabbit._nextstate();
< 8; i++) c_old[i] = c[i];
< (c_old[0] >< (c_old[1] >< (c_old[2] >< (c_old[3] > c[5] = (c[5] + 0x34D34D34 + ((c[4] >>> 0) < (c_old[4] >>> 0) ? 1 : 0)) >>> 0;
>>>>>>>><>>>><>><>><>><> |
||
185 | << 16) | (k[2] >< 16) | (k[2] ><< 16) | (k[3] >< 16) | (k[3] ><< 16) | (k[0] >< 16) | (k[0] ><< 16) | (k[1] >< 16) | (k[1] >< 4; i++) Rabbit._nextstate();
< 8; i++) c[i] ^= x[(i + 4) & 7];
<< 16) | (i0 & 0x0000FFFF);
< 16) | (i0 & 0x0000FFFF);
< 4; i++) Rabbit._nextstate();
< 8; i++) c_old[i] = c[i];
< (c_old[0] >< (c_old[1] >< (c_old[2] >< (c_old[3] >< (c_old[4] > c[6] = (c[6] + 0x4D34D34D + ((c[5] >>> 0) < (c_old[5] >>> 0) ? 1 : 0)) >>> 0;
>>>>>>>>><>>>><>><>><>><> |
||
186 | << 16) | (k[2] >< 16) | (k[2] ><< 16) | (k[3] >< 16) | (k[3] ><< 16) | (k[0] >< 16) | (k[0] ><< 16) | (k[1] >< 16) | (k[1] >< 4; i++) Rabbit._nextstate();
< 8; i++) c[i] ^= x[(i + 4) & 7];
<< 16) | (i0 & 0x0000FFFF);
< 16) | (i0 & 0x0000FFFF);
< 4; i++) Rabbit._nextstate();
< 8; i++) c_old[i] = c[i];
< (c_old[0] >< (c_old[1] >< (c_old[2] >< (c_old[3] >< (c_old[4] >< (c_old[5] > c[7] = (c[7] + 0xD34D34D3 + ((c[6] >>> 0) < (c_old[6] >>> 0) ? 1 : 0)) >>> 0;
>>>>>>>>>><>>>><>><>><>><> |
||
187 | << 16) | (k[2] >< 16) | (k[2] ><< 16) | (k[3] >< 16) | (k[3] ><< 16) | (k[0] >< 16) | (k[0] ><< 16) | (k[1] >< 16) | (k[1] >< 4; i++) Rabbit._nextstate();
< 8; i++) c[i] ^= x[(i + 4) & 7];
<< 16) | (i0 & 0x0000FFFF);
< 16) | (i0 & 0x0000FFFF);
< 4; i++) Rabbit._nextstate();
< 8; i++) c_old[i] = c[i];
< (c_old[0] >< (c_old[1] >< (c_old[2] >< (c_old[3] >< (c_old[4] >< (c_old[5] >< (c_old[6] > b = (c[7] >>> 0) < (c_old[7] >>> 0) ? 1 : 0;
>>>>>>>>>>><>>>><>><>><>><> |
||
188 | |||
189 | << 16) | (k[2] >< 16) | (k[2] ><< 16) | (k[3] >< 16) | (k[3] ><< 16) | (k[0] >< 16) | (k[0] ><< 16) | (k[1] >< 16) | (k[1] >< 4; i++) Rabbit._nextstate();
< 8; i++) c[i] ^= x[(i + 4) & 7];
<< 16) | (i0 & 0x0000FFFF);
< 16) | (i0 & 0x0000FFFF);
< 4; i++) Rabbit._nextstate();
< 8; i++) c_old[i] = c[i];
< (c_old[0] >< (c_old[1] >< (c_old[2] >< (c_old[3] >< (c_old[4] >< (c_old[5] >< (c_old[6] >< (c_old[7] > // Calculate the g-values
>>>>>>>>>>><>>>><>><>><>><> |
||
190 | << 16) | (k[2] >< 16) | (k[2] ><< 16) | (k[3] >< 16) | (k[3] ><< 16) | (k[0] >< 16) | (k[0] ><< 16) | (k[1] >< 16) | (k[1] >< 4; i++) Rabbit._nextstate();
< 8; i++) c[i] ^= x[(i + 4) & 7];
<< 16) | (i0 & 0x0000FFFF);
< 16) | (i0 & 0x0000FFFF);
< 4; i++) Rabbit._nextstate();
< 8; i++) c_old[i] = c[i];
< (c_old[0] >< (c_old[1] >< (c_old[2] >< (c_old[3] >< (c_old[4] >< (c_old[5] >< (c_old[6] >< (c_old[7] > for (var g = [], i = 0; i < 8; i++) {
>>>>>>>>>>>><>>>><>><>><>><> |
||
191 | |||
192 | << 16) | (k[2] >< 16) | (k[2] ><< 16) | (k[3] >< 16) | (k[3] ><< 16) | (k[0] >< 16) | (k[0] ><< 16) | (k[1] >< 16) | (k[1] >< 4; i++) Rabbit._nextstate();
< 8; i++) c[i] ^= x[(i + 4) & 7];
<< 16) | (i0 & 0x0000FFFF);
< 16) | (i0 & 0x0000FFFF);
< 4; i++) Rabbit._nextstate();
< 8; i++) c_old[i] = c[i];
< (c_old[0] >< (c_old[1] >< (c_old[2] >< (c_old[3] >< (c_old[4] >< (c_old[5] >< (c_old[6] >< (c_old[7] >< 8; i++) {
var gx = (x[i] + c[i]) >>> 0;
>>>>>>>>>>>><>>>><>><>><>><> |
||
193 | |||
194 | << 16) | (k[2] >< 16) | (k[2] ><< 16) | (k[3] >< 16) | (k[3] ><< 16) | (k[0] >< 16) | (k[0] ><< 16) | (k[1] >< 16) | (k[1] >< 4; i++) Rabbit._nextstate();
< 8; i++) c[i] ^= x[(i + 4) & 7];
<< 16) | (i0 & 0x0000FFFF);
< 16) | (i0 & 0x0000FFFF);
< 4; i++) Rabbit._nextstate();
< 8; i++) c_old[i] = c[i];
< (c_old[0] >< (c_old[1] >< (c_old[2] >< (c_old[3] >< (c_old[4] >< (c_old[5] >< (c_old[6] >< (c_old[7] >< 8; i++) {
// Construct high and low argument for squaring
>>>>>>>>>>>><>>>><>><>><>><> |
||
195 | << 16) | (k[2] >< 16) | (k[2] ><< 16) | (k[3] >< 16) | (k[3] ><< 16) | (k[0] >< 16) | (k[0] ><< 16) | (k[1] >< 16) | (k[1] >< 4; i++) Rabbit._nextstate();
< 8; i++) c[i] ^= x[(i + 4) & 7];
<< 16) | (i0 & 0x0000FFFF);
< 16) | (i0 & 0x0000FFFF);
< 4; i++) Rabbit._nextstate();
< 8; i++) c_old[i] = c[i];
< (c_old[0] >< (c_old[1] >< (c_old[2] >< (c_old[3] >< (c_old[4] >< (c_old[5] >< (c_old[6] >< (c_old[7] >< 8; i++) {
var ga = gx & 0xFFFF,
>>>>>>>>>>>><>>>><>><>><>><> |
||
196 | << 16) | (k[2] >< 16) | (k[2] ><< 16) | (k[3] >< 16) | (k[3] ><< 16) | (k[0] >< 16) | (k[0] ><< 16) | (k[1] >< 16) | (k[1] >< 4; i++) Rabbit._nextstate();
< 8; i++) c[i] ^= x[(i + 4) & 7];
<< 16) | (i0 & 0x0000FFFF);
< 16) | (i0 & 0x0000FFFF);
< 4; i++) Rabbit._nextstate();
< 8; i++) c_old[i] = c[i];
< (c_old[0] >< (c_old[1] >< (c_old[2] >< (c_old[3] >< (c_old[4] >< (c_old[5] >< (c_old[6] >< (c_old[7] >< 8; i++) {
gb = gx >>> 16;
>>>>>>>>>>>><>>>><>><>><>><> |
||
197 | |||
198 | << 16) | (k[2] >< 16) | (k[2] ><< 16) | (k[3] >< 16) | (k[3] ><< 16) | (k[0] >< 16) | (k[0] ><< 16) | (k[1] >< 16) | (k[1] >< 4; i++) Rabbit._nextstate();
< 8; i++) c[i] ^= x[(i + 4) & 7];
<< 16) | (i0 & 0x0000FFFF);
< 16) | (i0 & 0x0000FFFF);
< 4; i++) Rabbit._nextstate();
< 8; i++) c_old[i] = c[i];
< (c_old[0] >< (c_old[1] >< (c_old[2] >< (c_old[3] >< (c_old[4] >< (c_old[5] >< (c_old[6] >< (c_old[7] >< 8; i++) {
// Calculate high and low result of squaring
>>>>>>>>>>>><>>>><>><>><>><> |
||
199 | << 16) | (k[2] >< 16) | (k[2] ><< 16) | (k[3] >< 16) | (k[3] ><< 16) | (k[0] >< 16) | (k[0] ><< 16) | (k[1] >< 16) | (k[1] >< 4; i++) Rabbit._nextstate();
< 8; i++) c[i] ^= x[(i + 4) & 7];
<< 16) | (i0 & 0x0000FFFF);
< 16) | (i0 & 0x0000FFFF);
< 4; i++) Rabbit._nextstate();
< 8; i++) c_old[i] = c[i];
< (c_old[0] >< (c_old[1] >< (c_old[2] >< (c_old[3] >< (c_old[4] >< (c_old[5] >< (c_old[6] >< (c_old[7] >< 8; i++) {
var gh = ((((ga * ga) >>> 17) + ga * gb) >>> 15) + gb * gb,
>>>>>>>>>>>><>>>><>><>><>><> |
||
200 | << 16) | (k[2] >< 16) | (k[2] ><< 16) | (k[3] >< 16) | (k[3] ><< 16) | (k[0] >< 16) | (k[0] ><< 16) | (k[1] >< 16) | (k[1] >< 4; i++) Rabbit._nextstate();
< 8; i++) c[i] ^= x[(i + 4) & 7];
<< 16) | (i0 & 0x0000FFFF);
< 16) | (i0 & 0x0000FFFF);
< 4; i++) Rabbit._nextstate();
< 8; i++) c_old[i] = c[i];
< (c_old[0] >< (c_old[1] >< (c_old[2] >< (c_old[3] >< (c_old[4] >< (c_old[5] >< (c_old[6] >< (c_old[7] >< 8; i++) {
gl = (((gx & 0xFFFF0000) * gx) >>> 0) + (((gx & 0x0000FFFF) * gx) >>> 0) >>> 0;
>>>>>>>>>>>><>>>><>><>><>><> |
||
201 | |||
202 | << 16) | (k[2] >< 16) | (k[2] ><< 16) | (k[3] >< 16) | (k[3] ><< 16) | (k[0] >< 16) | (k[0] ><< 16) | (k[1] >< 16) | (k[1] >< 4; i++) Rabbit._nextstate();
< 8; i++) c[i] ^= x[(i + 4) & 7];
<< 16) | (i0 & 0x0000FFFF);
< 16) | (i0 & 0x0000FFFF);
< 4; i++) Rabbit._nextstate();
< 8; i++) c_old[i] = c[i];
< (c_old[0] >< (c_old[1] >< (c_old[2] >< (c_old[3] >< (c_old[4] >< (c_old[5] >< (c_old[6] >< (c_old[7] >< 8; i++) {
// High XOR low
>>>>>>>>>>>><>>>><>><>><>><> |
||
203 | << 16) | (k[2] >< 16) | (k[2] ><< 16) | (k[3] >< 16) | (k[3] ><< 16) | (k[0] >< 16) | (k[0] ><< 16) | (k[1] >< 16) | (k[1] >< 4; i++) Rabbit._nextstate();
< 8; i++) c[i] ^= x[(i + 4) & 7];
<< 16) | (i0 & 0x0000FFFF);
< 16) | (i0 & 0x0000FFFF);
< 4; i++) Rabbit._nextstate();
< 8; i++) c_old[i] = c[i];
< (c_old[0] >< (c_old[1] >< (c_old[2] >< (c_old[3] >< (c_old[4] >< (c_old[5] >< (c_old[6] >< (c_old[7] >< 8; i++) {
g[i] = gh ^ gl;
>>>>>>>>>>>><>>>><>><>><>><> |
||
204 | |||
205 | << 16) | (k[2] >< 16) | (k[2] ><< 16) | (k[3] >< 16) | (k[3] ><< 16) | (k[0] >< 16) | (k[0] ><< 16) | (k[1] >< 16) | (k[1] >< 4; i++) Rabbit._nextstate();
< 8; i++) c[i] ^= x[(i + 4) & 7];
<< 16) | (i0 & 0x0000FFFF);
< 16) | (i0 & 0x0000FFFF);
< 4; i++) Rabbit._nextstate();
< 8; i++) c_old[i] = c[i];
< (c_old[0] >< (c_old[1] >< (c_old[2] >< (c_old[3] >< (c_old[4] >< (c_old[5] >< (c_old[6] >< (c_old[7] >< 8; i++) {
}
>>>>>>>>>>>><>>>><>><>><>><> |
||
206 | |||
207 | << 16) | (k[2] >< 16) | (k[2] ><< 16) | (k[3] >< 16) | (k[3] ><< 16) | (k[0] >< 16) | (k[0] ><< 16) | (k[1] >< 16) | (k[1] >< 4; i++) Rabbit._nextstate();
< 8; i++) c[i] ^= x[(i + 4) & 7];
<< 16) | (i0 & 0x0000FFFF);
< 16) | (i0 & 0x0000FFFF);
< 4; i++) Rabbit._nextstate();
< 8; i++) c_old[i] = c[i];
< (c_old[0] >< (c_old[1] >< (c_old[2] >< (c_old[3] >< (c_old[4] >< (c_old[5] >< (c_old[6] >< (c_old[7] >< 8; i++) {
// Calculate new state values
>>>>>>>>>>>><>>>><>><>><>><> |
||
208 | << 16) | (k[2] >< 16) | (k[2] ><< 16) | (k[3] >< 16) | (k[3] ><< 16) | (k[0] >< 16) | (k[0] ><< 16) | (k[1] >< 16) | (k[1] >< 4; i++) Rabbit._nextstate();
< 8; i++) c[i] ^= x[(i + 4) & 7];
<< 16) | (i0 & 0x0000FFFF);
< 16) | (i0 & 0x0000FFFF);
< 4; i++) Rabbit._nextstate();
< 8; i++) c_old[i] = c[i];
< (c_old[0] >< (c_old[1] >< (c_old[2] >< (c_old[3] >< (c_old[4] >< (c_old[5] >< (c_old[6] >< (c_old[7] >< 8; i++) {
x[0] = g[0] + ((g[7] << 16) | (g[7] >>> 16)) + ((g[6] << 16) | (g[6] >>> 16));
><>><>>>>>>>>>>>>><>>>><>><>><>><> |
||
209 | << 16) | (k[2] >< 16) | (k[2] ><< 16) | (k[3] >< 16) | (k[3] ><< 16) | (k[0] >< 16) | (k[0] ><< 16) | (k[1] >< 16) | (k[1] >< 4; i++) Rabbit._nextstate();
< 8; i++) c[i] ^= x[(i + 4) & 7];
<< 16) | (i0 & 0x0000FFFF);
< 16) | (i0 & 0x0000FFFF);
< 4; i++) Rabbit._nextstate();
< 8; i++) c_old[i] = c[i];
< (c_old[0] >< (c_old[1] >< (c_old[2] >< (c_old[3] >< (c_old[4] >< (c_old[5] >< (c_old[6] >< (c_old[7] >< 8; i++) {
<< 16) | (g[7] >< 16) | (g[7] ><< 16) | (g[6] >< 16) | (g[6] > x[1] = g[1] + ((g[0] << 8) | (g[0] >>> 24)) + g[7];
><>><>><>>>>>>>>>>>>><>>>><>><>><>><> |
||
210 | << 16) | (k[2] >< 16) | (k[2] ><< 16) | (k[3] >< 16) | (k[3] ><< 16) | (k[0] >< 16) | (k[0] ><< 16) | (k[1] >< 16) | (k[1] >< 4; i++) Rabbit._nextstate();
< 8; i++) c[i] ^= x[(i + 4) & 7];
<< 16) | (i0 & 0x0000FFFF);
< 16) | (i0 & 0x0000FFFF);
< 4; i++) Rabbit._nextstate();
< 8; i++) c_old[i] = c[i];
< (c_old[0] >< (c_old[1] >< (c_old[2] >< (c_old[3] >< (c_old[4] >< (c_old[5] >< (c_old[6] >< (c_old[7] >< 8; i++) {
<< 16) | (g[7] >< 16) | (g[7] ><< 16) | (g[6] >< 16) | (g[6] ><< 8) | (g[0] >< 8) | (g[0] > x[2] = g[2] + ((g[1] << 16) | (g[1] >>> 16)) + ((g[0] << 16) | (g[0] >>> 16));
><>><>><>><>><>>>>>>>>>>>>><>>>><>><>><>><> |
||
211 | << 16) | (k[2] >< 16) | (k[2] ><< 16) | (k[3] >< 16) | (k[3] ><< 16) | (k[0] >< 16) | (k[0] ><< 16) | (k[1] >< 16) | (k[1] >< 4; i++) Rabbit._nextstate();
< 8; i++) c[i] ^= x[(i + 4) & 7];
<< 16) | (i0 & 0x0000FFFF);
< 16) | (i0 & 0x0000FFFF);
< 4; i++) Rabbit._nextstate();
< 8; i++) c_old[i] = c[i];
< (c_old[0] >< (c_old[1] >< (c_old[2] >< (c_old[3] >< (c_old[4] >< (c_old[5] >< (c_old[6] >< (c_old[7] >< 8; i++) {
<< 16) | (g[7] >< 16) | (g[7] ><< 16) | (g[6] >< 16) | (g[6] ><< 8) | (g[0] >< 8) | (g[0] ><< 16) | (g[1] >< 16) | (g[1] ><< 16) | (g[0] >< 16) | (g[0] > x[3] = g[3] + ((g[2] << 8) | (g[2] >>> 24)) + g[1];
><>><>><>><>><>><>>>>>>>>>>>>><>>>><>><>><>><> |
||
212 | << 16) | (k[2] >< 16) | (k[2] ><< 16) | (k[3] >< 16) | (k[3] ><< 16) | (k[0] >< 16) | (k[0] ><< 16) | (k[1] >< 16) | (k[1] >< 4; i++) Rabbit._nextstate();
< 8; i++) c[i] ^= x[(i + 4) & 7];
<< 16) | (i0 & 0x0000FFFF);
< 16) | (i0 & 0x0000FFFF);
< 4; i++) Rabbit._nextstate();
< 8; i++) c_old[i] = c[i];
< (c_old[0] >< (c_old[1] >< (c_old[2] >< (c_old[3] >< (c_old[4] >< (c_old[5] >< (c_old[6] >< (c_old[7] >< 8; i++) {
<< 16) | (g[7] >< 16) | (g[7] ><< 16) | (g[6] >< 16) | (g[6] ><< 8) | (g[0] >< 8) | (g[0] ><< 16) | (g[1] >< 16) | (g[1] ><< 16) | (g[0] >< 16) | (g[0] ><< 8) | (g[2] >< 8) | (g[2] > x[4] = g[4] + ((g[3] << 16) | (g[3] >>> 16)) + ((g[2] << 16) | (g[2] >>> 16));
><>><>><>><>><>><>><>><>>>>>>>>>>>>><>>>><>><>><>><> |
||
213 | << 16) | (k[2] >< 16) | (k[2] ><< 16) | (k[3] >< 16) | (k[3] ><< 16) | (k[0] >< 16) | (k[0] ><< 16) | (k[1] >< 16) | (k[1] >< 4; i++) Rabbit._nextstate();
< 8; i++) c[i] ^= x[(i + 4) & 7];
<< 16) | (i0 & 0x0000FFFF);
< 16) | (i0 & 0x0000FFFF);
< 4; i++) Rabbit._nextstate();
< 8; i++) c_old[i] = c[i];
< (c_old[0] >< (c_old[1] >< (c_old[2] >< (c_old[3] >< (c_old[4] >< (c_old[5] >< (c_old[6] >< (c_old[7] >< 8; i++) {
<< 16) | (g[7] >< 16) | (g[7] ><< 16) | (g[6] >< 16) | (g[6] ><< 8) | (g[0] >< 8) | (g[0] ><< 16) | (g[1] >< 16) | (g[1] ><< 16) | (g[0] >< 16) | (g[0] ><< 8) | (g[2] >< 8) | (g[2] ><< 16) | (g[3] >< 16) | (g[3] ><< 16) | (g[2] >< 16) | (g[2] > x[5] = g[5] + ((g[4] << 8) | (g[4] >>> 24)) + g[3];
><>><>><>><>><>><>><>><>><>>>>>>>>>>>>><>>>><>><>><>><> |
||
214 | << 16) | (k[2] >< 16) | (k[2] ><< 16) | (k[3] >< 16) | (k[3] ><< 16) | (k[0] >< 16) | (k[0] ><< 16) | (k[1] >< 16) | (k[1] >< 4; i++) Rabbit._nextstate();
< 8; i++) c[i] ^= x[(i + 4) & 7];
<< 16) | (i0 & 0x0000FFFF);
< 16) | (i0 & 0x0000FFFF);
< 4; i++) Rabbit._nextstate();
< 8; i++) c_old[i] = c[i];
< (c_old[0] >< (c_old[1] >< (c_old[2] >< (c_old[3] >< (c_old[4] >< (c_old[5] >< (c_old[6] >< (c_old[7] >< 8; i++) {
<< 16) | (g[7] >< 16) | (g[7] ><< 16) | (g[6] >< 16) | (g[6] ><< 8) | (g[0] >< 8) | (g[0] ><< 16) | (g[1] >< 16) | (g[1] ><< 16) | (g[0] >< 16) | (g[0] ><< 8) | (g[2] >< 8) | (g[2] ><< 16) | (g[3] >< 16) | (g[3] ><< 16) | (g[2] >< 16) | (g[2] ><< 8) | (g[4] >< 8) | (g[4] > x[6] = g[6] + ((g[5] << 16) | (g[5] >>> 16)) + ((g[4] << 16) | (g[4] >>> 16));
><>><>><>><>><>><>><>><>><>><>><>>>>>>>>>>>>><>>>><>><>><>><> |
||
215 | << 16) | (k[2] >< 16) | (k[2] ><< 16) | (k[3] >< 16) | (k[3] ><< 16) | (k[0] >< 16) | (k[0] ><< 16) | (k[1] >< 16) | (k[1] >< 4; i++) Rabbit._nextstate();
< 8; i++) c[i] ^= x[(i + 4) & 7];
<< 16) | (i0 & 0x0000FFFF);
< 16) | (i0 & 0x0000FFFF);
< 4; i++) Rabbit._nextstate();
< 8; i++) c_old[i] = c[i];
< (c_old[0] >< (c_old[1] >< (c_old[2] >< (c_old[3] >< (c_old[4] >< (c_old[5] >< (c_old[6] >< (c_old[7] >< 8; i++) {
<< 16) | (g[7] >< 16) | (g[7] ><< 16) | (g[6] >< 16) | (g[6] ><< 8) | (g[0] >< 8) | (g[0] ><< 16) | (g[1] >< 16) | (g[1] ><< 16) | (g[0] >< 16) | (g[0] ><< 8) | (g[2] >< 8) | (g[2] ><< 16) | (g[3] >< 16) | (g[3] ><< 16) | (g[2] >< 16) | (g[2] ><< 8) | (g[4] >< 8) | (g[4] ><< 16) | (g[5] >< 16) | (g[5] ><< 16) | (g[4] >< 16) | (g[4] > x[7] = g[7] + ((g[6] << 8) | (g[6] >>> 24)) + g[5];
><>><>><>><>><>><>><>><>><>><>><>><>>>>>>>>>>>>><>>>><>><>><>><> |
||
216 | |||
217 | << 16) | (k[2] >< 16) | (k[2] ><< 16) | (k[3] >< 16) | (k[3] ><< 16) | (k[0] >< 16) | (k[0] ><< 16) | (k[1] >< 16) | (k[1] >< 4; i++) Rabbit._nextstate();
< 8; i++) c[i] ^= x[(i + 4) & 7];
<< 16) | (i0 & 0x0000FFFF);
< 16) | (i0 & 0x0000FFFF);
< 4; i++) Rabbit._nextstate();
< 8; i++) c_old[i] = c[i];
< (c_old[0] >< (c_old[1] >< (c_old[2] >< (c_old[3] >< (c_old[4] >< (c_old[5] >< (c_old[6] >< (c_old[7] >< 8; i++) {
<< 16) | (g[7] >< 16) | (g[7] ><< 16) | (g[6] >< 16) | (g[6] ><< 8) | (g[0] >< 8) | (g[0] ><< 16) | (g[1] >< 16) | (g[1] ><< 16) | (g[0] >< 16) | (g[0] ><< 8) | (g[2] >< 8) | (g[2] ><< 16) | (g[3] >< 16) | (g[3] ><< 16) | (g[2] >< 16) | (g[2] ><< 8) | (g[4] >< 8) | (g[4] ><< 16) | (g[5] >< 16) | (g[5] ><< 16) | (g[4] >< 16) | (g[4] ><< 8) | (g[6] >< 8) | (g[6] > }
><>><>><>><>><>><>><>><>><>><>><>><>>>>>>>>>>>>><>>>><>><>><>><> |
||
218 | |||
219 | << 16) | (k[2] >< 16) | (k[2] ><< 16) | (k[3] >< 16) | (k[3] ><< 16) | (k[0] >< 16) | (k[0] ><< 16) | (k[1] >< 16) | (k[1] >< 4; i++) Rabbit._nextstate();
< 8; i++) c[i] ^= x[(i + 4) & 7];
<< 16) | (i0 & 0x0000FFFF);
< 16) | (i0 & 0x0000FFFF);
< 4; i++) Rabbit._nextstate();
< 8; i++) c_old[i] = c[i];
< (c_old[0] >< (c_old[1] >< (c_old[2] >< (c_old[3] >< (c_old[4] >< (c_old[5] >< (c_old[6] >< (c_old[7] >< 8; i++) {
<< 16) | (g[7] >< 16) | (g[7] ><< 16) | (g[6] >< 16) | (g[6] ><< 8) | (g[0] >< 8) | (g[0] ><< 16) | (g[1] >< 16) | (g[1] ><< 16) | (g[0] >< 16) | (g[0] ><< 8) | (g[2] >< 8) | (g[2] ><< 16) | (g[3] >< 16) | (g[3] ><< 16) | (g[2] >< 16) | (g[2] ><< 8) | (g[4] >< 8) | (g[4] ><< 16) | (g[5] >< 16) | (g[5] ><< 16) | (g[4] >< 16) | (g[4] ><< 8) | (g[6] >< 8) | (g[6] >};
><>><>><>><>><>><>><>><>><>><>><>><>>>>>>>>>>>>><>>>><>><>><>><> |
||
220 | |||
221 | << 16) | (k[2] >< 16) | (k[2] ><< 16) | (k[3] >< 16) | (k[3] ><< 16) | (k[0] >< 16) | (k[0] ><< 16) | (k[1] >< 16) | (k[1] >< 4; i++) Rabbit._nextstate();
< 8; i++) c[i] ^= x[(i + 4) & 7];
<< 16) | (i0 & 0x0000FFFF);
< 16) | (i0 & 0x0000FFFF);
< 4; i++) Rabbit._nextstate();
< 8; i++) c_old[i] = c[i];
< (c_old[0] >< (c_old[1] >< (c_old[2] >< (c_old[3] >< (c_old[4] >< (c_old[5] >< (c_old[6] >< (c_old[7] >< 8; i++) {
<< 16) | (g[7] >< 16) | (g[7] ><< 16) | (g[6] >< 16) | (g[6] ><< 8) | (g[0] >< 8) | (g[0] ><< 16) | (g[1] >< 16) | (g[1] ><< 16) | (g[0] >< 16) | (g[0] ><< 8) | (g[2] >< 8) | (g[2] ><< 16) | (g[3] >< 16) | (g[3] ><< 16) | (g[2] >< 16) | (g[2] ><< 8) | (g[4] >< 8) | (g[4] ><< 16) | (g[5] >< 16) | (g[5] ><< 16) | (g[4] >< 16) | (g[4] ><< 8) | (g[6] >< 8) | (g[6] >})();
><>><>><>><>><>><>><>><>><>><>><>><>>>>>>>>>>>>><>>>><>><>><>><> |