aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/microhttpd/md5.c142
-rw-r--r--src/microhttpd/sha1.c18
-rw-r--r--src/microhttpd/sha256.c192
3 files changed, 200 insertions, 152 deletions
diff --git a/src/microhttpd/md5.c b/src/microhttpd/md5.c
index b4ca7af8..4de888a8 100644
--- a/src/microhttpd/md5.c
+++ b/src/microhttpd/md5.c
@@ -46,10 +46,10 @@ MHD_MD5Init (void *ctx_)
46 46
47 mhd_assert (ctx != NULL); 47 mhd_assert (ctx != NULL);
48 ctx->count = 0; 48 ctx->count = 0;
49 ctx->state[0] = 0x67452301; 49 ctx->state[0] = UINT32_C (0x67452301);
50 ctx->state[1] = 0xefcdab89; 50 ctx->state[1] = UINT32_C (0xefcdab89);
51 ctx->state[2] = 0x98badcfe; 51 ctx->state[2] = UINT32_C (0x98badcfe);
52 ctx->state[3] = 0x10325476; 52 ctx->state[3] = UINT32_C (0x10325476);
53} 53}
54 54
55 55
@@ -186,73 +186,73 @@ MD5Transform (uint32_t state[4],
186 c = state[2]; 186 c = state[2];
187 d = state[3]; 187 d = state[3];
188 188
189 MD5STEP (F1, a, b, c, d, in[0] + 0xd76aa478, 7); 189 MD5STEP (F1, a, b, c, d, in[0] + UINT32_C (0xd76aa478), 7);
190 MD5STEP (F1, d, a, b, c, in[1] + 0xe8c7b756, 12); 190 MD5STEP (F1, d, a, b, c, in[1] + UINT32_C (0xe8c7b756), 12);
191 MD5STEP (F1, c, d, a, b, in[2] + 0x242070db, 17); 191 MD5STEP (F1, c, d, a, b, in[2] + UINT32_C (0x242070db), 17);
192 MD5STEP (F1, b, c, d, a, in[3] + 0xc1bdceee, 22); 192 MD5STEP (F1, b, c, d, a, in[3] + UINT32_C (0xc1bdceee), 22);
193 MD5STEP (F1, a, b, c, d, in[4] + 0xf57c0faf, 7); 193 MD5STEP (F1, a, b, c, d, in[4] + UINT32_C (0xf57c0faf), 7);
194 MD5STEP (F1, d, a, b, c, in[5] + 0x4787c62a, 12); 194 MD5STEP (F1, d, a, b, c, in[5] + UINT32_C (0x4787c62a), 12);
195 MD5STEP (F1, c, d, a, b, in[6] + 0xa8304613, 17); 195 MD5STEP (F1, c, d, a, b, in[6] + UINT32_C (0xa8304613), 17);
196 MD5STEP (F1, b, c, d, a, in[7] + 0xfd469501, 22); 196 MD5STEP (F1, b, c, d, a, in[7] + UINT32_C (0xfd469501), 22);
197 MD5STEP (F1, a, b, c, d, in[8] + 0x698098d8, 7); 197 MD5STEP (F1, a, b, c, d, in[8] + UINT32_C (0x698098d8), 7);
198 MD5STEP (F1, d, a, b, c, in[9] + 0x8b44f7af, 12); 198 MD5STEP (F1, d, a, b, c, in[9] + UINT32_C (0x8b44f7af), 12);
199 MD5STEP (F1, c, d, a, b, in[10] + 0xffff5bb1, 17); 199 MD5STEP (F1, c, d, a, b, in[10] + UINT32_C (0xffff5bb1), 17);
200 MD5STEP (F1, b, c, d, a, in[11] + 0x895cd7be, 22); 200 MD5STEP (F1, b, c, d, a, in[11] + UINT32_C (0x895cd7be), 22);
201 MD5STEP (F1, a, b, c, d, in[12] + 0x6b901122, 7); 201 MD5STEP (F1, a, b, c, d, in[12] + UINT32_C (0x6b901122), 7);
202 MD5STEP (F1, d, a, b, c, in[13] + 0xfd987193, 12); 202 MD5STEP (F1, d, a, b, c, in[13] + UINT32_C (0xfd987193), 12);
203 MD5STEP (F1, c, d, a, b, in[14] + 0xa679438e, 17); 203 MD5STEP (F1, c, d, a, b, in[14] + UINT32_C (0xa679438e), 17);
204 MD5STEP (F1, b, c, d, a, in[15] + 0x49b40821, 22); 204 MD5STEP (F1, b, c, d, a, in[15] + UINT32_C (0x49b40821), 22);
205 205
206 MD5STEP (F2, a, b, c, d, in[1] + 0xf61e2562, 5); 206 MD5STEP (F2, a, b, c, d, in[1] + UINT32_C (0xf61e2562), 5);
207 MD5STEP (F2, d, a, b, c, in[6] + 0xc040b340, 9); 207 MD5STEP (F2, d, a, b, c, in[6] + UINT32_C (0xc040b340), 9);
208 MD5STEP (F2, c, d, a, b, in[11] + 0x265e5a51, 14); 208 MD5STEP (F2, c, d, a, b, in[11] + UINT32_C (0x265e5a51), 14);
209 MD5STEP (F2, b, c, d, a, in[0] + 0xe9b6c7aa, 20); 209 MD5STEP (F2, b, c, d, a, in[0] + UINT32_C (0xe9b6c7aa), 20);
210 MD5STEP (F2, a, b, c, d, in[5] + 0xd62f105d, 5); 210 MD5STEP (F2, a, b, c, d, in[5] + UINT32_C (0xd62f105d), 5);
211 MD5STEP (F2, d, a, b, c, in[10] + 0x02441453, 9); 211 MD5STEP (F2, d, a, b, c, in[10] + UINT32_C (0x02441453), 9);
212 MD5STEP (F2, c, d, a, b, in[15] + 0xd8a1e681, 14); 212 MD5STEP (F2, c, d, a, b, in[15] + UINT32_C (0xd8a1e681), 14);
213 MD5STEP (F2, b, c, d, a, in[4] + 0xe7d3fbc8, 20); 213 MD5STEP (F2, b, c, d, a, in[4] + UINT32_C (0xe7d3fbc8), 20);
214 MD5STEP (F2, a, b, c, d, in[9] + 0x21e1cde6, 5); 214 MD5STEP (F2, a, b, c, d, in[9] + UINT32_C (0x21e1cde6), 5);
215 MD5STEP (F2, d, a, b, c, in[14] + 0xc33707d6, 9); 215 MD5STEP (F2, d, a, b, c, in[14] + UINT32_C (0xc33707d6), 9);
216 MD5STEP (F2, c, d, a, b, in[3] + 0xf4d50d87, 14); 216 MD5STEP (F2, c, d, a, b, in[3] + UINT32_C (0xf4d50d87), 14);
217 MD5STEP (F2, b, c, d, a, in[8] + 0x455a14ed, 20); 217 MD5STEP (F2, b, c, d, a, in[8] + UINT32_C (0x455a14ed), 20);
218 MD5STEP (F2, a, b, c, d, in[13] + 0xa9e3e905, 5); 218 MD5STEP (F2, a, b, c, d, in[13] + UINT32_C (0xa9e3e905), 5);
219 MD5STEP (F2, d, a, b, c, in[2] + 0xfcefa3f8, 9); 219 MD5STEP (F2, d, a, b, c, in[2] + UINT32_C (0xfcefa3f8), 9);
220 MD5STEP (F2, c, d, a, b, in[7] + 0x676f02d9, 14); 220 MD5STEP (F2, c, d, a, b, in[7] + UINT32_C (0x676f02d9), 14);
221 MD5STEP (F2, b, c, d, a, in[12] + 0x8d2a4c8a, 20); 221 MD5STEP (F2, b, c, d, a, in[12] + UINT32_C (0x8d2a4c8a), 20);
222 222
223 MD5STEP (F3, a, b, c, d, in[5] + 0xfffa3942, 4); 223 MD5STEP (F3, a, b, c, d, in[5] + UINT32_C (0xfffa3942), 4);
224 MD5STEP (F3, d, a, b, c, in[8] + 0x8771f681, 11); 224 MD5STEP (F3, d, a, b, c, in[8] + UINT32_C (0x8771f681), 11);
225 MD5STEP (F3, c, d, a, b, in[11] + 0x6d9d6122, 16); 225 MD5STEP (F3, c, d, a, b, in[11] + UINT32_C (0x6d9d6122), 16);
226 MD5STEP (F3, b, c, d, a, in[14] + 0xfde5380c, 23); 226 MD5STEP (F3, b, c, d, a, in[14] + UINT32_C (0xfde5380c), 23);
227 MD5STEP (F3, a, b, c, d, in[1] + 0xa4beea44, 4); 227 MD5STEP (F3, a, b, c, d, in[1] + UINT32_C (0xa4beea44), 4);
228 MD5STEP (F3, d, a, b, c, in[4] + 0x4bdecfa9, 11); 228 MD5STEP (F3, d, a, b, c, in[4] + UINT32_C (0x4bdecfa9), 11);
229 MD5STEP (F3, c, d, a, b, in[7] + 0xf6bb4b60, 16); 229 MD5STEP (F3, c, d, a, b, in[7] + UINT32_C (0xf6bb4b60), 16);
230 MD5STEP (F3, b, c, d, a, in[10] + 0xbebfbc70, 23); 230 MD5STEP (F3, b, c, d, a, in[10] + UINT32_C (0xbebfbc70), 23);
231 MD5STEP (F3, a, b, c, d, in[13] + 0x289b7ec6, 4); 231 MD5STEP (F3, a, b, c, d, in[13] + UINT32_C (0x289b7ec6), 4);
232 MD5STEP (F3, d, a, b, c, in[0] + 0xeaa127fa, 11); 232 MD5STEP (F3, d, a, b, c, in[0] + UINT32_C (0xeaa127fa), 11);
233 MD5STEP (F3, c, d, a, b, in[3] + 0xd4ef3085, 16); 233 MD5STEP (F3, c, d, a, b, in[3] + UINT32_C (0xd4ef3085), 16);
234 MD5STEP (F3, b, c, d, a, in[6] + 0x04881d05, 23); 234 MD5STEP (F3, b, c, d, a, in[6] + UINT32_C (0x04881d05), 23);
235 MD5STEP (F3, a, b, c, d, in[9] + 0xd9d4d039, 4); 235 MD5STEP (F3, a, b, c, d, in[9] + UINT32_C (0xd9d4d039), 4);
236 MD5STEP (F3, d, a, b, c, in[12] + 0xe6db99e5, 11); 236 MD5STEP (F3, d, a, b, c, in[12] + UINT32_C (0xe6db99e5), 11);
237 MD5STEP (F3, c, d, a, b, in[15] + 0x1fa27cf8, 16); 237 MD5STEP (F3, c, d, a, b, in[15] + UINT32_C (0x1fa27cf8), 16);
238 MD5STEP (F3, b, c, d, a, in[2] + 0xc4ac5665, 23); 238 MD5STEP (F3, b, c, d, a, in[2] + UINT32_C (0xc4ac5665), 23);
239 239
240 MD5STEP (F4, a, b, c, d, in[0] + 0xf4292244, 6); 240 MD5STEP (F4, a, b, c, d, in[0] + UINT32_C (0xf4292244), 6);
241 MD5STEP (F4, d, a, b, c, in[7] + 0x432aff97, 10); 241 MD5STEP (F4, d, a, b, c, in[7] + UINT32_C (0x432aff97), 10);
242 MD5STEP (F4, c, d, a, b, in[14] + 0xab9423a7, 15); 242 MD5STEP (F4, c, d, a, b, in[14] + UINT32_C (0xab9423a7), 15);
243 MD5STEP (F4, b, c, d, a, in[5] + 0xfc93a039, 21); 243 MD5STEP (F4, b, c, d, a, in[5] + UINT32_C (0xfc93a039), 21);
244 MD5STEP (F4, a, b, c, d, in[12] + 0x655b59c3, 6); 244 MD5STEP (F4, a, b, c, d, in[12] + UINT32_C (0x655b59c3), 6);
245 MD5STEP (F4, d, a, b, c, in[3] + 0x8f0ccc92, 10); 245 MD5STEP (F4, d, a, b, c, in[3] + UINT32_C (0x8f0ccc92), 10);
246 MD5STEP (F4, c, d, a, b, in[10] + 0xffeff47d, 15); 246 MD5STEP (F4, c, d, a, b, in[10] + UINT32_C (0xffeff47d), 15);
247 MD5STEP (F4, b, c, d, a, in[1] + 0x85845dd1, 21); 247 MD5STEP (F4, b, c, d, a, in[1] + UINT32_C (0x85845dd1), 21);
248 MD5STEP (F4, a, b, c, d, in[8] + 0x6fa87e4f, 6); 248 MD5STEP (F4, a, b, c, d, in[8] + UINT32_C (0x6fa87e4f), 6);
249 MD5STEP (F4, d, a, b, c, in[15] + 0xfe2ce6e0, 10); 249 MD5STEP (F4, d, a, b, c, in[15] + UINT32_C (0xfe2ce6e0), 10);
250 MD5STEP (F4, c, d, a, b, in[6] + 0xa3014314, 15); 250 MD5STEP (F4, c, d, a, b, in[6] + UINT32_C (0xa3014314), 15);
251 MD5STEP (F4, b, c, d, a, in[13] + 0x4e0811a1, 21); 251 MD5STEP (F4, b, c, d, a, in[13] + UINT32_C (0x4e0811a1), 21);
252 MD5STEP (F4, a, b, c, d, in[4] + 0xf7537e82, 6); 252 MD5STEP (F4, a, b, c, d, in[4] + UINT32_C (0xf7537e82), 6);
253 MD5STEP (F4, d, a, b, c, in[11] + 0xbd3af235, 10); 253 MD5STEP (F4, d, a, b, c, in[11] + UINT32_C (0xbd3af235), 10);
254 MD5STEP (F4, c, d, a, b, in[2] + 0x2ad7d2bb, 15); 254 MD5STEP (F4, c, d, a, b, in[2] + UINT32_C (0x2ad7d2bb), 15);
255 MD5STEP (F4, b, c, d, a, in[9] + 0xeb86d391, 21); 255 MD5STEP (F4, b, c, d, a, in[9] + UINT32_C (0xeb86d391), 21);
256 256
257 state[0] += a; 257 state[0] += a;
258 state[1] += b; 258 state[1] += b;
diff --git a/src/microhttpd/sha1.c b/src/microhttpd/sha1.c
index 5d4a5b93..9888cbfe 100644
--- a/src/microhttpd/sha1.c
+++ b/src/microhttpd/sha1.c
@@ -43,11 +43,11 @@ MHD_SHA1_init (void *ctx_)
43 struct sha1_ctx *const ctx = ctx_; 43 struct sha1_ctx *const ctx = ctx_;
44 /* Initial hash values, see FIPS PUB 180-4 paragraph 5.3.1 */ 44 /* Initial hash values, see FIPS PUB 180-4 paragraph 5.3.1 */
45 /* Just some "magic" numbers defined by standard */ 45 /* Just some "magic" numbers defined by standard */
46 ctx->H[0] = 0x67452301UL; 46 ctx->H[0] = UINT32_C (0x67452301);
47 ctx->H[1] = 0xefcdab89UL; 47 ctx->H[1] = UINT32_C (0xefcdab89);
48 ctx->H[2] = 0x98badcfeUL; 48 ctx->H[2] = UINT32_C (0x98badcfe);
49 ctx->H[3] = 0x10325476UL; 49 ctx->H[3] = UINT32_C (0x10325476);
50 ctx->H[4] = 0xc3d2e1f0UL; 50 ctx->H[4] = UINT32_C (0xc3d2e1f0);
51 51
52 /* Initialise number of bytes. */ 52 /* Initialise number of bytes. */
53 ctx->count = 0; 53 ctx->count = 0;
@@ -121,13 +121,13 @@ sha1_transform (uint32_t H[_SHA1_DIGEST_LENGTH],
121#endif /* _MHD_GET_32BIT_BE_UNALIGNED */ 121#endif /* _MHD_GET_32BIT_BE_UNALIGNED */
122 122
123/* SHA-1 values of Kt for t=0..19, see FIPS PUB 180-4 paragraph 4.2.1. */ 123/* SHA-1 values of Kt for t=0..19, see FIPS PUB 180-4 paragraph 4.2.1. */
124#define K00 0x5a827999UL 124#define K00 UINT32_C(0x5a827999)
125/* SHA-1 values of Kt for t=20..39, see FIPS PUB 180-4 paragraph 4.2.1.*/ 125/* SHA-1 values of Kt for t=20..39, see FIPS PUB 180-4 paragraph 4.2.1.*/
126#define K20 0x6ed9eba1UL 126#define K20 UINT32_C(0x6ed9eba1)
127/* SHA-1 values of Kt for t=40..59, see FIPS PUB 180-4 paragraph 4.2.1.*/ 127/* SHA-1 values of Kt for t=40..59, see FIPS PUB 180-4 paragraph 4.2.1.*/
128#define K40 0x8f1bbcdcUL 128#define K40 UINT32_C(0x8f1bbcdc)
129/* SHA-1 values of Kt for t=60..79, see FIPS PUB 180-4 paragraph 4.2.1.*/ 129/* SHA-1 values of Kt for t=60..79, see FIPS PUB 180-4 paragraph 4.2.1.*/
130#define K60 0xca62c1d6UL 130#define K60 UINT32_C(0xca62c1d6)
131 131
132 /* During first 16 steps, before making any calculations on each step, 132 /* During first 16 steps, before making any calculations on each step,
133 the W element is read from input data buffer as big-endian value and 133 the W element is read from input data buffer as big-endian value and
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. */