| 167 | } |
| 168 | |
| 169 | function _block(X) { |
| 170 | var A1 = this._h[0], B1 = this._h[1], C1 = this._h[2], D1 = this._h[3], E1 = this._h[4], |
| 171 | A2 = this._h[0], B2 = this._h[1], C2 = this._h[2], D2 = this._h[3], E2 = this._h[4]; |
| 172 | |
| 173 | var j = 0, T; |
| 174 | |
| 175 | for ( ; j < 16; ++j ) { |
| 176 | T = _rol( A1 + _f0(B1,C1,D1) + X[_r1[j]] + _k1[j], _s1[j] ) + E1; |
| 177 | A1 = E1; E1 = D1; D1 = _rol(C1,10); C1 = B1; B1 = T; |
| 178 | T = _rol( A2 + _f4(B2,C2,D2) + X[_r2[j]] + _k2[j], _s2[j] ) + E2; |
| 179 | A2 = E2; E2 = D2; D2 = _rol(C2,10); C2 = B2; B2 = T; } |
| 180 | for ( ; j < 32; ++j ) { |
| 181 | T = _rol( A1 + _f1(B1,C1,D1) + X[_r1[j]] + _k1[j], _s1[j] ) + E1; |
| 182 | A1 = E1; E1 = D1; D1 = _rol(C1,10); C1 = B1; B1 = T; |
| 183 | T = _rol( A2 + _f3(B2,C2,D2) + X[_r2[j]] + _k2[j], _s2[j] ) + E2; |
| 184 | A2 = E2; E2 = D2; D2 = _rol(C2,10); C2 = B2; B2 = T; } |
| 185 | for ( ; j < 48; ++j ) { |
| 186 | T = _rol( A1 + _f2(B1,C1,D1) + X[_r1[j]] + _k1[j], _s1[j] ) + E1; |
| 187 | A1 = E1; E1 = D1; D1 = _rol(C1,10); C1 = B1; B1 = T; |
| 188 | T = _rol( A2 + _f2(B2,C2,D2) + X[_r2[j]] + _k2[j], _s2[j] ) + E2; |
| 189 | A2 = E2; E2 = D2; D2 = _rol(C2,10); C2 = B2; B2 = T; } |
| 190 | for ( ; j < 64; ++j ) { |
| 191 | T = _rol( A1 + _f3(B1,C1,D1) + X[_r1[j]] + _k1[j], _s1[j] ) + E1; |
| 192 | A1 = E1; E1 = D1; D1 = _rol(C1,10); C1 = B1; B1 = T; |
| 193 | T = _rol( A2 + _f1(B2,C2,D2) + X[_r2[j]] + _k2[j], _s2[j] ) + E2; |
| 194 | A2 = E2; E2 = D2; D2 = _rol(C2,10); C2 = B2; B2 = T; } |
| 195 | for ( ; j < 80; ++j ) { |
| 196 | T = _rol( A1 + _f4(B1,C1,D1) + X[_r1[j]] + _k1[j], _s1[j] ) + E1; |
| 197 | A1 = E1; E1 = D1; D1 = _rol(C1,10); C1 = B1; B1 = T; |
| 198 | T = _rol( A2 + _f0(B2,C2,D2) + X[_r2[j]] + _k2[j], _s2[j] ) + E2; |
| 199 | A2 = E2; E2 = D2; D2 = _rol(C2,10); C2 = B2; B2 = T; } |
| 200 | |
| 201 | T = this._h[1] + C1 + D2; |
| 202 | this._h[1] = this._h[2] + D1 + E2; |
| 203 | this._h[2] = this._h[3] + E1 + A2; |
| 204 | this._h[3] = this._h[4] + A1 + B2; |
| 205 | this._h[4] = this._h[0] + B1 + C2; |
| 206 | this._h[0] = T; |
| 207 | } |
| 208 | |
| 209 | })(); |