diff options
Diffstat (limited to 'src/microhttpd/sha256.c')
-rw-r--r-- | src/microhttpd/sha256.c | 192 |
1 files changed, 120 insertions, 72 deletions
diff --git a/src/microhttpd/sha256.c b/src/microhttpd/sha256.c index df6a1aa3..6f6700dc 100644 --- a/src/microhttpd/sha256.c +++ b/src/microhttpd/sha256.c | |||
@@ -45,14 +45,14 @@ MHD_SHA256_init (void *ctx_) | |||
45 | /* First thirty-two bits of the fractional parts of the square | 45 | /* First thirty-two bits of the fractional parts of the square |
46 | * roots of the first eight prime numbers: 2, 3, 5, 7, 11, 13, | 46 | * roots of the first eight prime numbers: 2, 3, 5, 7, 11, 13, |
47 | * 17, 19." */ | 47 | * 17, 19." */ |
48 | ctx->H[0] = 0x6a09e667UL; | 48 | ctx->H[0] = UINT32_C (0x6a09e667); |
49 | ctx->H[1] = 0xbb67ae85UL; | 49 | ctx->H[1] = UINT32_C (0xbb67ae85); |
50 | ctx->H[2] = 0x3c6ef372UL; | 50 | ctx->H[2] = UINT32_C (0x3c6ef372); |
51 | ctx->H[3] = 0xa54ff53aUL; | 51 | ctx->H[3] = UINT32_C (0xa54ff53a); |
52 | ctx->H[4] = 0x510e527fUL; | 52 | ctx->H[4] = UINT32_C (0x510e527f); |
53 | ctx->H[5] = 0x9b05688cUL; | 53 | ctx->H[5] = UINT32_C (0x9b05688c); |
54 | ctx->H[6] = 0x1f83d9abUL; | 54 | ctx->H[6] = UINT32_C (0x1f83d9ab); |
55 | ctx->H[7] = 0x5be0cd19UL; | 55 | ctx->H[7] = UINT32_C (0x5be0cd19); |
56 | 56 | ||
57 | /* Initialise number of bytes. */ | 57 | /* Initialise number of bytes. */ |
58 | ctx->count = 0; | 58 | ctx->count = 0; |
@@ -144,37 +144,37 @@ sha256_transform (uint32_t H[_SHA256_DIGEST_LENGTH], | |||
144 | stored in array of W elements. */ | 144 | stored in array of W elements. */ |
145 | /* Note: instead of using K constants as array, all K values are specified | 145 | /* Note: instead of using K constants as array, all K values are specified |
146 | individually for each step, see FIPS PUB 180-4 paragraph 4.2.2 for K values. */ | 146 | individually for each step, see FIPS PUB 180-4 paragraph 4.2.2 for K values. */ |
147 | SHA2STEP32 (a, b, c, d, e, f, g, h, 0x428a2f98UL, W[0] = \ | 147 | SHA2STEP32 (a, b, c, d, e, f, g, h, UINT32_C (0x428a2f98), W[0] = \ |
148 | GET_W_FROM_DATA (data, 0)); | 148 | GET_W_FROM_DATA (data, 0)); |
149 | SHA2STEP32 (h, a, b, c, d, e, f, g, 0x71374491UL, W[1] = \ | 149 | SHA2STEP32 (h, a, b, c, d, e, f, g, UINT32_C (0x71374491), W[1] = \ |
150 | GET_W_FROM_DATA (data, 1)); | 150 | GET_W_FROM_DATA (data, 1)); |
151 | SHA2STEP32 (g, h, a, b, c, d, e, f, 0xb5c0fbcfUL, W[2] = \ | 151 | SHA2STEP32 (g, h, a, b, c, d, e, f, UINT32_C (0xb5c0fbcf), W[2] = \ |
152 | GET_W_FROM_DATA (data, 2)); | 152 | GET_W_FROM_DATA (data, 2)); |
153 | SHA2STEP32 (f, g, h, a, b, c, d, e, 0xe9b5dba5UL, W[3] = \ | 153 | SHA2STEP32 (f, g, h, a, b, c, d, e, UINT32_C (0xe9b5dba5), W[3] = \ |
154 | GET_W_FROM_DATA (data, 3)); | 154 | GET_W_FROM_DATA (data, 3)); |
155 | SHA2STEP32 (e, f, g, h, a, b, c, d, 0x3956c25bUL, W[4] = \ | 155 | SHA2STEP32 (e, f, g, h, a, b, c, d, UINT32_C (0x3956c25b), W[4] = \ |
156 | GET_W_FROM_DATA (data, 4)); | 156 | GET_W_FROM_DATA (data, 4)); |
157 | SHA2STEP32 (d, e, f, g, h, a, b, c, 0x59f111f1UL, W[5] = \ | 157 | SHA2STEP32 (d, e, f, g, h, a, b, c, UINT32_C (0x59f111f1), W[5] = \ |
158 | GET_W_FROM_DATA (data, 5)); | 158 | GET_W_FROM_DATA (data, 5)); |
159 | SHA2STEP32 (c, d, e, f, g, h, a, b, 0x923f82a4UL, W[6] = \ | 159 | SHA2STEP32 (c, d, e, f, g, h, a, b, UINT32_C (0x923f82a4), W[6] = \ |
160 | GET_W_FROM_DATA (data, 6)); | 160 | GET_W_FROM_DATA (data, 6)); |
161 | SHA2STEP32 (b, c, d, e, f, g, h, a, 0xab1c5ed5UL, W[7] = \ | 161 | SHA2STEP32 (b, c, d, e, f, g, h, a, UINT32_C (0xab1c5ed5), W[7] = \ |
162 | GET_W_FROM_DATA (data, 7)); | 162 | GET_W_FROM_DATA (data, 7)); |
163 | SHA2STEP32 (a, b, c, d, e, f, g, h, 0xd807aa98UL, W[8] = \ | 163 | SHA2STEP32 (a, b, c, d, e, f, g, h, UINT32_C (0xd807aa98), W[8] = \ |
164 | GET_W_FROM_DATA (data, 8)); | 164 | GET_W_FROM_DATA (data, 8)); |
165 | SHA2STEP32 (h, a, b, c, d, e, f, g, 0x12835b01UL, W[9] = \ | 165 | SHA2STEP32 (h, a, b, c, d, e, f, g, UINT32_C (0x12835b01), W[9] = \ |
166 | GET_W_FROM_DATA (data, 9)); | 166 | GET_W_FROM_DATA (data, 9)); |
167 | SHA2STEP32 (g, h, a, b, c, d, e, f, 0x243185beUL, W[10] = \ | 167 | SHA2STEP32 (g, h, a, b, c, d, e, f, UINT32_C (0x243185be), W[10] = \ |
168 | GET_W_FROM_DATA (data, 10)); | 168 | GET_W_FROM_DATA (data, 10)); |
169 | SHA2STEP32 (f, g, h, a, b, c, d, e, 0x550c7dc3UL, W[11] = \ | 169 | SHA2STEP32 (f, g, h, a, b, c, d, e, UINT32_C (0x550c7dc3), W[11] = \ |
170 | GET_W_FROM_DATA (data, 11)); | 170 | GET_W_FROM_DATA (data, 11)); |
171 | SHA2STEP32 (e, f, g, h, a, b, c, d, 0x72be5d74UL, W[12] = \ | 171 | SHA2STEP32 (e, f, g, h, a, b, c, d, UINT32_C (0x72be5d74), W[12] = \ |
172 | GET_W_FROM_DATA (data, 12)); | 172 | GET_W_FROM_DATA (data, 12)); |
173 | SHA2STEP32 (d, e, f, g, h, a, b, c, 0x80deb1feUL, W[13] = \ | 173 | SHA2STEP32 (d, e, f, g, h, a, b, c, UINT32_C (0x80deb1fe), W[13] = \ |
174 | GET_W_FROM_DATA (data, 13)); | 174 | GET_W_FROM_DATA (data, 13)); |
175 | SHA2STEP32 (c, d, e, f, g, h, a, b, 0x9bdc06a7UL, W[14] = \ | 175 | SHA2STEP32 (c, d, e, f, g, h, a, b, UINT32_C (0x9bdc06a7), W[14] = \ |
176 | GET_W_FROM_DATA (data, 14)); | 176 | GET_W_FROM_DATA (data, 14)); |
177 | SHA2STEP32 (b, c, d, e, f, g, h, a, 0xc19bf174UL, W[15] = \ | 177 | SHA2STEP32 (b, c, d, e, f, g, h, a, UINT32_C (0xc19bf174), W[15] = \ |
178 | GET_W_FROM_DATA (data, 15)); | 178 | GET_W_FROM_DATA (data, 15)); |
179 | 179 | ||
180 | /* 'W' generation and assignment for 16 <= t <= 63. | 180 | /* 'W' generation and assignment for 16 <= t <= 63. |
@@ -190,54 +190,102 @@ sha256_transform (uint32_t H[_SHA256_DIGEST_LENGTH], | |||
190 | stored back in cyclic buffer. */ | 190 | stored back in cyclic buffer. */ |
191 | /* Note: instead of using K constants as array, all K values are specified | 191 | /* Note: instead of using K constants as array, all K values are specified |
192 | individually for each step, see FIPS PUB 180-4 paragraph 4.2.2 for K values. */ | 192 | individually for each step, see FIPS PUB 180-4 paragraph 4.2.2 for K values. */ |
193 | SHA2STEP32 (a, b, c, d, e, f, g, h, 0xe49b69c1UL, W[16 & 0xf] = Wgen (W,16)); | 193 | SHA2STEP32 (a, b, c, d, e, f, g, h, UINT32_C (0xe49b69c1), W[16 & 0xf] = \ |
194 | SHA2STEP32 (h, a, b, c, d, e, f, g, 0xefbe4786UL, W[17 & 0xf] = Wgen (W,17)); | 194 | Wgen (W,16)); |
195 | SHA2STEP32 (g, h, a, b, c, d, e, f, 0x0fc19dc6UL, W[18 & 0xf] = Wgen (W,18)); | 195 | SHA2STEP32 (h, a, b, c, d, e, f, g, UINT32_C (0xefbe4786), W[17 & 0xf] = \ |
196 | SHA2STEP32 (f, g, h, a, b, c, d, e, 0x240ca1ccUL, W[19 & 0xf] = Wgen (W,19)); | 196 | Wgen (W,17)); |
197 | SHA2STEP32 (e, f, g, h, a, b, c, d, 0x2de92c6fUL, W[20 & 0xf] = Wgen (W,20)); | 197 | SHA2STEP32 (g, h, a, b, c, d, e, f, UINT32_C (0x0fc19dc6), W[18 & 0xf] = \ |
198 | SHA2STEP32 (d, e, f, g, h, a, b, c, 0x4a7484aaUL, W[21 & 0xf] = Wgen (W,21)); | 198 | Wgen (W,18)); |
199 | SHA2STEP32 (c, d, e, f, g, h, a, b, 0x5cb0a9dcUL, W[22 & 0xf] = Wgen (W,22)); | 199 | SHA2STEP32 (f, g, h, a, b, c, d, e, UINT32_C (0x240ca1cc), W[19 & 0xf] = \ |
200 | SHA2STEP32 (b, c, d, e, f, g, h, a, 0x76f988daUL, W[23 & 0xf] = Wgen (W,23)); | 200 | Wgen (W,19)); |
201 | SHA2STEP32 (a, b, c, d, e, f, g, h, 0x983e5152UL, W[24 & 0xf] = Wgen (W,24)); | 201 | SHA2STEP32 (e, f, g, h, a, b, c, d, UINT32_C (0x2de92c6f), W[20 & 0xf] = \ |
202 | SHA2STEP32 (h, a, b, c, d, e, f, g, 0xa831c66dUL, W[25 & 0xf] = Wgen (W,25)); | 202 | Wgen (W,20)); |
203 | SHA2STEP32 (g, h, a, b, c, d, e, f, 0xb00327c8UL, W[26 & 0xf] = Wgen (W,26)); | 203 | SHA2STEP32 (d, e, f, g, h, a, b, c, UINT32_C (0x4a7484aa), W[21 & 0xf] = \ |
204 | SHA2STEP32 (f, g, h, a, b, c, d, e, 0xbf597fc7UL, W[27 & 0xf] = Wgen (W,27)); | 204 | Wgen (W,21)); |
205 | SHA2STEP32 (e, f, g, h, a, b, c, d, 0xc6e00bf3UL, W[28 & 0xf] = Wgen (W,28)); | 205 | SHA2STEP32 (c, d, e, f, g, h, a, b, UINT32_C (0x5cb0a9dc), W[22 & 0xf] = \ |
206 | SHA2STEP32 (d, e, f, g, h, a, b, c, 0xd5a79147UL, W[29 & 0xf] = Wgen (W,29)); | 206 | Wgen (W,22)); |
207 | SHA2STEP32 (c, d, e, f, g, h, a, b, 0x06ca6351UL, W[30 & 0xf] = Wgen (W,30)); | 207 | SHA2STEP32 (b, c, d, e, f, g, h, a, UINT32_C (0x76f988da), W[23 & 0xf] = \ |
208 | SHA2STEP32 (b, c, d, e, f, g, h, a, 0x14292967UL, W[31 & 0xf] = Wgen (W,31)); | 208 | Wgen (W,23)); |
209 | SHA2STEP32 (a, b, c, d, e, f, g, h, 0x27b70a85UL, W[32 & 0xf] = Wgen (W,32)); | 209 | SHA2STEP32 (a, b, c, d, e, f, g, h, UINT32_C (0x983e5152), W[24 & 0xf] = \ |
210 | SHA2STEP32 (h, a, b, c, d, e, f, g, 0x2e1b2138UL, W[33 & 0xf] = Wgen (W,33)); | 210 | Wgen (W,24)); |
211 | SHA2STEP32 (g, h, a, b, c, d, e, f, 0x4d2c6dfcUL, W[34 & 0xf] = Wgen (W,34)); | 211 | SHA2STEP32 (h, a, b, c, d, e, f, g, UINT32_C (0xa831c66d), W[25 & 0xf] = \ |
212 | SHA2STEP32 (f, g, h, a, b, c, d, e, 0x53380d13UL, W[35 & 0xf] = Wgen (W,35)); | 212 | Wgen (W,25)); |
213 | SHA2STEP32 (e, f, g, h, a, b, c, d, 0x650a7354UL, W[36 & 0xf] = Wgen (W,36)); | 213 | SHA2STEP32 (g, h, a, b, c, d, e, f, UINT32_C (0xb00327c8), W[26 & 0xf] = \ |
214 | SHA2STEP32 (d, e, f, g, h, a, b, c, 0x766a0abbUL, W[37 & 0xf] = Wgen (W,37)); | 214 | Wgen (W,26)); |
215 | SHA2STEP32 (c, d, e, f, g, h, a, b, 0x81c2c92eUL, W[38 & 0xf] = Wgen (W,38)); | 215 | SHA2STEP32 (f, g, h, a, b, c, d, e, UINT32_C (0xbf597fc7), W[27 & 0xf] = \ |
216 | SHA2STEP32 (b, c, d, e, f, g, h, a, 0x92722c85UL, W[39 & 0xf] = Wgen (W,39)); | 216 | Wgen (W,27)); |
217 | SHA2STEP32 (a, b, c, d, e, f, g, h, 0xa2bfe8a1UL, W[40 & 0xf] = Wgen (W,40)); | 217 | SHA2STEP32 (e, f, g, h, a, b, c, d, UINT32_C (0xc6e00bf3), W[28 & 0xf] = \ |
218 | SHA2STEP32 (h, a, b, c, d, e, f, g, 0xa81a664bUL, W[41 & 0xf] = Wgen (W,41)); | 218 | Wgen (W,28)); |
219 | SHA2STEP32 (g, h, a, b, c, d, e, f, 0xc24b8b70UL, W[42 & 0xf] = Wgen (W,42)); | 219 | SHA2STEP32 (d, e, f, g, h, a, b, c, UINT32_C (0xd5a79147), W[29 & 0xf] = \ |
220 | SHA2STEP32 (f, g, h, a, b, c, d, e, 0xc76c51a3UL, W[43 & 0xf] = Wgen (W,43)); | 220 | Wgen (W,29)); |
221 | SHA2STEP32 (e, f, g, h, a, b, c, d, 0xd192e819UL, W[44 & 0xf] = Wgen (W,44)); | 221 | SHA2STEP32 (c, d, e, f, g, h, a, b, UINT32_C (0x06ca6351), W[30 & 0xf] = \ |
222 | SHA2STEP32 (d, e, f, g, h, a, b, c, 0xd6990624UL, W[45 & 0xf] = Wgen (W,45)); | 222 | Wgen (W,30)); |
223 | SHA2STEP32 (c, d, e, f, g, h, a, b, 0xf40e3585UL, W[46 & 0xf] = Wgen (W,46)); | 223 | SHA2STEP32 (b, c, d, e, f, g, h, a, UINT32_C (0x14292967), W[31 & 0xf] = \ |
224 | SHA2STEP32 (b, c, d, e, f, g, h, a, 0x106aa070UL, W[47 & 0xf] = Wgen (W,47)); | 224 | Wgen (W,31)); |
225 | SHA2STEP32 (a, b, c, d, e, f, g, h, 0x19a4c116UL, W[48 & 0xf] = Wgen (W,48)); | 225 | SHA2STEP32 (a, b, c, d, e, f, g, h, UINT32_C (0x27b70a85), W[32 & 0xf] = \ |
226 | SHA2STEP32 (h, a, b, c, d, e, f, g, 0x1e376c08UL, W[49 & 0xf] = Wgen (W,49)); | 226 | Wgen (W,32)); |
227 | SHA2STEP32 (g, h, a, b, c, d, e, f, 0x2748774cUL, W[50 & 0xf] = Wgen (W,50)); | 227 | SHA2STEP32 (h, a, b, c, d, e, f, g, UINT32_C (0x2e1b2138), W[33 & 0xf] = \ |
228 | SHA2STEP32 (f, g, h, a, b, c, d, e, 0x34b0bcb5UL, W[51 & 0xf] = Wgen (W,51)); | 228 | Wgen (W,33)); |
229 | SHA2STEP32 (e, f, g, h, a, b, c, d, 0x391c0cb3UL, W[52 & 0xf] = Wgen (W,52)); | 229 | SHA2STEP32 (g, h, a, b, c, d, e, f, UINT32_C (0x4d2c6dfc), W[34 & 0xf] = \ |
230 | SHA2STEP32 (d, e, f, g, h, a, b, c, 0x4ed8aa4aUL, W[53 & 0xf] = Wgen (W,53)); | 230 | Wgen (W,34)); |
231 | SHA2STEP32 (c, d, e, f, g, h, a, b, 0x5b9cca4fUL, W[54 & 0xf] = Wgen (W,54)); | 231 | SHA2STEP32 (f, g, h, a, b, c, d, e, UINT32_C (0x53380d13), W[35 & 0xf] = \ |
232 | SHA2STEP32 (b, c, d, e, f, g, h, a, 0x682e6ff3UL, W[55 & 0xf] = Wgen (W,55)); | 232 | Wgen (W,35)); |
233 | SHA2STEP32 (a, b, c, d, e, f, g, h, 0x748f82eeUL, W[56 & 0xf] = Wgen (W,56)); | 233 | SHA2STEP32 (e, f, g, h, a, b, c, d, UINT32_C (0x650a7354), W[36 & 0xf] = \ |
234 | SHA2STEP32 (h, a, b, c, d, e, f, g, 0x78a5636fUL, W[57 & 0xf] = Wgen (W,57)); | 234 | Wgen (W,36)); |
235 | SHA2STEP32 (g, h, a, b, c, d, e, f, 0x84c87814UL, W[58 & 0xf] = Wgen (W,58)); | 235 | SHA2STEP32 (d, e, f, g, h, a, b, c, UINT32_C (0x766a0abb), W[37 & 0xf] = \ |
236 | SHA2STEP32 (f, g, h, a, b, c, d, e, 0x8cc70208UL, W[59 & 0xf] = Wgen (W,59)); | 236 | Wgen (W,37)); |
237 | SHA2STEP32 (e, f, g, h, a, b, c, d, 0x90befffaUL, W[60 & 0xf] = Wgen (W,60)); | 237 | SHA2STEP32 (c, d, e, f, g, h, a, b, UINT32_C (0x81c2c92e), W[38 & 0xf] = \ |
238 | SHA2STEP32 (d, e, f, g, h, a, b, c, 0xa4506cebUL, W[61 & 0xf] = Wgen (W,61)); | 238 | Wgen (W,38)); |
239 | SHA2STEP32 (c, d, e, f, g, h, a, b, 0xbef9a3f7UL, W[62 & 0xf] = Wgen (W,62)); | 239 | SHA2STEP32 (b, c, d, e, f, g, h, a, UINT32_C (0x92722c85), W[39 & 0xf] = \ |
240 | SHA2STEP32 (b, c, d, e, f, g, h, a, 0xc67178f2UL, W[63 & 0xf] = Wgen (W,63)); | 240 | Wgen (W,39)); |
241 | SHA2STEP32 (a, b, c, d, e, f, g, h, UINT32_C (0xa2bfe8a1), W[40 & 0xf] = \ | ||
242 | Wgen (W,40)); | ||
243 | SHA2STEP32 (h, a, b, c, d, e, f, g, UINT32_C (0xa81a664b), W[41 & 0xf] = \ | ||
244 | Wgen (W,41)); | ||
245 | SHA2STEP32 (g, h, a, b, c, d, e, f, UINT32_C (0xc24b8b70), W[42 & 0xf] = \ | ||
246 | Wgen (W,42)); | ||
247 | SHA2STEP32 (f, g, h, a, b, c, d, e, UINT32_C (0xc76c51a3), W[43 & 0xf] = \ | ||
248 | Wgen (W,43)); | ||
249 | SHA2STEP32 (e, f, g, h, a, b, c, d, UINT32_C (0xd192e819), W[44 & 0xf] = \ | ||
250 | Wgen (W,44)); | ||
251 | SHA2STEP32 (d, e, f, g, h, a, b, c, UINT32_C (0xd6990624), W[45 & 0xf] = \ | ||
252 | Wgen (W,45)); | ||
253 | SHA2STEP32 (c, d, e, f, g, h, a, b, UINT32_C (0xf40e3585), W[46 & 0xf] = \ | ||
254 | Wgen (W,46)); | ||
255 | SHA2STEP32 (b, c, d, e, f, g, h, a, UINT32_C (0x106aa070), W[47 & 0xf] = \ | ||
256 | Wgen (W,47)); | ||
257 | SHA2STEP32 (a, b, c, d, e, f, g, h, UINT32_C (0x19a4c116), W[48 & 0xf] = \ | ||
258 | Wgen (W,48)); | ||
259 | SHA2STEP32 (h, a, b, c, d, e, f, g, UINT32_C (0x1e376c08), W[49 & 0xf] = \ | ||
260 | Wgen (W,49)); | ||
261 | SHA2STEP32 (g, h, a, b, c, d, e, f, UINT32_C (0x2748774c), W[50 & 0xf] = \ | ||
262 | Wgen (W,50)); | ||
263 | SHA2STEP32 (f, g, h, a, b, c, d, e, UINT32_C (0x34b0bcb5), W[51 & 0xf] = \ | ||
264 | Wgen (W,51)); | ||
265 | SHA2STEP32 (e, f, g, h, a, b, c, d, UINT32_C (0x391c0cb3), W[52 & 0xf] = \ | ||
266 | Wgen (W,52)); | ||
267 | SHA2STEP32 (d, e, f, g, h, a, b, c, UINT32_C (0x4ed8aa4a), W[53 & 0xf] = \ | ||
268 | Wgen (W,53)); | ||
269 | SHA2STEP32 (c, d, e, f, g, h, a, b, UINT32_C (0x5b9cca4f), W[54 & 0xf] = \ | ||
270 | Wgen (W,54)); | ||
271 | SHA2STEP32 (b, c, d, e, f, g, h, a, UINT32_C (0x682e6ff3), W[55 & 0xf] = \ | ||
272 | Wgen (W,55)); | ||
273 | SHA2STEP32 (a, b, c, d, e, f, g, h, UINT32_C (0x748f82ee), W[56 & 0xf] = \ | ||
274 | Wgen (W,56)); | ||
275 | SHA2STEP32 (h, a, b, c, d, e, f, g, UINT32_C (0x78a5636f), W[57 & 0xf] = \ | ||
276 | Wgen (W,57)); | ||
277 | SHA2STEP32 (g, h, a, b, c, d, e, f, UINT32_C (0x84c87814), W[58 & 0xf] = \ | ||
278 | Wgen (W,58)); | ||
279 | SHA2STEP32 (f, g, h, a, b, c, d, e, UINT32_C (0x8cc70208), W[59 & 0xf] = \ | ||
280 | Wgen (W,59)); | ||
281 | SHA2STEP32 (e, f, g, h, a, b, c, d, UINT32_C (0x90befffa), W[60 & 0xf] = \ | ||
282 | Wgen (W,60)); | ||
283 | SHA2STEP32 (d, e, f, g, h, a, b, c, UINT32_C (0xa4506ceb), W[61 & 0xf] = \ | ||
284 | Wgen (W,61)); | ||
285 | SHA2STEP32 (c, d, e, f, g, h, a, b, UINT32_C (0xbef9a3f7), W[62 & 0xf] = \ | ||
286 | Wgen (W,62)); | ||
287 | SHA2STEP32 (b, c, d, e, f, g, h, a, UINT32_C (0xc67178f2), W[63 & 0xf] = \ | ||
288 | Wgen (W,63)); | ||
241 | 289 | ||
242 | /* Compute intermediate hash. | 290 | /* Compute intermediate hash. |
243 | See FIPS PUB 180-4 paragraph 6.2.2 step 4. */ | 291 | See FIPS PUB 180-4 paragraph 6.2.2 step 4. */ |