corrade-nucleus-nucleons – Blame information for rev
?pathlinks?
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 | (function (Math) { |
||
8 | // Shortcuts |
||
9 | var C = CryptoJS; |
||
10 | var C_lib = C.lib; |
||
11 | var WordArray = C_lib.WordArray; |
||
12 | var Hasher = C_lib.Hasher; |
||
13 | var C_x64 = C.x64; |
||
14 | var X64Word = C_x64.Word; |
||
15 | var C_algo = C.algo; |
||
16 | |||
17 | // Constants tables |
||
18 | var RHO_OFFSETS = []; |
||
19 | var PI_INDEXES = []; |
||
20 | var ROUND_CONSTANTS = []; |
||
21 | |||
22 | // Compute Constants |
||
23 | (function () { |
||
24 | // Compute rho offset constants |
||
25 | var x = 1, y = 0; |
||
26 | for (var t = 0; t < 24; t++) { |
||
27 | RHO_OFFSETS[x + 5 * y] = ((t + 1) * (t + 2) / 2) % 64; |
||
28 | |||
29 | var newX = y % 5; |
||
30 | var newY = (2 * x + 3 * y) % 5; |
||
31 | x = newX; |
||
32 | y = newY; |
||
33 | } |
||
34 | |||
35 | // Compute pi index constants |
||
36 | for (var x = 0; x < 5; x++) {> |
||
37 | < 5; x++) { for (var y = 0; y < 5; y++) {>> |
||
38 | < 5; x++) {< 5; y++) { PI_INDEXES[x + 5 * y] = y + ((2 * x + 3 * y) % 5) * 5;>> |
||
39 | < 5; x++) {< 5; y++) { }>> |
||
40 | < 5; x++) {< 5; y++) { }>> |
||
41 | |||
42 | < 5; x++) {< 5; y++) { // Compute round constants>> |
||
43 | < 5; x++) {< 5; y++) { var LFSR = 0x01;>> |
||
44 | < 5; x++) {< 5; y++) { for (var i = 0; i < 24; i++) {>>> |
||
45 | < 5; x++) {< 5; y++) {< 24; i++) { var roundConstantMsw = 0;>>> |
||
46 | < 5; x++) {< 5; y++) {< 24; i++) { var roundConstantLsw = 0;>>> |
||
47 | |||
48 | < 5; x++) {< 5; y++) {< 24; i++) { for (var j = 0; j < 7; j++) {>>>> |
||
49 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) { if (LFSR & 0x01) {>>>> |
||
50 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) { var bitPosition = (1 << j) - 1;><>>>>> |
||
51 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1; if (bitPosition < 32) {>><>>>>> |
||
52 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) { roundConstantLsw ^= 1 << bitPosition;><>>><>>>>> |
||
53 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition; } else /* if (bitPosition >= 32) */ {><>>><>>>>> |
||
54 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition; roundConstantMsw ^= 1 << (bitPosition - 32);><>><>>><>>>>> |
||
55 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32); }><>><>>><>>>>> |
||
56 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32); }><>><>>><>>>>> |
||
57 | |||
58 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32); // Compute next LFSR><>><>>><>>>>> |
||
59 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32); if (LFSR & 0x80) {><>><>>><>>>>> |
||
60 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32); // Primitive polynomial over GF(2): x^8 + x^6 + x^5 + x^4 + 1><>><>>><>>>>> |
||
61 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32); LFSR = (LFSR << 1) ^ 0x71;><>><>><>>><>>>>> |
||
62 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71; } else {><>><>><>>><>>>>> |
||
63 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71; LFSR <<= 1;=><=>><>><>><>>><>>>>> |
||
64 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1; }=><=>><>><>><>>><>>>>> |
||
65 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1; }=><=>><>><>><>>><>>>>> |
||
66 | |||
67 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1; ROUND_CONSTANTS[i] = X64Word.create(roundConstantMsw, roundConstantLsw);=><=>><>><>><>>><>>>>> |
||
68 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1; }=><=>><>><>><>>><>>>>> |
||
69 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1; }());=><=>><>><>><>>><>>>>> |
||
70 | |||
71 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1; // Reusable objects for temporary values=><=>><>><>><>>><>>>>> |
||
72 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1; var T = [];=><=>><>><>><>>><>>>>> |
||
73 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1; (function () {=><=>><>><>><>>><>>>>> |
||
74 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1; for (var i = 0; i < 25; i++) {>=><=>><>><>><>>><>>>>> |
||
75 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) { T[i] = X64Word.create();>=><=>><>><>><>>><>>>>> |
||
76 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) { }>=><=>><>><>><>>><>>>>> |
||
77 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) { }());>=><=>><>><>><>>><>>>>> |
||
78 | |||
79 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) { /**>=><=>><>><>><>>><>>>>> |
||
80 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) { * SHA-3 hash algorithm.>=><=>><>><>><>>><>>>>> |
||
81 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) { */>=><=>><>><>><>>><>>>>> |
||
82 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) { var SHA3 = C_algo.SHA3 = Hasher.extend({>=><=>><>><>><>>><>>>>> |
||
83 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) { /**>=><=>><>><>><>>><>>>>> |
||
84 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) { * Configuration options.>=><=>><>><>><>>><>>>>> |
||
85 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) { *>=><=>><>><>><>>><>>>>> |
||
86 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) { * @property {number} outputLength>=><=>><>><>><>>><>>>>> |
||
87 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) { * The desired number of bits in the output hash.>=><=>><>><>><>>><>>>>> |
||
88 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) { * Only values permitted are: 224, 256, 384, 512.>=><=>><>><>><>>><>>>>> |
||
89 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) { * Default: 512>=><=>><>><>><>>><>>>>> |
||
90 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) { */>=><=>><>><>><>>><>>>>> |
||
91 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) { cfg: Hasher.cfg.extend({>=><=>><>><>><>>><>>>>> |
||
92 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) { outputLength: 512>=><=>><>><>><>>><>>>>> |
||
93 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) { }),>=><=>><>><>><>>><>>>>> |
||
94 | |||
95 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) { _doReset: function () {>=><=>><>><>><>>><>>>>> |
||
96 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) { var state = this._state = []>=><=>><>><>><>>><>>>>> |
||
97 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) { for (var i = 0; i < 25; i++) {>>=><=>><>><>><>>><>>>>> |
||
98 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) { state[i] = new X64Word.init();>>=><=>><>><>><>>><>>>>> |
||
99 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) { }>>=><=>><>><>><>>><>>>>> |
||
100 | |||
101 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) { this.blockSize = (1600 - 2 * this.cfg.outputLength) / 32;>>=><=>><>><>><>>><>>>>> |
||
102 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) { },>>=><=>><>><>><>>><>>>>> |
||
103 | |||
104 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) { _doProcessBlock: function (M, offset) {>>=><=>><>><>><>>><>>>>> |
||
105 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) { // Shortcuts>>=><=>><>><>><>>><>>>>> |
||
106 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) { var state = this._state;>>=><=>><>><>><>>><>>>>> |
||
107 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) { var nBlockSizeLanes = this.blockSize / 2;>>=><=>><>><>><>>><>>>>> |
||
108 | |||
109 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) { // Absorb>>=><=>><>><>><>>><>>>>> |
||
110 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) { for (var i = 0; i < nBlockSizeLanes; i++) {>>>=><=>><>><>><>>><>>>>> |
||
111 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) { // Shortcuts>>>=><=>><>><>><>>><>>>>> |
||
112 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) { var M2i = M[offset + 2 * i];>>>=><=>><>><>><>>><>>>>> |
||
113 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) { var M2i1 = M[offset + 2 * i + 1];>>>=><=>><>><>><>>><>>>>> |
||
114 | |||
115 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) { // Swap endian>>>=><=>><>><>><>>><>>>>> |
||
116 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) { M2i = (>>>=><=>><>><>><>>><>>>>> |
||
117 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) { (((M2i << 8) | (M2i >>> 24)) & 0x00ff00ff) |><>>>>=><=>><>><>><>>><>>>>> |
||
118 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i > (((M2i << 24) | (M2i >>> 8)) & 0xff00ff00)><>><>>>>=><=>><>><>><>>><>>>>> |
||
119 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i > );><>><>>>>=><=>><>><>><>>><>>>>> |
||
120 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i > M2i1 = (><>><>>>>=><=>><>><>><>>><>>>>> |
||
121 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i > (((M2i1 << 8) | (M2i1 >>> 24)) & 0x00ff00ff) |><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
122 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 > (((M2i1 << 24) | (M2i1 >>> 8)) & 0xff00ff00)><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
123 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 > );><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
124 | |||
125 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 > // Absorb message into state><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
126 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 > var lane = state[i];><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
127 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 > lane.high ^= M2i1;><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
128 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 > lane.low ^= M2i;><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
129 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 > }><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
130 | |||
131 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 > // Rounds><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
132 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 > for (var round = 0; round < 24; round++) {>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
133 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) { // Theta>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
134 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) { for (var x = 0; x < 5; x++) {>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
135 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) { // Mix column lanes>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
136 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) { var tMsw = 0, tLsw = 0;>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
137 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) { for (var y = 0; y < 5; y++) {>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
138 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) { var lane = state[x + 5 * y];>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
139 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) { tMsw ^= lane.high;>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
140 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) { tLsw ^= lane.low;>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
141 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) { }>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
142 | |||
143 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) { // Temporary values>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
144 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) { var Tx = T[x];>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
145 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) { Tx.high = tMsw;>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
146 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) { Tx.low = tLsw;>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
147 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) { }>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
148 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) { for (var x = 0; x < 5; x++) {>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
149 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) { // Shortcuts>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
150 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) { var Tx4 = T[(x + 4) % 5];>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
151 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) { var Tx1 = T[(x + 1) % 5];>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
152 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) { var Tx1Msw = Tx1.high;>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
153 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) { var Tx1Lsw = Tx1.low;>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
154 | |||
155 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) { // Mix surrounding columns>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
156 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) { var tMsw = Tx4.high ^ ((Tx1Msw << 1) | (Tx1Lsw >>> 31));><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
157 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw > var tLsw = Tx4.low ^ ((Tx1Lsw << 1) | (Tx1Msw >>> 31));><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
158 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw > for (var y = 0; y < 5; y++) {>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
159 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) { var lane = state[x + 5 * y];>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
160 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) { lane.high ^= tMsw;>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
161 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) { lane.low ^= tLsw;>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
162 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) { }>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
163 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) { }>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
164 | |||
165 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) { // Rho Pi>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
166 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) { for (var laneIndex = 1; laneIndex < 25; laneIndex++) {>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
167 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) { // Shortcuts>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
168 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) { var lane = state[laneIndex];>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
169 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) { var laneMsw = lane.high;>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
170 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) { var laneLsw = lane.low;>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
171 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) { var rhoOffset = RHO_OFFSETS[laneIndex];>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
172 | |||
173 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) { // Rotate lanes>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
174 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) { if (rhoOffset < 32) {>>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
175 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) { var tMsw = (laneMsw << rhoOffset) | (laneLsw >>> (32 - rhoOffset));><>>>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
176 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw > var tLsw = (laneLsw << rhoOffset) | (laneMsw >>> (32 - rhoOffset));><>><>>>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
177 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw > } else /* if (rhoOffset >= 32) */ {><>><>>>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
178 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw > var tMsw = (laneLsw << (rhoOffset - 32)) | (laneMsw >>> (64 - rhoOffset));><>><>><>>>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
179 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw > var tLsw = (laneMsw << (rhoOffset - 32)) | (laneLsw >>> (64 - rhoOffset));><>><>><>><>>>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
180 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw > }><>><>><>><>>>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
181 | |||
182 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw > // Transpose lanes><>><>><>><>>>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
183 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw > var TPiLane = T[PI_INDEXES[laneIndex]];><>><>><>><>>>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
184 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw > TPiLane.high = tMsw;><>><>><>><>>>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
185 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw > TPiLane.low = tLsw;><>><>><>><>>>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
186 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw > }><>><>><>><>>>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
187 | |||
188 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw > // Rho pi at x = y = 0><>><>><>><>>>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
189 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw > var T0 = T[0];><>><>><>><>>>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
190 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw > var state0 = state[0];><>><>><>><>>>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
191 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw > T0.high = state0.high;><>><>><>><>>>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
192 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw > T0.low = state0.low;><>><>><>><>>>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
193 | |||
194 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw > // Chi><>><>><>><>>>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
195 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw > for (var x = 0; x < 5; x++) {>><>><>><>><>>>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
196 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) { for (var y = 0; y < 5; y++) {>>><>><>><>><>>>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
197 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) { // Shortcuts>>><>><>><>><>>>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
198 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) { var laneIndex = x + 5 * y;>>><>><>><>><>>>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
199 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) { var lane = state[laneIndex];>>><>><>><>><>>>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
200 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) { var TLane = T[laneIndex];>>><>><>><>><>>>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
201 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) { var Tx1Lane = T[((x + 1) % 5) + 5 * y];>>><>><>><>><>>>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
202 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) { var Tx2Lane = T[((x + 2) % 5) + 5 * y];>>><>><>><>><>>>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
203 | |||
204 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) { // Mix rows>>><>><>><>><>>>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
205 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) { lane.high = TLane.high ^ (~Tx1Lane.high & Tx2Lane.high);>>><>><>><>><>>>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
206 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) { lane.low = TLane.low ^ (~Tx1Lane.low & Tx2Lane.low);>>><>><>><>><>>>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
207 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) { }>>><>><>><>><>>>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
208 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) { }>>><>><>><>><>>>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
209 | |||
210 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) { // Iota>>><>><>><>><>>>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
211 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) { var lane = state[0];>>><>><>><>><>>>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
212 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) { var roundConstant = ROUND_CONSTANTS[round];>>><>><>><>><>>>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
213 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) { lane.high ^= roundConstant.high;>>><>><>><>><>>>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
214 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) { lane.low ^= roundConstant.low;;>>><>><>><>><>>>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
215 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) { }>>><>><>><>><>>>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
216 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) { },>>><>><>><>><>>>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
217 | |||
218 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) { _doFinalize: function () {>>><>><>><>><>>>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
219 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) { // Shortcuts>>><>><>><>><>>>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
220 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) { var data = this._data;>>><>><>><>><>>>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
221 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) { var dataWords = data.words;>>><>><>><>><>>>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
222 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) { var nBitsTotal = this._nDataBytes * 8;>>><>><>><>><>>>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
223 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) { var nBitsLeft = data.sigBytes * 8;>>><>><>><>><>>>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
224 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) { var blockSizeBits = this.blockSize * 32;>>><>><>><>><>>>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
225 | |||
226 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) { // Add padding>>><>><>><>><>>>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
227 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) { dataWords[nBitsLeft >>> 5] |= 0x1 << (24 - nBitsLeft % 32);><>>>><>><>><>><>>>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
228 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); dataWords[((Math.ceil((nBitsLeft + 1) / blockSizeBits) * blockSizeBits) >>> 5) - 1] |= 0x80;><>>>><>><>><>><>>>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
229 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); data.sigBytes = dataWords.length * 4;><>>>><>><>><>><>>>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
230 | |||
231 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); // Hash final blocks><>>>><>><>><>><>>>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
232 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); this._process();><>>>><>><>><>><>>>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
233 | |||
234 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); // Shortcuts><>>>><>><>><>><>>>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
235 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); var state = this._state;><>>>><>><>><>><>>>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
236 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); var outputLengthBytes = this.cfg.outputLength / 8;><>>>><>><>><>><>>>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
237 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); var outputLengthLanes = outputLengthBytes / 8;><>>>><>><>><>><>>>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
238 | |||
239 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); // Squeeze><>>>><>><>><>><>>>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
240 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); var hashWords = [];><>>>><>><>><>><>>>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
241 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); for (var i = 0; i < outputLengthLanes; i++) {><>>>><>><>><>><>>>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
242 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); // Shortcuts><>>>><>><>><>><>>>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
243 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); var lane = state[i];><>>>><>><>><>><>>>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
244 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); var laneMsw = lane.high;><>>>><>><>><>><>>>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
245 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); var laneLsw = lane.low;><>>>><>><>><>><>>>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
246 | |||
247 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); // Swap endian><>>>><>><>><>><>>>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
248 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); laneMsw = (><>>>><>><>><>><>>>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
249 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); (((laneMsw << 8) | (laneMsw >>> 24)) & 0x00ff00ff) |><>>>><>><>><>><>>>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
250 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); (((laneMsw << 24) | (laneMsw >>> 8)) & 0xff00ff00)><>>>><>><>><>><>>>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
251 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); );><>>>><>><>><>><>>>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
252 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); laneLsw = (><>>>><>><>><>><>>>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
253 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); (((laneLsw << 8) | (laneLsw >>> 24)) & 0x00ff00ff) |><>>>><>><>><>><>>>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
254 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); (((laneLsw << 24) | (laneLsw >>> 8)) & 0xff00ff00)><>>>><>><>><>><>>>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
255 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); );><>>>><>><>><>><>>>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
256 | |||
257 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); // Squeeze state to retrieve hash><>>>><>><>><>><>>>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
258 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); hashWords.push(laneLsw);><>>>><>><>><>><>>>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
259 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); hashWords.push(laneMsw);><>>>><>><>><>><>>>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
260 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); }><>>>><>><>><>><>>>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
261 | |||
262 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); // Return final computed hash><>>>><>><>><>><>>>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
263 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); return new WordArray.init(hashWords, outputLengthBytes);><>>>><>><>><>><>>>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
264 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); },><>>>><>><>><>><>>>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
265 | |||
266 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); clone: function () {><>>>><>><>><>><>>>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
267 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); var clone = Hasher.clone.call(this);><>>>><>><>><>><>>>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
268 | |||
269 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); var state = clone._state = this._state.slice(0);><>>>><>><>><>><>>>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
270 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); for (var i = 0; i < 25; i++) {><>>>><>><>><>><>>>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
271 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); state[i] = state[i].clone();><>>>><>><>><>><>>>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
272 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); }><>>>><>><>><>><>>>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
273 | |||
274 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); return clone;><>>>><>><>><>><>>>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
275 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); }><>>>><>><>><>><>>>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
276 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); });><>>>><>><>><>><>>>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
277 | |||
278 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); /**><>>>><>><>><>><>>>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
279 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); * Shortcut function to the hasher's object interface.><>>>><>><>><>><>>>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
280 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); *><>>>><>><>><>><>>>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
281 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); * @param {WordArray|string} message The message to hash.><>>>><>><>><>><>>>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
282 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); *><>>>><>><>><>><>>>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
283 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); * @return {WordArray} The hash.><>>>><>><>><>><>>>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
284 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); *><>>>><>><>><>><>>>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
285 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); * @static><>>>><>><>><>><>>>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
286 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); *><>>>><>><>><>><>>>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
287 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); * @example><>>>><>><>><>><>>>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
288 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); *><>>>><>><>><>><>>>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
289 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); * var hash = CryptoJS.SHA3('message');><>>>><>><>><>><>>>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
290 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); * var hash = CryptoJS.SHA3(wordArray);><>>>><>><>><>><>>>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
291 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); */><>>>><>><>><>><>>>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
292 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); C.SHA3 = Hasher._createHelper(SHA3);><>>>><>><>><>><>>>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
293 | |||
294 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); /**><>>>><>><>><>><>>>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
295 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); * Shortcut function to the HMAC's object interface.><>>>><>><>><>><>>>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
296 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); *><>>>><>><>><>><>>>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
297 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); * @param {WordArray|string} message The message to hash.><>>>><>><>><>><>>>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
298 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); * @param {WordArray|string} key The secret key.><>>>><>><>><>><>>>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
299 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); *><>>>><>><>><>><>>>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
300 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); * @return {WordArray} The HMAC.><>>>><>><>><>><>>>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
301 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); *><>>>><>><>><>><>>>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
302 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); * @static><>>>><>><>><>><>>>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
303 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); *><>>>><>><>><>><>>>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
304 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); * @example><>>>><>><>><>><>>>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
305 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); *><>>>><>><>><>><>>>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
306 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); * var hmac = CryptoJS.HmacSHA3(message, key);><>>>><>><>><>><>>>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
307 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); */><>>>><>><>><>><>>>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
308 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); C.HmacSHA3 = Hasher._createHmacHelper(SHA3);><>>>><>><>><>><>>>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |
||
309 | < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32);}(Math));><>>>><>><>><>><>>>>><>><>>>>>><>><>><>><>>>>=><=>><>><>><>>><>>>>> |