Absolute File Name: | /home/opencoverage/opencoverage/guest-scripts/coreutils/src/gnulib/lib/sha512.c |
Switch to Source code | Preprocessed file |
Line | Source | Count | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | - | |||||||||||||
2 | - | |||||||||||||
3 | - | |||||||||||||
4 | - | |||||||||||||
5 | - | |||||||||||||
6 | - | |||||||||||||
7 | - | |||||||||||||
8 | - | |||||||||||||
9 | - | |||||||||||||
10 | static const unsigned char fillbuf[128] = { 0x80, 0 }; | - | ||||||||||||
11 | - | |||||||||||||
12 | - | |||||||||||||
13 | - | |||||||||||||
14 | - | |||||||||||||
15 | - | |||||||||||||
16 | - | |||||||||||||
17 | - | |||||||||||||
18 | void | - | ||||||||||||
19 | sha512_init_ctx (struct sha512_ctx *ctx) | - | ||||||||||||
20 | { | - | ||||||||||||
21 | ctx->state[0] = ((u64) (((u64) (0x6a09e667) << 32) + (0xf3bcc908))); | - | ||||||||||||
22 | ctx->state[1] = ((u64) (((u64) (0xbb67ae85) << 32) + (0x84caa73b))); | - | ||||||||||||
23 | ctx->state[2] = ((u64) (((u64) (0x3c6ef372) << 32) + (0xfe94f82b))); | - | ||||||||||||
24 | ctx->state[3] = ((u64) (((u64) (0xa54ff53a) << 32) + (0x5f1d36f1))); | - | ||||||||||||
25 | ctx->state[4] = ((u64) (((u64) (0x510e527f) << 32) + (0xade682d1))); | - | ||||||||||||
26 | ctx->state[5] = ((u64) (((u64) (0x9b05688c) << 32) + (0x2b3e6c1f))); | - | ||||||||||||
27 | ctx->state[6] = ((u64) (((u64) (0x1f83d9ab) << 32) + (0xfb41bd6b))); | - | ||||||||||||
28 | ctx->state[7] = ((u64) (((u64) (0x5be0cd19) << 32) + (0x137e2179))); | - | ||||||||||||
29 | - | |||||||||||||
30 | ctx->total[0] = ctx->total[1] = ((u64) (0)); | - | ||||||||||||
31 | ctx->buflen = 0; | - | ||||||||||||
32 | } executed 7 times by 1 test: end of block Executed by:
| 7 | ||||||||||||
33 | - | |||||||||||||
34 | void | - | ||||||||||||
35 | sha384_init_ctx (struct sha512_ctx *ctx) | - | ||||||||||||
36 | { | - | ||||||||||||
37 | ctx->state[0] = ((u64) (((u64) (0xcbbb9d5d) << 32) + (0xc1059ed8))); | - | ||||||||||||
38 | ctx->state[1] = ((u64) (((u64) (0x629a292a) << 32) + (0x367cd507))); | - | ||||||||||||
39 | ctx->state[2] = ((u64) (((u64) (0x9159015a) << 32) + (0x3070dd17))); | - | ||||||||||||
40 | ctx->state[3] = ((u64) (((u64) (0x152fecd8) << 32) + (0xf70e5939))); | - | ||||||||||||
41 | ctx->state[4] = ((u64) (((u64) (0x67332667) << 32) + (0xffc00b31))); | - | ||||||||||||
42 | ctx->state[5] = ((u64) (((u64) (0x8eb44a87) << 32) + (0x68581511))); | - | ||||||||||||
43 | ctx->state[6] = ((u64) (((u64) (0xdb0c2e0d) << 32) + (0x64f98fa7))); | - | ||||||||||||
44 | ctx->state[7] = ((u64) (((u64) (0x47b5481d) << 32) + (0xbefa4fa4))); | - | ||||||||||||
45 | - | |||||||||||||
46 | ctx->total[0] = ctx->total[1] = ((u64) (0)); | - | ||||||||||||
47 | ctx->buflen = 0; | - | ||||||||||||
48 | } executed 7 times by 1 test: end of block Executed by:
| 7 | ||||||||||||
49 | - | |||||||||||||
50 | - | |||||||||||||
51 | - | |||||||||||||
52 | - | |||||||||||||
53 | static void | - | ||||||||||||
54 | set_uint64 (char *cp, u64 v) | - | ||||||||||||
55 | { | - | ||||||||||||
56 | memcpy (cp, &v, sizeof v); | - | ||||||||||||
57 | } executed 126 times by 2 tests: end of block Executed by:
| 126 | ||||||||||||
58 | - | |||||||||||||
59 | - | |||||||||||||
60 | - | |||||||||||||
61 | void * | - | ||||||||||||
62 | sha512_read_ctx (const struct sha512_ctx *ctx, void *resbuf) | - | ||||||||||||
63 | { | - | ||||||||||||
64 | int i; | - | ||||||||||||
65 | char *r = resbuf; | - | ||||||||||||
66 | - | |||||||||||||
67 | for (i = 0; i < 8
| 7-56 | ||||||||||||
68 | set_uint64 (r + i * sizeof ctx->state[0], ((((((((ctx->state[i]) << (56))) | (((((ctx->state[i]) & (((u64) (0x0000ff00))))) << (40))))) | (((((((ctx->state[i]) & (((u64) (0x00ff0000))))) << (24))) | (((((ctx->state[i]) & (((u64) (0xff000000))))) << (8))))))) | (((((((((ctx->state[i]) >> (8))) & (((u64) (0xff000000))))) | (((((ctx->state[i]) >> (24))) & (((u64) (0x00ff0000))))))) | (((((((ctx->state[i]) >> (40))) & (((u64) (0x0000ff00))))) | (((ctx->state[i]) >> (56))))))))); executed 56 times by 1 test: set_uint64 (r + i * sizeof ctx->state[0], ((((((((ctx->state[i]) << (56))) | (((((ctx->state[i]) & (((u64) (0x0000ff00))))) << (40))))) | (((((((ctx->state[i]) & (((u64) (0x00ff0000))))) << (24))) | (((((ctx->state[i]) & (((u64) (0xff000000))))) << (8))))))) | (((((((((ctx->state[i]) >> (8))) & (((u64) (0xff000000))))) | (((((ctx->state[i]) >> (24))) & (((u64) (0x00ff0000))))))) | (((((((ctx->state[i]) >> (40))) & (((u64) (0x0000ff00))))) | (((ctx->state[i]) >> (56))))))))); Executed by:
| 56 | ||||||||||||
69 | - | |||||||||||||
70 | return executed 7 times by 1 test: resbuf;return resbuf; Executed by:
executed 7 times by 1 test: return resbuf; Executed by:
| 7 | ||||||||||||
71 | } | - | ||||||||||||
72 | - | |||||||||||||
73 | void * | - | ||||||||||||
74 | sha384_read_ctx (const struct sha512_ctx *ctx, void *resbuf) | - | ||||||||||||
75 | { | - | ||||||||||||
76 | int i; | - | ||||||||||||
77 | char *r = resbuf; | - | ||||||||||||
78 | - | |||||||||||||
79 | for (i = 0; i < 6
| 7-42 | ||||||||||||
80 | set_uint64 (r + i * sizeof ctx->state[0], ((((((((ctx->state[i]) << (56))) | (((((ctx->state[i]) & (((u64) (0x0000ff00))))) << (40))))) | (((((((ctx->state[i]) & (((u64) (0x00ff0000))))) << (24))) | (((((ctx->state[i]) & (((u64) (0xff000000))))) << (8))))))) | (((((((((ctx->state[i]) >> (8))) & (((u64) (0xff000000))))) | (((((ctx->state[i]) >> (24))) & (((u64) (0x00ff0000))))))) | (((((((ctx->state[i]) >> (40))) & (((u64) (0x0000ff00))))) | (((ctx->state[i]) >> (56))))))))); executed 42 times by 1 test: set_uint64 (r + i * sizeof ctx->state[0], ((((((((ctx->state[i]) << (56))) | (((((ctx->state[i]) & (((u64) (0x0000ff00))))) << (40))))) | (((((((ctx->state[i]) & (((u64) (0x00ff0000))))) << (24))) | (((((ctx->state[i]) & (((u64) (0xff000000))))) << (8))))))) | (((((((((ctx->state[i]) >> (8))) & (((u64) (0xff000000))))) | (((((ctx->state[i]) >> (24))) & (((u64) (0x00ff0000))))))) | (((((((ctx->state[i]) >> (40))) & (((u64) (0x0000ff00))))) | (((ctx->state[i]) >> (56))))))))); Executed by:
| 42 | ||||||||||||
81 | - | |||||||||||||
82 | return executed 7 times by 1 test: resbuf;return resbuf; Executed by:
executed 7 times by 1 test: return resbuf; Executed by:
| 7 | ||||||||||||
83 | } | - | ||||||||||||
84 | - | |||||||||||||
85 | - | |||||||||||||
86 | - | |||||||||||||
87 | static void | - | ||||||||||||
88 | sha512_conclude_ctx (struct sha512_ctx *ctx) | - | ||||||||||||
89 | { | - | ||||||||||||
90 | - | |||||||||||||
91 | size_t bytes = ctx->buflen; | - | ||||||||||||
92 | size_t size = (
| 2-12 | ||||||||||||
93 | - | |||||||||||||
94 | - | |||||||||||||
95 | ctx->total[0] = ((ctx->total[0]) + (((u64) (bytes)))); | - | ||||||||||||
96 | if (((
| 0-14 | ||||||||||||
97 | ctx->total[1] = ((ctx->total[1]) + (((u64) (1)))); never executed: ctx->total[1] = ((ctx->total[1]) + (((u64) (1)))); | 0 | ||||||||||||
98 | - | |||||||||||||
99 | - | |||||||||||||
100 | - | |||||||||||||
101 | - | |||||||||||||
102 | set_uint64 ((char *) &ctx->buffer[size - 2], | - | ||||||||||||
103 | ((((((((((((ctx->total[1]) << (3))) | (((ctx->total[0]) >> (61))))) << (56))) | (((((((((ctx->total[1]) << (3))) | (((ctx->total[0]) >> (61))))) & (((u64) (0x0000ff00))))) << (40))))) | (((((((((((ctx->total[1]) << (3))) | (((ctx->total[0]) >> (61))))) & (((u64) (0x00ff0000))))) << (24))) | (((((((((ctx->total[1]) << (3))) | (((ctx->total[0]) >> (61))))) & (((u64) (0xff000000))))) << (8))))))) | (((((((((((((ctx->total[1]) << (3))) | (((ctx->total[0]) >> (61))))) >> (8))) & (((u64) (0xff000000))))) | (((((((((ctx->total[1]) << (3))) | (((ctx->total[0]) >> (61))))) >> (24))) & (((u64) (0x00ff0000))))))) | (((((((((((ctx->total[1]) << (3))) | (((ctx->total[0]) >> (61))))) >> (40))) & (((u64) (0x0000ff00))))) | (((((((ctx->total[1]) << (3))) | (((ctx->total[0]) >> (61))))) >> (56)))))))) | - | ||||||||||||
104 | ); | - | ||||||||||||
105 | set_uint64 ((char *) &ctx->buffer[size - 1], | - | ||||||||||||
106 | ((((((((((ctx->total[0]) << (3))) << (56))) | (((((((ctx->total[0]) << (3))) & (((u64) (0x0000ff00))))) << (40))))) | (((((((((ctx->total[0]) << (3))) & (((u64) (0x00ff0000))))) << (24))) | (((((((ctx->total[0]) << (3))) & (((u64) (0xff000000))))) << (8))))))) | (((((((((((ctx->total[0]) << (3))) >> (8))) & (((u64) (0xff000000))))) | (((((((ctx->total[0]) << (3))) >> (24))) & (((u64) (0x00ff0000))))))) | (((((((((ctx->total[0]) << (3))) >> (40))) & (((u64) (0x0000ff00))))) | (((((ctx->total[0]) << (3))) >> (56))))))))); | - | ||||||||||||
107 | - | |||||||||||||
108 | memcpy (&((char *) ctx->buffer)[bytes], fillbuf, (size - 2) * 8 - bytes); | - | ||||||||||||
109 | - | |||||||||||||
110 | - | |||||||||||||
111 | sha512_process_block (ctx->buffer, size * 8, ctx); | - | ||||||||||||
112 | } executed 14 times by 2 tests: end of block Executed by:
| 14 | ||||||||||||
113 | - | |||||||||||||
114 | void * | - | ||||||||||||
115 | sha512_finish_ctx (struct sha512_ctx *ctx, void *resbuf) | - | ||||||||||||
116 | { | - | ||||||||||||
117 | sha512_conclude_ctx (ctx); | - | ||||||||||||
118 | return executed 7 times by 1 test: sha512_read_ctx (ctx, resbuf);return sha512_read_ctx (ctx, resbuf); Executed by:
executed 7 times by 1 test: return sha512_read_ctx (ctx, resbuf); Executed by:
| 7 | ||||||||||||
119 | } | - | ||||||||||||
120 | - | |||||||||||||
121 | void * | - | ||||||||||||
122 | sha384_finish_ctx (struct sha512_ctx *ctx, void *resbuf) | - | ||||||||||||
123 | { | - | ||||||||||||
124 | sha512_conclude_ctx (ctx); | - | ||||||||||||
125 | return executed 7 times by 1 test: sha384_read_ctx (ctx, resbuf);return sha384_read_ctx (ctx, resbuf); Executed by:
executed 7 times by 1 test: return sha384_read_ctx (ctx, resbuf); Executed by:
| 7 | ||||||||||||
126 | } | - | ||||||||||||
127 | - | |||||||||||||
128 | - | |||||||||||||
129 | - | |||||||||||||
130 | - | |||||||||||||
131 | - | |||||||||||||
132 | int | - | ||||||||||||
133 | sha512_stream (FILE *stream, void *resblock) | - | ||||||||||||
134 | { | - | ||||||||||||
135 | struct sha512_ctx ctx; | - | ||||||||||||
136 | size_t sum; | - | ||||||||||||
137 | - | |||||||||||||
138 | char *buffer = malloc (32768 + 72); | - | ||||||||||||
139 | if (!buffer
| 0-7 | ||||||||||||
140 | return never executed: 1;return 1; never executed: return 1; | 0 | ||||||||||||
141 | - | |||||||||||||
142 | - | |||||||||||||
143 | sha512_init_ctx (&ctx); | - | ||||||||||||
144 | - | |||||||||||||
145 | - | |||||||||||||
146 | while (1) | - | ||||||||||||
147 | { | - | ||||||||||||
148 | - | |||||||||||||
149 | - | |||||||||||||
150 | - | |||||||||||||
151 | size_t n; | - | ||||||||||||
152 | sum = 0; | - | ||||||||||||
153 | - | |||||||||||||
154 | - | |||||||||||||
155 | while (1) | - | ||||||||||||
156 | { | - | ||||||||||||
157 | n = fread_unlocked (buffer + sum,1,32768 - sum,stream); | - | ||||||||||||
158 | - | |||||||||||||
159 | sum += n; | - | ||||||||||||
160 | - | |||||||||||||
161 | if (sum == 32768
| 7-30 | ||||||||||||
162 | break; executed 30 times by 1 test: break; Executed by:
| 30 | ||||||||||||
163 | - | |||||||||||||
164 | if (n == 0
| 1-6 | ||||||||||||
165 | { | - | ||||||||||||
166 | - | |||||||||||||
167 | - | |||||||||||||
168 | - | |||||||||||||
169 | if (ferror_unlocked (stream)
| 0-1 | ||||||||||||
170 | { | - | ||||||||||||
171 | free (buffer); | - | ||||||||||||
172 | return never executed: 1;return 1; never executed: return 1; | 0 | ||||||||||||
173 | } | - | ||||||||||||
174 | goto executed 1 time by 1 test: process_partial_block;goto process_partial_block; Executed by:
executed 1 time by 1 test: goto process_partial_block; Executed by:
| 1 | ||||||||||||
175 | } | - | ||||||||||||
176 | - | |||||||||||||
177 | - | |||||||||||||
178 | - | |||||||||||||
179 | - | |||||||||||||
180 | if (feof_unlocked (stream)
| 0-6 | ||||||||||||
181 | goto executed 6 times by 1 test: process_partial_block;goto process_partial_block; Executed by:
executed 6 times by 1 test: goto process_partial_block; Executed by:
| 6 | ||||||||||||
182 | } never executed: end of block | 0 | ||||||||||||
183 | - | |||||||||||||
184 | - | |||||||||||||
185 | - | |||||||||||||
186 | - | |||||||||||||
187 | sha512_process_block (buffer, 32768, &ctx); | - | ||||||||||||
188 | } executed 30 times by 1 test: end of block Executed by:
| 30 | ||||||||||||
189 | - | |||||||||||||
190 | process_partial_block: code before this statement never executed: ;process_partial_block: | 0 | ||||||||||||
191 | - | |||||||||||||
192 | - | |||||||||||||
193 | if (sum > 0
| 1-6 | ||||||||||||
194 | sha512_process_bytes (buffer, sum, &ctx); executed 6 times by 1 test: sha512_process_bytes (buffer, sum, &ctx); Executed by:
| 6 | ||||||||||||
195 | - | |||||||||||||
196 | - | |||||||||||||
197 | sha512_finish_ctx (&ctx, resblock); | - | ||||||||||||
198 | free (buffer); | - | ||||||||||||
199 | return executed 7 times by 1 test: 0;return 0; Executed by:
executed 7 times by 1 test: return 0; Executed by:
| 7 | ||||||||||||
200 | } | - | ||||||||||||
201 | - | |||||||||||||
202 | - | |||||||||||||
203 | int | - | ||||||||||||
204 | sha384_stream (FILE *stream, void *resblock) | - | ||||||||||||
205 | { | - | ||||||||||||
206 | struct sha512_ctx ctx; | - | ||||||||||||
207 | size_t sum; | - | ||||||||||||
208 | - | |||||||||||||
209 | char *buffer = malloc (32768 + 72); | - | ||||||||||||
210 | if (!buffer
| 0-7 | ||||||||||||
211 | return never executed: 1;return 1; never executed: return 1; | 0 | ||||||||||||
212 | - | |||||||||||||
213 | - | |||||||||||||
214 | sha384_init_ctx (&ctx); | - | ||||||||||||
215 | - | |||||||||||||
216 | - | |||||||||||||
217 | while (1) | - | ||||||||||||
218 | { | - | ||||||||||||
219 | - | |||||||||||||
220 | - | |||||||||||||
221 | - | |||||||||||||
222 | size_t n; | - | ||||||||||||
223 | sum = 0; | - | ||||||||||||
224 | - | |||||||||||||
225 | - | |||||||||||||
226 | while (1) | - | ||||||||||||
227 | { | - | ||||||||||||
228 | n = fread_unlocked (buffer + sum,1,32768 - sum,stream); | - | ||||||||||||
229 | - | |||||||||||||
230 | sum += n; | - | ||||||||||||
231 | - | |||||||||||||
232 | if (sum == 32768
| 7-30 | ||||||||||||
233 | break; executed 30 times by 1 test: break; Executed by:
| 30 | ||||||||||||
234 | - | |||||||||||||
235 | if (n == 0
| 1-6 | ||||||||||||
236 | { | - | ||||||||||||
237 | - | |||||||||||||
238 | - | |||||||||||||
239 | - | |||||||||||||
240 | if (ferror_unlocked (stream)
| 0-1 | ||||||||||||
241 | { | - | ||||||||||||
242 | free (buffer); | - | ||||||||||||
243 | return never executed: 1;return 1; never executed: return 1; | 0 | ||||||||||||
244 | } | - | ||||||||||||
245 | goto executed 1 time by 1 test: process_partial_block;goto process_partial_block; Executed by:
executed 1 time by 1 test: goto process_partial_block; Executed by:
| 1 | ||||||||||||
246 | } | - | ||||||||||||
247 | - | |||||||||||||
248 | - | |||||||||||||
249 | - | |||||||||||||
250 | - | |||||||||||||
251 | if (feof_unlocked (stream)
| 0-6 | ||||||||||||
252 | goto executed 6 times by 1 test: process_partial_block;goto process_partial_block; Executed by:
executed 6 times by 1 test: goto process_partial_block; Executed by:
| 6 | ||||||||||||
253 | } never executed: end of block | 0 | ||||||||||||
254 | - | |||||||||||||
255 | - | |||||||||||||
256 | - | |||||||||||||
257 | - | |||||||||||||
258 | sha512_process_block (buffer, 32768, &ctx); | - | ||||||||||||
259 | } executed 30 times by 1 test: end of block Executed by:
| 30 | ||||||||||||
260 | - | |||||||||||||
261 | process_partial_block: code before this statement never executed: ;process_partial_block: | 0 | ||||||||||||
262 | - | |||||||||||||
263 | - | |||||||||||||
264 | if (sum > 0
| 1-6 | ||||||||||||
265 | sha512_process_bytes (buffer, sum, &ctx); executed 6 times by 1 test: sha512_process_bytes (buffer, sum, &ctx); Executed by:
| 6 | ||||||||||||
266 | - | |||||||||||||
267 | - | |||||||||||||
268 | sha384_finish_ctx (&ctx, resblock); | - | ||||||||||||
269 | free (buffer); | - | ||||||||||||
270 | return executed 7 times by 1 test: 0;return 0; Executed by:
executed 7 times by 1 test: return 0; Executed by:
| 7 | ||||||||||||
271 | } | - | ||||||||||||
272 | - | |||||||||||||
273 | - | |||||||||||||
274 | - | |||||||||||||
275 | - | |||||||||||||
276 | - | |||||||||||||
277 | - | |||||||||||||
278 | void * | - | ||||||||||||
279 | sha512_buffer (const char *buffer, size_t len, void *resblock) | - | ||||||||||||
280 | { | - | ||||||||||||
281 | struct sha512_ctx ctx; | - | ||||||||||||
282 | - | |||||||||||||
283 | - | |||||||||||||
284 | sha512_init_ctx (&ctx); | - | ||||||||||||
285 | - | |||||||||||||
286 | - | |||||||||||||
287 | sha512_process_bytes (buffer, len, &ctx); | - | ||||||||||||
288 | - | |||||||||||||
289 | - | |||||||||||||
290 | return never executed: sha512_finish_ctx (&ctx, resblock);return sha512_finish_ctx (&ctx, resblock); never executed: return sha512_finish_ctx (&ctx, resblock); | 0 | ||||||||||||
291 | } | - | ||||||||||||
292 | - | |||||||||||||
293 | void * | - | ||||||||||||
294 | sha384_buffer (const char *buffer, size_t len, void *resblock) | - | ||||||||||||
295 | { | - | ||||||||||||
296 | struct sha512_ctx ctx; | - | ||||||||||||
297 | - | |||||||||||||
298 | - | |||||||||||||
299 | sha384_init_ctx (&ctx); | - | ||||||||||||
300 | - | |||||||||||||
301 | - | |||||||||||||
302 | sha512_process_bytes (buffer, len, &ctx); | - | ||||||||||||
303 | - | |||||||||||||
304 | - | |||||||||||||
305 | return never executed: sha384_finish_ctx (&ctx, resblock);return sha384_finish_ctx (&ctx, resblock); never executed: return sha384_finish_ctx (&ctx, resblock); | 0 | ||||||||||||
306 | } | - | ||||||||||||
307 | - | |||||||||||||
308 | void | - | ||||||||||||
309 | sha512_process_bytes (const void *buffer, size_t len, struct sha512_ctx *ctx) | - | ||||||||||||
310 | { | - | ||||||||||||
311 | - | |||||||||||||
312 | - | |||||||||||||
313 | if (ctx->buflen != 0
| 0-12 | ||||||||||||
314 | { | - | ||||||||||||
315 | size_t left_over = ctx->buflen; | - | ||||||||||||
316 | size_t add = 256 - left_over > len
| 0 | ||||||||||||
317 | - | |||||||||||||
318 | memcpy (&((char *) ctx->buffer)[left_over], buffer, add); | - | ||||||||||||
319 | ctx->buflen += add; | - | ||||||||||||
320 | - | |||||||||||||
321 | if (ctx->buflen > 128
| 0 | ||||||||||||
322 | { | - | ||||||||||||
323 | sha512_process_block (ctx->buffer, ctx->buflen & ~127, ctx); | - | ||||||||||||
324 | - | |||||||||||||
325 | ctx->buflen &= 127; | - | ||||||||||||
326 | - | |||||||||||||
327 | - | |||||||||||||
328 | memcpy (ctx->buffer, | - | ||||||||||||
329 | &((char *) ctx->buffer)[(left_over + add) & ~127], | - | ||||||||||||
330 | ctx->buflen); | - | ||||||||||||
331 | } never executed: end of block | 0 | ||||||||||||
332 | - | |||||||||||||
333 | buffer = (const char *) buffer + add; | - | ||||||||||||
334 | len -= add; | - | ||||||||||||
335 | } never executed: end of block | 0 | ||||||||||||
336 | - | |||||||||||||
337 | - | |||||||||||||
338 | if (len >= 128
| 2-10 | ||||||||||||
339 | { | - | ||||||||||||
340 | { | - | ||||||||||||
341 | sha512_process_block (buffer, len & ~127, ctx); | - | ||||||||||||
342 | buffer = (const char *) buffer + (len & ~127); | - | ||||||||||||
343 | len &= 127; | - | ||||||||||||
344 | } | - | ||||||||||||
345 | } executed 2 times by 2 tests: end of block Executed by:
| 2 | ||||||||||||
346 | - | |||||||||||||
347 | - | |||||||||||||
348 | if (len > 0
| 0-12 | ||||||||||||
349 | { | - | ||||||||||||
350 | size_t left_over = ctx->buflen; | - | ||||||||||||
351 | - | |||||||||||||
352 | memcpy (&((char *) ctx->buffer)[left_over], buffer, len); | - | ||||||||||||
353 | left_over += len; | - | ||||||||||||
354 | if (left_over >= 128
| 0-12 | ||||||||||||
355 | { | - | ||||||||||||
356 | sha512_process_block (ctx->buffer, 128, ctx); | - | ||||||||||||
357 | left_over -= 128; | - | ||||||||||||
358 | - | |||||||||||||
359 | - | |||||||||||||
360 | memcpy (ctx->buffer, &ctx->buffer[16], left_over); | - | ||||||||||||
361 | } never executed: end of block | 0 | ||||||||||||
362 | ctx->buflen = left_over; | - | ||||||||||||
363 | } executed 12 times by 2 tests: end of block Executed by:
| 12 | ||||||||||||
364 | } executed 12 times by 2 tests: end of block Executed by:
| 12 | ||||||||||||
365 | - | |||||||||||||
366 | - | |||||||||||||
367 | - | |||||||||||||
368 | - | |||||||||||||
369 | - | |||||||||||||
370 | static u64 const sha512_round_constants[80] = { | - | ||||||||||||
371 | ((u64) (((u64) (0x428a2f98) << 32) + (0xd728ae22))), ((u64) (((u64) (0x71374491) << 32) + (0x23ef65cd))), | - | ||||||||||||
372 | ((u64) (((u64) (0xb5c0fbcf) << 32) + (0xec4d3b2f))), ((u64) (((u64) (0xe9b5dba5) << 32) + (0x8189dbbc))), | - | ||||||||||||
373 | ((u64) (((u64) (0x3956c25b) << 32) + (0xf348b538))), ((u64) (((u64) (0x59f111f1) << 32) + (0xb605d019))), | - | ||||||||||||
374 | ((u64) (((u64) (0x923f82a4) << 32) + (0xaf194f9b))), ((u64) (((u64) (0xab1c5ed5) << 32) + (0xda6d8118))), | - | ||||||||||||
375 | ((u64) (((u64) (0xd807aa98) << 32) + (0xa3030242))), ((u64) (((u64) (0x12835b01) << 32) + (0x45706fbe))), | - | ||||||||||||
376 | ((u64) (((u64) (0x243185be) << 32) + (0x4ee4b28c))), ((u64) (((u64) (0x550c7dc3) << 32) + (0xd5ffb4e2))), | - | ||||||||||||
377 | ((u64) (((u64) (0x72be5d74) << 32) + (0xf27b896f))), ((u64) (((u64) (0x80deb1fe) << 32) + (0x3b1696b1))), | - | ||||||||||||
378 | ((u64) (((u64) (0x9bdc06a7) << 32) + (0x25c71235))), ((u64) (((u64) (0xc19bf174) << 32) + (0xcf692694))), | - | ||||||||||||
379 | ((u64) (((u64) (0xe49b69c1) << 32) + (0x9ef14ad2))), ((u64) (((u64) (0xefbe4786) << 32) + (0x384f25e3))), | - | ||||||||||||
380 | ((u64) (((u64) (0x0fc19dc6) << 32) + (0x8b8cd5b5))), ((u64) (((u64) (0x240ca1cc) << 32) + (0x77ac9c65))), | - | ||||||||||||
381 | ((u64) (((u64) (0x2de92c6f) << 32) + (0x592b0275))), ((u64) (((u64) (0x4a7484aa) << 32) + (0x6ea6e483))), | - | ||||||||||||
382 | ((u64) (((u64) (0x5cb0a9dc) << 32) + (0xbd41fbd4))), ((u64) (((u64) (0x76f988da) << 32) + (0x831153b5))), | - | ||||||||||||
383 | ((u64) (((u64) (0x983e5152) << 32) + (0xee66dfab))), ((u64) (((u64) (0xa831c66d) << 32) + (0x2db43210))), | - | ||||||||||||
384 | ((u64) (((u64) (0xb00327c8) << 32) + (0x98fb213f))), ((u64) (((u64) (0xbf597fc7) << 32) + (0xbeef0ee4))), | - | ||||||||||||
385 | ((u64) (((u64) (0xc6e00bf3) << 32) + (0x3da88fc2))), ((u64) (((u64) (0xd5a79147) << 32) + (0x930aa725))), | - | ||||||||||||
386 | ((u64) (((u64) (0x06ca6351) << 32) + (0xe003826f))), ((u64) (((u64) (0x14292967) << 32) + (0x0a0e6e70))), | - | ||||||||||||
387 | ((u64) (((u64) (0x27b70a85) << 32) + (0x46d22ffc))), ((u64) (((u64) (0x2e1b2138) << 32) + (0x5c26c926))), | - | ||||||||||||
388 | ((u64) (((u64) (0x4d2c6dfc) << 32) + (0x5ac42aed))), ((u64) (((u64) (0x53380d13) << 32) + (0x9d95b3df))), | - | ||||||||||||
389 | ((u64) (((u64) (0x650a7354) << 32) + (0x8baf63de))), ((u64) (((u64) (0x766a0abb) << 32) + (0x3c77b2a8))), | - | ||||||||||||
390 | ((u64) (((u64) (0x81c2c92e) << 32) + (0x47edaee6))), ((u64) (((u64) (0x92722c85) << 32) + (0x1482353b))), | - | ||||||||||||
391 | ((u64) (((u64) (0xa2bfe8a1) << 32) + (0x4cf10364))), ((u64) (((u64) (0xa81a664b) << 32) + (0xbc423001))), | - | ||||||||||||
392 | ((u64) (((u64) (0xc24b8b70) << 32) + (0xd0f89791))), ((u64) (((u64) (0xc76c51a3) << 32) + (0x0654be30))), | - | ||||||||||||
393 | ((u64) (((u64) (0xd192e819) << 32) + (0xd6ef5218))), ((u64) (((u64) (0xd6990624) << 32) + (0x5565a910))), | - | ||||||||||||
394 | ((u64) (((u64) (0xf40e3585) << 32) + (0x5771202a))), ((u64) (((u64) (0x106aa070) << 32) + (0x32bbd1b8))), | - | ||||||||||||
395 | ((u64) (((u64) (0x19a4c116) << 32) + (0xb8d2d0c8))), ((u64) (((u64) (0x1e376c08) << 32) + (0x5141ab53))), | - | ||||||||||||
396 | ((u64) (((u64) (0x2748774c) << 32) + (0xdf8eeb99))), ((u64) (((u64) (0x34b0bcb5) << 32) + (0xe19b48a8))), | - | ||||||||||||
397 | ((u64) (((u64) (0x391c0cb3) << 32) + (0xc5c95a63))), ((u64) (((u64) (0x4ed8aa4a) << 32) + (0xe3418acb))), | - | ||||||||||||
398 | ((u64) (((u64) (0x5b9cca4f) << 32) + (0x7763e373))), ((u64) (((u64) (0x682e6ff3) << 32) + (0xd6b2b8a3))), | - | ||||||||||||
399 | ((u64) (((u64) (0x748f82ee) << 32) + (0x5defb2fc))), ((u64) (((u64) (0x78a5636f) << 32) + (0x43172f60))), | - | ||||||||||||
400 | ((u64) (((u64) (0x84c87814) << 32) + (0xa1f0ab72))), ((u64) (((u64) (0x8cc70208) << 32) + (0x1a6439ec))), | - | ||||||||||||
401 | ((u64) (((u64) (0x90befffa) << 32) + (0x23631e28))), ((u64) (((u64) (0xa4506ceb) << 32) + (0xde82bde9))), | - | ||||||||||||
402 | ((u64) (((u64) (0xbef9a3f7) << 32) + (0xb2c67915))), ((u64) (((u64) (0xc67178f2) << 32) + (0xe372532b))), | - | ||||||||||||
403 | ((u64) (((u64) (0xca273ece) << 32) + (0xea26619c))), ((u64) (((u64) (0xd186b8c7) << 32) + (0x21c0c207))), | - | ||||||||||||
404 | ((u64) (((u64) (0xeada7dd6) << 32) + (0xcde0eb1e))), ((u64) (((u64) (0xf57d4f7f) << 32) + (0xee6ed178))), | - | ||||||||||||
405 | ((u64) (((u64) (0x06f067aa) << 32) + (0x72176fba))), ((u64) (((u64) (0x0a637dc5) << 32) + (0xa2c898a6))), | - | ||||||||||||
406 | ((u64) (((u64) (0x113f9804) << 32) + (0xbef90dae))), ((u64) (((u64) (0x1b710b35) << 32) + (0x131c471b))), | - | ||||||||||||
407 | ((u64) (((u64) (0x28db77f5) << 32) + (0x23047d84))), ((u64) (((u64) (0x32caab7b) << 32) + (0x40c72493))), | - | ||||||||||||
408 | ((u64) (((u64) (0x3c9ebe0a) << 32) + (0x15c9bebc))), ((u64) (((u64) (0x431d67c4) << 32) + (0x9c100d4c))), | - | ||||||||||||
409 | ((u64) (((u64) (0x4cc5d4be) << 32) + (0xcb3e42b6))), ((u64) (((u64) (0x597f299c) << 32) + (0xfc657e2a))), | - | ||||||||||||
410 | ((u64) (((u64) (0x5fcb6fab) << 32) + (0x3ad6faec))), ((u64) (((u64) (0x6c44198c) << 32) + (0x4a475817))), | - | ||||||||||||
411 | }; | - | ||||||||||||
412 | void | - | ||||||||||||
413 | sha512_process_block (const void *buffer, size_t len, struct sha512_ctx *ctx) | - | ||||||||||||
414 | { | - | ||||||||||||
415 | u64 const *words = buffer; | - | ||||||||||||
416 | u64 const *endp = words + len / sizeof (u64); | - | ||||||||||||
417 | u64 x[16]; | - | ||||||||||||
418 | u64 a = ctx->state[0]; | - | ||||||||||||
419 | u64 b = ctx->state[1]; | - | ||||||||||||
420 | u64 c = ctx->state[2]; | - | ||||||||||||
421 | u64 d = ctx->state[3]; | - | ||||||||||||
422 | u64 e = ctx->state[4]; | - | ||||||||||||
423 | u64 f = ctx->state[5]; | - | ||||||||||||
424 | u64 g = ctx->state[6]; | - | ||||||||||||
425 | u64 h = ctx->state[7]; | - | ||||||||||||
426 | u64 lolen = ((u64) (len)); | - | ||||||||||||
427 | - | |||||||||||||
428 | - | |||||||||||||
429 | - | |||||||||||||
430 | - | |||||||||||||
431 | ctx->total[0] = ((ctx->total[0]) + (lolen)); | - | ||||||||||||
432 | ctx->total[1] = ((ctx->total[1]) + (((((u64) (len >> 31 >> 31 >> 2))) + (((u64) (((ctx->total[0]) < (lolen)))))))) | - | ||||||||||||
433 | - | |||||||||||||
434 | ; | - | ||||||||||||
435 | while (words < endp
| 76-15640 | ||||||||||||
436 | { | - | ||||||||||||
437 | int t; | - | ||||||||||||
438 | - | |||||||||||||
439 | for (t = 0; t < 16
| 15640-250240 | ||||||||||||
440 | { | - | ||||||||||||
441 | x[t] = ((((((((*words) << (56))) | (((((*words) & (((u64) (0x0000ff00))))) << (40))))) | (((((((*words) & (((u64) (0x00ff0000))))) << (24))) | (((((*words) & (((u64) (0xff000000))))) << (8))))))) | (((((((((*words) >> (8))) & (((u64) (0xff000000))))) | (((((*words) >> (24))) & (((u64) (0x00ff0000))))))) | (((((((*words) >> (40))) & (((u64) (0x0000ff00))))) | (((*words) >> (56)))))))); | - | ||||||||||||
442 | words++; | - | ||||||||||||
443 | } executed 250240 times by 2 tests: end of block Executed by:
| 250240 | ||||||||||||
444 | - | |||||||||||||
445 | do { u64 t0 = ((((((((a) << (36))) | (((a) >> (64 - 36))))) ^ (((((((a) << (30))) | (((a) >> (64 - 30))))) ^ (((((a) << (25))) | (((a) >> (64 - 25))))))))) + (((((a) & (b))) | (((c) & (((a) | (b)))))))); u64 t1 = ((h) + (((((((((e) << (50))) | (((e) >> (64 - 50))))) ^ (((((((e) << (46))) | (((e) >> (64 - 46))))) ^ (((((e) << (23))) | (((e) >> (64 - 23))))))))) + (((((g) ^ (((e) & (((f) ^ (g))))))) + (((sha512_round_constants[0]) + (x[ 0])))))))); d = ((d) + (t1)); h = ((t0) + (t1)); } while (0); | - | ||||||||||||
446 | do { u64 t0 = ((((((((h) << (36))) | (((h) >> (64 - 36))))) ^ (((((((h) << (30))) | (((h) >> (64 - 30))))) ^ (((((h) << (25))) | (((h) >> (64 - 25))))))))) + (((((h) & (a))) | (((b) & (((h) | (a)))))))); u64 t1 = ((g) + (((((((((d) << (50))) | (((d) >> (64 - 50))))) ^ (((((((d) << (46))) | (((d) >> (64 - 46))))) ^ (((((d) << (23))) | (((d) >> (64 - 23))))))))) + (((((f) ^ (((d) & (((e) ^ (f))))))) + (((sha512_round_constants[1]) + (x[ 1])))))))); c = ((c) + (t1)); g = ((t0) + (t1)); } while (0); | - | ||||||||||||
447 | do { u64 t0 = ((((((((g) << (36))) | (((g) >> (64 - 36))))) ^ (((((((g) << (30))) | (((g) >> (64 - 30))))) ^ (((((g) << (25))) | (((g) >> (64 - 25))))))))) + (((((g) & (h))) | (((a) & (((g) | (h)))))))); u64 t1 = ((f) + (((((((((c) << (50))) | (((c) >> (64 - 50))))) ^ (((((((c) << (46))) | (((c) >> (64 - 46))))) ^ (((((c) << (23))) | (((c) >> (64 - 23))))))))) + (((((e) ^ (((c) & (((d) ^ (e))))))) + (((sha512_round_constants[2]) + (x[ 2])))))))); b = ((b) + (t1)); f = ((t0) + (t1)); } while (0); | - | ||||||||||||
448 | do { u64 t0 = ((((((((f) << (36))) | (((f) >> (64 - 36))))) ^ (((((((f) << (30))) | (((f) >> (64 - 30))))) ^ (((((f) << (25))) | (((f) >> (64 - 25))))))))) + (((((f) & (g))) | (((h) & (((f) | (g)))))))); u64 t1 = ((e) + (((((((((b) << (50))) | (((b) >> (64 - 50))))) ^ (((((((b) << (46))) | (((b) >> (64 - 46))))) ^ (((((b) << (23))) | (((b) >> (64 - 23))))))))) + (((((d) ^ (((b) & (((c) ^ (d))))))) + (((sha512_round_constants[3]) + (x[ 3])))))))); a = ((a) + (t1)); e = ((t0) + (t1)); } while (0); | - | ||||||||||||
449 | do { u64 t0 = ((((((((e) << (36))) | (((e) >> (64 - 36))))) ^ (((((((e) << (30))) | (((e) >> (64 - 30))))) ^ (((((e) << (25))) | (((e) >> (64 - 25))))))))) + (((((e) & (f))) | (((g) & (((e) | (f)))))))); u64 t1 = ((d) + (((((((((a) << (50))) | (((a) >> (64 - 50))))) ^ (((((((a) << (46))) | (((a) >> (64 - 46))))) ^ (((((a) << (23))) | (((a) >> (64 - 23))))))))) + (((((c) ^ (((a) & (((b) ^ (c))))))) + (((sha512_round_constants[4]) + (x[ 4])))))))); h = ((h) + (t1)); d = ((t0) + (t1)); } while (0); | - | ||||||||||||
450 | do { u64 t0 = ((((((((d) << (36))) | (((d) >> (64 - 36))))) ^ (((((((d) << (30))) | (((d) >> (64 - 30))))) ^ (((((d) << (25))) | (((d) >> (64 - 25))))))))) + (((((d) & (e))) | (((f) & (((d) | (e)))))))); u64 t1 = ((c) + (((((((((h) << (50))) | (((h) >> (64 - 50))))) ^ (((((((h) << (46))) | (((h) >> (64 - 46))))) ^ (((((h) << (23))) | (((h) >> (64 - 23))))))))) + (((((b) ^ (((h) & (((a) ^ (b))))))) + (((sha512_round_constants[5]) + (x[ 5])))))))); g = ((g) + (t1)); c = ((t0) + (t1)); } while (0); | - | ||||||||||||
451 | do { u64 t0 = ((((((((c) << (36))) | (((c) >> (64 - 36))))) ^ (((((((c) << (30))) | (((c) >> (64 - 30))))) ^ (((((c) << (25))) | (((c) >> (64 - 25))))))))) + (((((c) & (d))) | (((e) & (((c) | (d)))))))); u64 t1 = ((b) + (((((((((g) << (50))) | (((g) >> (64 - 50))))) ^ (((((((g) << (46))) | (((g) >> (64 - 46))))) ^ (((((g) << (23))) | (((g) >> (64 - 23))))))))) + (((((a) ^ (((g) & (((h) ^ (a))))))) + (((sha512_round_constants[6]) + (x[ 6])))))))); f = ((f) + (t1)); b = ((t0) + (t1)); } while (0); | - | ||||||||||||
452 | do { u64 t0 = ((((((((b) << (36))) | (((b) >> (64 - 36))))) ^ (((((((b) << (30))) | (((b) >> (64 - 30))))) ^ (((((b) << (25))) | (((b) >> (64 - 25))))))))) + (((((b) & (c))) | (((d) & (((b) | (c)))))))); u64 t1 = ((a) + (((((((((f) << (50))) | (((f) >> (64 - 50))))) ^ (((((((f) << (46))) | (((f) >> (64 - 46))))) ^ (((((f) << (23))) | (((f) >> (64 - 23))))))))) + (((((h) ^ (((f) & (((g) ^ (h))))))) + (((sha512_round_constants[7]) + (x[ 7])))))))); e = ((e) + (t1)); a = ((t0) + (t1)); } while (0); | - | ||||||||||||
453 | do { u64 t0 = ((((((((a) << (36))) | (((a) >> (64 - 36))))) ^ (((((((a) << (30))) | (((a) >> (64 - 30))))) ^ (((((a) << (25))) | (((a) >> (64 - 25))))))))) + (((((a) & (b))) | (((c) & (((a) | (b)))))))); u64 t1 = ((h) + (((((((((e) << (50))) | (((e) >> (64 - 50))))) ^ (((((((e) << (46))) | (((e) >> (64 - 46))))) ^ (((((e) << (23))) | (((e) >> (64 - 23))))))))) + (((((g) ^ (((e) & (((f) ^ (g))))))) + (((sha512_round_constants[8]) + (x[ 8])))))))); d = ((d) + (t1)); h = ((t0) + (t1)); } while (0); | - | ||||||||||||
454 | do { u64 t0 = ((((((((h) << (36))) | (((h) >> (64 - 36))))) ^ (((((((h) << (30))) | (((h) >> (64 - 30))))) ^ (((((h) << (25))) | (((h) >> (64 - 25))))))))) + (((((h) & (a))) | (((b) & (((h) | (a)))))))); u64 t1 = ((g) + (((((((((d) << (50))) | (((d) >> (64 - 50))))) ^ (((((((d) << (46))) | (((d) >> (64 - 46))))) ^ (((((d) << (23))) | (((d) >> (64 - 23))))))))) + (((((f) ^ (((d) & (((e) ^ (f))))))) + (((sha512_round_constants[9]) + (x[ 9])))))))); c = ((c) + (t1)); g = ((t0) + (t1)); } while (0); | - | ||||||||||||
455 | do { u64 t0 = ((((((((g) << (36))) | (((g) >> (64 - 36))))) ^ (((((((g) << (30))) | (((g) >> (64 - 30))))) ^ (((((g) << (25))) | (((g) >> (64 - 25))))))))) + (((((g) & (h))) | (((a) & (((g) | (h)))))))); u64 t1 = ((f) + (((((((((c) << (50))) | (((c) >> (64 - 50))))) ^ (((((((c) << (46))) | (((c) >> (64 - 46))))) ^ (((((c) << (23))) | (((c) >> (64 - 23))))))))) + (((((e) ^ (((c) & (((d) ^ (e))))))) + (((sha512_round_constants[10]) + (x[10])))))))); b = ((b) + (t1)); f = ((t0) + (t1)); } while (0); | - | ||||||||||||
456 | do { u64 t0 = ((((((((f) << (36))) | (((f) >> (64 - 36))))) ^ (((((((f) << (30))) | (((f) >> (64 - 30))))) ^ (((((f) << (25))) | (((f) >> (64 - 25))))))))) + (((((f) & (g))) | (((h) & (((f) | (g)))))))); u64 t1 = ((e) + (((((((((b) << (50))) | (((b) >> (64 - 50))))) ^ (((((((b) << (46))) | (((b) >> (64 - 46))))) ^ (((((b) << (23))) | (((b) >> (64 - 23))))))))) + (((((d) ^ (((b) & (((c) ^ (d))))))) + (((sha512_round_constants[11]) + (x[11])))))))); a = ((a) + (t1)); e = ((t0) + (t1)); } while (0); | - | ||||||||||||
457 | do { u64 t0 = ((((((((e) << (36))) | (((e) >> (64 - 36))))) ^ (((((((e) << (30))) | (((e) >> (64 - 30))))) ^ (((((e) << (25))) | (((e) >> (64 - 25))))))))) + (((((e) & (f))) | (((g) & (((e) | (f)))))))); u64 t1 = ((d) + (((((((((a) << (50))) | (((a) >> (64 - 50))))) ^ (((((((a) << (46))) | (((a) >> (64 - 46))))) ^ (((((a) << (23))) | (((a) >> (64 - 23))))))))) + (((((c) ^ (((a) & (((b) ^ (c))))))) + (((sha512_round_constants[12]) + (x[12])))))))); h = ((h) + (t1)); d = ((t0) + (t1)); } while (0); | - | ||||||||||||
458 | do { u64 t0 = ((((((((d) << (36))) | (((d) >> (64 - 36))))) ^ (((((((d) << (30))) | (((d) >> (64 - 30))))) ^ (((((d) << (25))) | (((d) >> (64 - 25))))))))) + (((((d) & (e))) | (((f) & (((d) | (e)))))))); u64 t1 = ((c) + (((((((((h) << (50))) | (((h) >> (64 - 50))))) ^ (((((((h) << (46))) | (((h) >> (64 - 46))))) ^ (((((h) << (23))) | (((h) >> (64 - 23))))))))) + (((((b) ^ (((h) & (((a) ^ (b))))))) + (((sha512_round_constants[13]) + (x[13])))))))); g = ((g) + (t1)); c = ((t0) + (t1)); } while (0); | - | ||||||||||||
459 | do { u64 t0 = ((((((((c) << (36))) | (((c) >> (64 - 36))))) ^ (((((((c) << (30))) | (((c) >> (64 - 30))))) ^ (((((c) << (25))) | (((c) >> (64 - 25))))))))) + (((((c) & (d))) | (((e) & (((c) | (d)))))))); u64 t1 = ((b) + (((((((((g) << (50))) | (((g) >> (64 - 50))))) ^ (((((((g) << (46))) | (((g) >> (64 - 46))))) ^ (((((g) << (23))) | (((g) >> (64 - 23))))))))) + (((((a) ^ (((g) & (((h) ^ (a))))))) + (((sha512_round_constants[14]) + (x[14])))))))); f = ((f) + (t1)); b = ((t0) + (t1)); } while (0); | - | ||||||||||||
460 | do { u64 t0 = ((((((((b) << (36))) | (((b) >> (64 - 36))))) ^ (((((((b) << (30))) | (((b) >> (64 - 30))))) ^ (((((b) << (25))) | (((b) >> (64 - 25))))))))) + (((((b) & (c))) | (((d) & (((b) | (c)))))))); u64 t1 = ((a) + (((((((((f) << (50))) | (((f) >> (64 - 50))))) ^ (((((((f) << (46))) | (((f) >> (64 - 46))))) ^ (((((f) << (23))) | (((f) >> (64 - 23))))))))) + (((((h) ^ (((f) & (((g) ^ (h))))))) + (((sha512_round_constants[15]) + (x[15])))))))); e = ((e) + (t1)); a = ((t0) + (t1)); } while (0); | - | ||||||||||||
461 | do { u64 t0 = ((((((((a) << (36))) | (((a) >> (64 - 36))))) ^ (((((((a) << (30))) | (((a) >> (64 - 30))))) ^ (((((a) << (25))) | (((a) >> (64 - 25))))))))) + (((((a) & (b))) | (((c) & (((a) | (b)))))))); u64 t1 = ((h) + (((((((((e) << (50))) | (((e) >> (64 - 50))))) ^ (((((((e) << (46))) | (((e) >> (64 - 46))))) ^ (((((e) << (23))) | (((e) >> (64 - 23))))))))) + (((((g) ^ (((e) & (((f) ^ (g))))))) + (((sha512_round_constants[16]) + ((x[(16) & 15] = ((x[(16) & 15]) + (((((((((x[((16) - 2) & 15]) << (45))) | (((x[((16) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((16) - 2) & 15]) << (3))) | (((x[((16) - 2) & 15]) >> (64 - 3))))) ^ (((x[((16) - 2) & 15]) >> (6))))))) + (((x[((16) - 7) & 15]) + (((((((x[((16) - 15) & 15]) << (63))) | (((x[((16) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((16) - 15) & 15]) << (56))) | (((x[((16) - 15) & 15]) >> (64 - 56))))) ^ (((x[((16) - 15) & 15]) >> (7))))))))))))))))))))); d = ((d) + (t1)); h = ((t0) + (t1)); } while (0); | - | ||||||||||||
462 | do { u64 t0 = ((((((((h) << (36))) | (((h) >> (64 - 36))))) ^ (((((((h) << (30))) | (((h) >> (64 - 30))))) ^ (((((h) << (25))) | (((h) >> (64 - 25))))))))) + (((((h) & (a))) | (((b) & (((h) | (a)))))))); u64 t1 = ((g) + (((((((((d) << (50))) | (((d) >> (64 - 50))))) ^ (((((((d) << (46))) | (((d) >> (64 - 46))))) ^ (((((d) << (23))) | (((d) >> (64 - 23))))))))) + (((((f) ^ (((d) & (((e) ^ (f))))))) + (((sha512_round_constants[17]) + ((x[(17) & 15] = ((x[(17) & 15]) + (((((((((x[((17) - 2) & 15]) << (45))) | (((x[((17) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((17) - 2) & 15]) << (3))) | (((x[((17) - 2) & 15]) >> (64 - 3))))) ^ (((x[((17) - 2) & 15]) >> (6))))))) + (((x[((17) - 7) & 15]) + (((((((x[((17) - 15) & 15]) << (63))) | (((x[((17) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((17) - 15) & 15]) << (56))) | (((x[((17) - 15) & 15]) >> (64 - 56))))) ^ (((x[((17) - 15) & 15]) >> (7))))))))))))))))))))); c = ((c) + (t1)); g = ((t0) + (t1)); } while (0); | - | ||||||||||||
463 | do { u64 t0 = ((((((((g) << (36))) | (((g) >> (64 - 36))))) ^ (((((((g) << (30))) | (((g) >> (64 - 30))))) ^ (((((g) << (25))) | (((g) >> (64 - 25))))))))) + (((((g) & (h))) | (((a) & (((g) | (h)))))))); u64 t1 = ((f) + (((((((((c) << (50))) | (((c) >> (64 - 50))))) ^ (((((((c) << (46))) | (((c) >> (64 - 46))))) ^ (((((c) << (23))) | (((c) >> (64 - 23))))))))) + (((((e) ^ (((c) & (((d) ^ (e))))))) + (((sha512_round_constants[18]) + ((x[(18) & 15] = ((x[(18) & 15]) + (((((((((x[((18) - 2) & 15]) << (45))) | (((x[((18) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((18) - 2) & 15]) << (3))) | (((x[((18) - 2) & 15]) >> (64 - 3))))) ^ (((x[((18) - 2) & 15]) >> (6))))))) + (((x[((18) - 7) & 15]) + (((((((x[((18) - 15) & 15]) << (63))) | (((x[((18) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((18) - 15) & 15]) << (56))) | (((x[((18) - 15) & 15]) >> (64 - 56))))) ^ (((x[((18) - 15) & 15]) >> (7))))))))))))))))))))); b = ((b) + (t1)); f = ((t0) + (t1)); } while (0); | - | ||||||||||||
464 | do { u64 t0 = ((((((((f) << (36))) | (((f) >> (64 - 36))))) ^ (((((((f) << (30))) | (((f) >> (64 - 30))))) ^ (((((f) << (25))) | (((f) >> (64 - 25))))))))) + (((((f) & (g))) | (((h) & (((f) | (g)))))))); u64 t1 = ((e) + (((((((((b) << (50))) | (((b) >> (64 - 50))))) ^ (((((((b) << (46))) | (((b) >> (64 - 46))))) ^ (((((b) << (23))) | (((b) >> (64 - 23))))))))) + (((((d) ^ (((b) & (((c) ^ (d))))))) + (((sha512_round_constants[19]) + ((x[(19) & 15] = ((x[(19) & 15]) + (((((((((x[((19) - 2) & 15]) << (45))) | (((x[((19) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((19) - 2) & 15]) << (3))) | (((x[((19) - 2) & 15]) >> (64 - 3))))) ^ (((x[((19) - 2) & 15]) >> (6))))))) + (((x[((19) - 7) & 15]) + (((((((x[((19) - 15) & 15]) << (63))) | (((x[((19) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((19) - 15) & 15]) << (56))) | (((x[((19) - 15) & 15]) >> (64 - 56))))) ^ (((x[((19) - 15) & 15]) >> (7))))))))))))))))))))); a = ((a) + (t1)); e = ((t0) + (t1)); } while (0); | - | ||||||||||||
465 | do { u64 t0 = ((((((((e) << (36))) | (((e) >> (64 - 36))))) ^ (((((((e) << (30))) | (((e) >> (64 - 30))))) ^ (((((e) << (25))) | (((e) >> (64 - 25))))))))) + (((((e) & (f))) | (((g) & (((e) | (f)))))))); u64 t1 = ((d) + (((((((((a) << (50))) | (((a) >> (64 - 50))))) ^ (((((((a) << (46))) | (((a) >> (64 - 46))))) ^ (((((a) << (23))) | (((a) >> (64 - 23))))))))) + (((((c) ^ (((a) & (((b) ^ (c))))))) + (((sha512_round_constants[20]) + ((x[(20) & 15] = ((x[(20) & 15]) + (((((((((x[((20) - 2) & 15]) << (45))) | (((x[((20) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((20) - 2) & 15]) << (3))) | (((x[((20) - 2) & 15]) >> (64 - 3))))) ^ (((x[((20) - 2) & 15]) >> (6))))))) + (((x[((20) - 7) & 15]) + (((((((x[((20) - 15) & 15]) << (63))) | (((x[((20) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((20) - 15) & 15]) << (56))) | (((x[((20) - 15) & 15]) >> (64 - 56))))) ^ (((x[((20) - 15) & 15]) >> (7))))))))))))))))))))); h = ((h) + (t1)); d = ((t0) + (t1)); } while (0); | - | ||||||||||||
466 | do { u64 t0 = ((((((((d) << (36))) | (((d) >> (64 - 36))))) ^ (((((((d) << (30))) | (((d) >> (64 - 30))))) ^ (((((d) << (25))) | (((d) >> (64 - 25))))))))) + (((((d) & (e))) | (((f) & (((d) | (e)))))))); u64 t1 = ((c) + (((((((((h) << (50))) | (((h) >> (64 - 50))))) ^ (((((((h) << (46))) | (((h) >> (64 - 46))))) ^ (((((h) << (23))) | (((h) >> (64 - 23))))))))) + (((((b) ^ (((h) & (((a) ^ (b))))))) + (((sha512_round_constants[21]) + ((x[(21) & 15] = ((x[(21) & 15]) + (((((((((x[((21) - 2) & 15]) << (45))) | (((x[((21) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((21) - 2) & 15]) << (3))) | (((x[((21) - 2) & 15]) >> (64 - 3))))) ^ (((x[((21) - 2) & 15]) >> (6))))))) + (((x[((21) - 7) & 15]) + (((((((x[((21) - 15) & 15]) << (63))) | (((x[((21) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((21) - 15) & 15]) << (56))) | (((x[((21) - 15) & 15]) >> (64 - 56))))) ^ (((x[((21) - 15) & 15]) >> (7))))))))))))))))))))); g = ((g) + (t1)); c = ((t0) + (t1)); } while (0); | - | ||||||||||||
467 | do { u64 t0 = ((((((((c) << (36))) | (((c) >> (64 - 36))))) ^ (((((((c) << (30))) | (((c) >> (64 - 30))))) ^ (((((c) << (25))) | (((c) >> (64 - 25))))))))) + (((((c) & (d))) | (((e) & (((c) | (d)))))))); u64 t1 = ((b) + (((((((((g) << (50))) | (((g) >> (64 - 50))))) ^ (((((((g) << (46))) | (((g) >> (64 - 46))))) ^ (((((g) << (23))) | (((g) >> (64 - 23))))))))) + (((((a) ^ (((g) & (((h) ^ (a))))))) + (((sha512_round_constants[22]) + ((x[(22) & 15] = ((x[(22) & 15]) + (((((((((x[((22) - 2) & 15]) << (45))) | (((x[((22) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((22) - 2) & 15]) << (3))) | (((x[((22) - 2) & 15]) >> (64 - 3))))) ^ (((x[((22) - 2) & 15]) >> (6))))))) + (((x[((22) - 7) & 15]) + (((((((x[((22) - 15) & 15]) << (63))) | (((x[((22) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((22) - 15) & 15]) << (56))) | (((x[((22) - 15) & 15]) >> (64 - 56))))) ^ (((x[((22) - 15) & 15]) >> (7))))))))))))))))))))); f = ((f) + (t1)); b = ((t0) + (t1)); } while (0); | - | ||||||||||||
468 | do { u64 t0 = ((((((((b) << (36))) | (((b) >> (64 - 36))))) ^ (((((((b) << (30))) | (((b) >> (64 - 30))))) ^ (((((b) << (25))) | (((b) >> (64 - 25))))))))) + (((((b) & (c))) | (((d) & (((b) | (c)))))))); u64 t1 = ((a) + (((((((((f) << (50))) | (((f) >> (64 - 50))))) ^ (((((((f) << (46))) | (((f) >> (64 - 46))))) ^ (((((f) << (23))) | (((f) >> (64 - 23))))))))) + (((((h) ^ (((f) & (((g) ^ (h))))))) + (((sha512_round_constants[23]) + ((x[(23) & 15] = ((x[(23) & 15]) + (((((((((x[((23) - 2) & 15]) << (45))) | (((x[((23) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((23) - 2) & 15]) << (3))) | (((x[((23) - 2) & 15]) >> (64 - 3))))) ^ (((x[((23) - 2) & 15]) >> (6))))))) + (((x[((23) - 7) & 15]) + (((((((x[((23) - 15) & 15]) << (63))) | (((x[((23) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((23) - 15) & 15]) << (56))) | (((x[((23) - 15) & 15]) >> (64 - 56))))) ^ (((x[((23) - 15) & 15]) >> (7))))))))))))))))))))); e = ((e) + (t1)); a = ((t0) + (t1)); } while (0); | - | ||||||||||||
469 | do { u64 t0 = ((((((((a) << (36))) | (((a) >> (64 - 36))))) ^ (((((((a) << (30))) | (((a) >> (64 - 30))))) ^ (((((a) << (25))) | (((a) >> (64 - 25))))))))) + (((((a) & (b))) | (((c) & (((a) | (b)))))))); u64 t1 = ((h) + (((((((((e) << (50))) | (((e) >> (64 - 50))))) ^ (((((((e) << (46))) | (((e) >> (64 - 46))))) ^ (((((e) << (23))) | (((e) >> (64 - 23))))))))) + (((((g) ^ (((e) & (((f) ^ (g))))))) + (((sha512_round_constants[24]) + ((x[(24) & 15] = ((x[(24) & 15]) + (((((((((x[((24) - 2) & 15]) << (45))) | (((x[((24) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((24) - 2) & 15]) << (3))) | (((x[((24) - 2) & 15]) >> (64 - 3))))) ^ (((x[((24) - 2) & 15]) >> (6))))))) + (((x[((24) - 7) & 15]) + (((((((x[((24) - 15) & 15]) << (63))) | (((x[((24) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((24) - 15) & 15]) << (56))) | (((x[((24) - 15) & 15]) >> (64 - 56))))) ^ (((x[((24) - 15) & 15]) >> (7))))))))))))))))))))); d = ((d) + (t1)); h = ((t0) + (t1)); } while (0); | - | ||||||||||||
470 | do { u64 t0 = ((((((((h) << (36))) | (((h) >> (64 - 36))))) ^ (((((((h) << (30))) | (((h) >> (64 - 30))))) ^ (((((h) << (25))) | (((h) >> (64 - 25))))))))) + (((((h) & (a))) | (((b) & (((h) | (a)))))))); u64 t1 = ((g) + (((((((((d) << (50))) | (((d) >> (64 - 50))))) ^ (((((((d) << (46))) | (((d) >> (64 - 46))))) ^ (((((d) << (23))) | (((d) >> (64 - 23))))))))) + (((((f) ^ (((d) & (((e) ^ (f))))))) + (((sha512_round_constants[25]) + ((x[(25) & 15] = ((x[(25) & 15]) + (((((((((x[((25) - 2) & 15]) << (45))) | (((x[((25) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((25) - 2) & 15]) << (3))) | (((x[((25) - 2) & 15]) >> (64 - 3))))) ^ (((x[((25) - 2) & 15]) >> (6))))))) + (((x[((25) - 7) & 15]) + (((((((x[((25) - 15) & 15]) << (63))) | (((x[((25) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((25) - 15) & 15]) << (56))) | (((x[((25) - 15) & 15]) >> (64 - 56))))) ^ (((x[((25) - 15) & 15]) >> (7))))))))))))))))))))); c = ((c) + (t1)); g = ((t0) + (t1)); } while (0); | - | ||||||||||||
471 | do { u64 t0 = ((((((((g) << (36))) | (((g) >> (64 - 36))))) ^ (((((((g) << (30))) | (((g) >> (64 - 30))))) ^ (((((g) << (25))) | (((g) >> (64 - 25))))))))) + (((((g) & (h))) | (((a) & (((g) | (h)))))))); u64 t1 = ((f) + (((((((((c) << (50))) | (((c) >> (64 - 50))))) ^ (((((((c) << (46))) | (((c) >> (64 - 46))))) ^ (((((c) << (23))) | (((c) >> (64 - 23))))))))) + (((((e) ^ (((c) & (((d) ^ (e))))))) + (((sha512_round_constants[26]) + ((x[(26) & 15] = ((x[(26) & 15]) + (((((((((x[((26) - 2) & 15]) << (45))) | (((x[((26) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((26) - 2) & 15]) << (3))) | (((x[((26) - 2) & 15]) >> (64 - 3))))) ^ (((x[((26) - 2) & 15]) >> (6))))))) + (((x[((26) - 7) & 15]) + (((((((x[((26) - 15) & 15]) << (63))) | (((x[((26) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((26) - 15) & 15]) << (56))) | (((x[((26) - 15) & 15]) >> (64 - 56))))) ^ (((x[((26) - 15) & 15]) >> (7))))))))))))))))))))); b = ((b) + (t1)); f = ((t0) + (t1)); } while (0); | - | ||||||||||||
472 | do { u64 t0 = ((((((((f) << (36))) | (((f) >> (64 - 36))))) ^ (((((((f) << (30))) | (((f) >> (64 - 30))))) ^ (((((f) << (25))) | (((f) >> (64 - 25))))))))) + (((((f) & (g))) | (((h) & (((f) | (g)))))))); u64 t1 = ((e) + (((((((((b) << (50))) | (((b) >> (64 - 50))))) ^ (((((((b) << (46))) | (((b) >> (64 - 46))))) ^ (((((b) << (23))) | (((b) >> (64 - 23))))))))) + (((((d) ^ (((b) & (((c) ^ (d))))))) + (((sha512_round_constants[27]) + ((x[(27) & 15] = ((x[(27) & 15]) + (((((((((x[((27) - 2) & 15]) << (45))) | (((x[((27) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((27) - 2) & 15]) << (3))) | (((x[((27) - 2) & 15]) >> (64 - 3))))) ^ (((x[((27) - 2) & 15]) >> (6))))))) + (((x[((27) - 7) & 15]) + (((((((x[((27) - 15) & 15]) << (63))) | (((x[((27) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((27) - 15) & 15]) << (56))) | (((x[((27) - 15) & 15]) >> (64 - 56))))) ^ (((x[((27) - 15) & 15]) >> (7))))))))))))))))))))); a = ((a) + (t1)); e = ((t0) + (t1)); } while (0); | - | ||||||||||||
473 | do { u64 t0 = ((((((((e) << (36))) | (((e) >> (64 - 36))))) ^ (((((((e) << (30))) | (((e) >> (64 - 30))))) ^ (((((e) << (25))) | (((e) >> (64 - 25))))))))) + (((((e) & (f))) | (((g) & (((e) | (f)))))))); u64 t1 = ((d) + (((((((((a) << (50))) | (((a) >> (64 - 50))))) ^ (((((((a) << (46))) | (((a) >> (64 - 46))))) ^ (((((a) << (23))) | (((a) >> (64 - 23))))))))) + (((((c) ^ (((a) & (((b) ^ (c))))))) + (((sha512_round_constants[28]) + ((x[(28) & 15] = ((x[(28) & 15]) + (((((((((x[((28) - 2) & 15]) << (45))) | (((x[((28) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((28) - 2) & 15]) << (3))) | (((x[((28) - 2) & 15]) >> (64 - 3))))) ^ (((x[((28) - 2) & 15]) >> (6))))))) + (((x[((28) - 7) & 15]) + (((((((x[((28) - 15) & 15]) << (63))) | (((x[((28) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((28) - 15) & 15]) << (56))) | (((x[((28) - 15) & 15]) >> (64 - 56))))) ^ (((x[((28) - 15) & 15]) >> (7))))))))))))))))))))); h = ((h) + (t1)); d = ((t0) + (t1)); } while (0); | - | ||||||||||||
474 | do { u64 t0 = ((((((((d) << (36))) | (((d) >> (64 - 36))))) ^ (((((((d) << (30))) | (((d) >> (64 - 30))))) ^ (((((d) << (25))) | (((d) >> (64 - 25))))))))) + (((((d) & (e))) | (((f) & (((d) | (e)))))))); u64 t1 = ((c) + (((((((((h) << (50))) | (((h) >> (64 - 50))))) ^ (((((((h) << (46))) | (((h) >> (64 - 46))))) ^ (((((h) << (23))) | (((h) >> (64 - 23))))))))) + (((((b) ^ (((h) & (((a) ^ (b))))))) + (((sha512_round_constants[29]) + ((x[(29) & 15] = ((x[(29) & 15]) + (((((((((x[((29) - 2) & 15]) << (45))) | (((x[((29) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((29) - 2) & 15]) << (3))) | (((x[((29) - 2) & 15]) >> (64 - 3))))) ^ (((x[((29) - 2) & 15]) >> (6))))))) + (((x[((29) - 7) & 15]) + (((((((x[((29) - 15) & 15]) << (63))) | (((x[((29) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((29) - 15) & 15]) << (56))) | (((x[((29) - 15) & 15]) >> (64 - 56))))) ^ (((x[((29) - 15) & 15]) >> (7))))))))))))))))))))); g = ((g) + (t1)); c = ((t0) + (t1)); } while (0); | - | ||||||||||||
475 | do { u64 t0 = ((((((((c) << (36))) | (((c) >> (64 - 36))))) ^ (((((((c) << (30))) | (((c) >> (64 - 30))))) ^ (((((c) << (25))) | (((c) >> (64 - 25))))))))) + (((((c) & (d))) | (((e) & (((c) | (d)))))))); u64 t1 = ((b) + (((((((((g) << (50))) | (((g) >> (64 - 50))))) ^ (((((((g) << (46))) | (((g) >> (64 - 46))))) ^ (((((g) << (23))) | (((g) >> (64 - 23))))))))) + (((((a) ^ (((g) & (((h) ^ (a))))))) + (((sha512_round_constants[30]) + ((x[(30) & 15] = ((x[(30) & 15]) + (((((((((x[((30) - 2) & 15]) << (45))) | (((x[((30) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((30) - 2) & 15]) << (3))) | (((x[((30) - 2) & 15]) >> (64 - 3))))) ^ (((x[((30) - 2) & 15]) >> (6))))))) + (((x[((30) - 7) & 15]) + (((((((x[((30) - 15) & 15]) << (63))) | (((x[((30) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((30) - 15) & 15]) << (56))) | (((x[((30) - 15) & 15]) >> (64 - 56))))) ^ (((x[((30) - 15) & 15]) >> (7))))))))))))))))))))); f = ((f) + (t1)); b = ((t0) + (t1)); } while (0); | - | ||||||||||||
476 | do { u64 t0 = ((((((((b) << (36))) | (((b) >> (64 - 36))))) ^ (((((((b) << (30))) | (((b) >> (64 - 30))))) ^ (((((b) << (25))) | (((b) >> (64 - 25))))))))) + (((((b) & (c))) | (((d) & (((b) | (c)))))))); u64 t1 = ((a) + (((((((((f) << (50))) | (((f) >> (64 - 50))))) ^ (((((((f) << (46))) | (((f) >> (64 - 46))))) ^ (((((f) << (23))) | (((f) >> (64 - 23))))))))) + (((((h) ^ (((f) & (((g) ^ (h))))))) + (((sha512_round_constants[31]) + ((x[(31) & 15] = ((x[(31) & 15]) + (((((((((x[((31) - 2) & 15]) << (45))) | (((x[((31) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((31) - 2) & 15]) << (3))) | (((x[((31) - 2) & 15]) >> (64 - 3))))) ^ (((x[((31) - 2) & 15]) >> (6))))))) + (((x[((31) - 7) & 15]) + (((((((x[((31) - 15) & 15]) << (63))) | (((x[((31) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((31) - 15) & 15]) << (56))) | (((x[((31) - 15) & 15]) >> (64 - 56))))) ^ (((x[((31) - 15) & 15]) >> (7))))))))))))))))))))); e = ((e) + (t1)); a = ((t0) + (t1)); } while (0); | - | ||||||||||||
477 | do { u64 t0 = ((((((((a) << (36))) | (((a) >> (64 - 36))))) ^ (((((((a) << (30))) | (((a) >> (64 - 30))))) ^ (((((a) << (25))) | (((a) >> (64 - 25))))))))) + (((((a) & (b))) | (((c) & (((a) | (b)))))))); u64 t1 = ((h) + (((((((((e) << (50))) | (((e) >> (64 - 50))))) ^ (((((((e) << (46))) | (((e) >> (64 - 46))))) ^ (((((e) << (23))) | (((e) >> (64 - 23))))))))) + (((((g) ^ (((e) & (((f) ^ (g))))))) + (((sha512_round_constants[32]) + ((x[(32) & 15] = ((x[(32) & 15]) + (((((((((x[((32) - 2) & 15]) << (45))) | (((x[((32) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((32) - 2) & 15]) << (3))) | (((x[((32) - 2) & 15]) >> (64 - 3))))) ^ (((x[((32) - 2) & 15]) >> (6))))))) + (((x[((32) - 7) & 15]) + (((((((x[((32) - 15) & 15]) << (63))) | (((x[((32) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((32) - 15) & 15]) << (56))) | (((x[((32) - 15) & 15]) >> (64 - 56))))) ^ (((x[((32) - 15) & 15]) >> (7))))))))))))))))))))); d = ((d) + (t1)); h = ((t0) + (t1)); } while (0); | - | ||||||||||||
478 | do { u64 t0 = ((((((((h) << (36))) | (((h) >> (64 - 36))))) ^ (((((((h) << (30))) | (((h) >> (64 - 30))))) ^ (((((h) << (25))) | (((h) >> (64 - 25))))))))) + (((((h) & (a))) | (((b) & (((h) | (a)))))))); u64 t1 = ((g) + (((((((((d) << (50))) | (((d) >> (64 - 50))))) ^ (((((((d) << (46))) | (((d) >> (64 - 46))))) ^ (((((d) << (23))) | (((d) >> (64 - 23))))))))) + (((((f) ^ (((d) & (((e) ^ (f))))))) + (((sha512_round_constants[33]) + ((x[(33) & 15] = ((x[(33) & 15]) + (((((((((x[((33) - 2) & 15]) << (45))) | (((x[((33) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((33) - 2) & 15]) << (3))) | (((x[((33) - 2) & 15]) >> (64 - 3))))) ^ (((x[((33) - 2) & 15]) >> (6))))))) + (((x[((33) - 7) & 15]) + (((((((x[((33) - 15) & 15]) << (63))) | (((x[((33) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((33) - 15) & 15]) << (56))) | (((x[((33) - 15) & 15]) >> (64 - 56))))) ^ (((x[((33) - 15) & 15]) >> (7))))))))))))))))))))); c = ((c) + (t1)); g = ((t0) + (t1)); } while (0); | - | ||||||||||||
479 | do { u64 t0 = ((((((((g) << (36))) | (((g) >> (64 - 36))))) ^ (((((((g) << (30))) | (((g) >> (64 - 30))))) ^ (((((g) << (25))) | (((g) >> (64 - 25))))))))) + (((((g) & (h))) | (((a) & (((g) | (h)))))))); u64 t1 = ((f) + (((((((((c) << (50))) | (((c) >> (64 - 50))))) ^ (((((((c) << (46))) | (((c) >> (64 - 46))))) ^ (((((c) << (23))) | (((c) >> (64 - 23))))))))) + (((((e) ^ (((c) & (((d) ^ (e))))))) + (((sha512_round_constants[34]) + ((x[(34) & 15] = ((x[(34) & 15]) + (((((((((x[((34) - 2) & 15]) << (45))) | (((x[((34) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((34) - 2) & 15]) << (3))) | (((x[((34) - 2) & 15]) >> (64 - 3))))) ^ (((x[((34) - 2) & 15]) >> (6))))))) + (((x[((34) - 7) & 15]) + (((((((x[((34) - 15) & 15]) << (63))) | (((x[((34) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((34) - 15) & 15]) << (56))) | (((x[((34) - 15) & 15]) >> (64 - 56))))) ^ (((x[((34) - 15) & 15]) >> (7))))))))))))))))))))); b = ((b) + (t1)); f = ((t0) + (t1)); } while (0); | - | ||||||||||||
480 | do { u64 t0 = ((((((((f) << (36))) | (((f) >> (64 - 36))))) ^ (((((((f) << (30))) | (((f) >> (64 - 30))))) ^ (((((f) << (25))) | (((f) >> (64 - 25))))))))) + (((((f) & (g))) | (((h) & (((f) | (g)))))))); u64 t1 = ((e) + (((((((((b) << (50))) | (((b) >> (64 - 50))))) ^ (((((((b) << (46))) | (((b) >> (64 - 46))))) ^ (((((b) << (23))) | (((b) >> (64 - 23))))))))) + (((((d) ^ (((b) & (((c) ^ (d))))))) + (((sha512_round_constants[35]) + ((x[(35) & 15] = ((x[(35) & 15]) + (((((((((x[((35) - 2) & 15]) << (45))) | (((x[((35) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((35) - 2) & 15]) << (3))) | (((x[((35) - 2) & 15]) >> (64 - 3))))) ^ (((x[((35) - 2) & 15]) >> (6))))))) + (((x[((35) - 7) & 15]) + (((((((x[((35) - 15) & 15]) << (63))) | (((x[((35) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((35) - 15) & 15]) << (56))) | (((x[((35) - 15) & 15]) >> (64 - 56))))) ^ (((x[((35) - 15) & 15]) >> (7))))))))))))))))))))); a = ((a) + (t1)); e = ((t0) + (t1)); } while (0); | - | ||||||||||||
481 | do { u64 t0 = ((((((((e) << (36))) | (((e) >> (64 - 36))))) ^ (((((((e) << (30))) | (((e) >> (64 - 30))))) ^ (((((e) << (25))) | (((e) >> (64 - 25))))))))) + (((((e) & (f))) | (((g) & (((e) | (f)))))))); u64 t1 = ((d) + (((((((((a) << (50))) | (((a) >> (64 - 50))))) ^ (((((((a) << (46))) | (((a) >> (64 - 46))))) ^ (((((a) << (23))) | (((a) >> (64 - 23))))))))) + (((((c) ^ (((a) & (((b) ^ (c))))))) + (((sha512_round_constants[36]) + ((x[(36) & 15] = ((x[(36) & 15]) + (((((((((x[((36) - 2) & 15]) << (45))) | (((x[((36) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((36) - 2) & 15]) << (3))) | (((x[((36) - 2) & 15]) >> (64 - 3))))) ^ (((x[((36) - 2) & 15]) >> (6))))))) + (((x[((36) - 7) & 15]) + (((((((x[((36) - 15) & 15]) << (63))) | (((x[((36) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((36) - 15) & 15]) << (56))) | (((x[((36) - 15) & 15]) >> (64 - 56))))) ^ (((x[((36) - 15) & 15]) >> (7))))))))))))))))))))); h = ((h) + (t1)); d = ((t0) + (t1)); } while (0); | - | ||||||||||||
482 | do { u64 t0 = ((((((((d) << (36))) | (((d) >> (64 - 36))))) ^ (((((((d) << (30))) | (((d) >> (64 - 30))))) ^ (((((d) << (25))) | (((d) >> (64 - 25))))))))) + (((((d) & (e))) | (((f) & (((d) | (e)))))))); u64 t1 = ((c) + (((((((((h) << (50))) | (((h) >> (64 - 50))))) ^ (((((((h) << (46))) | (((h) >> (64 - 46))))) ^ (((((h) << (23))) | (((h) >> (64 - 23))))))))) + (((((b) ^ (((h) & (((a) ^ (b))))))) + (((sha512_round_constants[37]) + ((x[(37) & 15] = ((x[(37) & 15]) + (((((((((x[((37) - 2) & 15]) << (45))) | (((x[((37) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((37) - 2) & 15]) << (3))) | (((x[((37) - 2) & 15]) >> (64 - 3))))) ^ (((x[((37) - 2) & 15]) >> (6))))))) + (((x[((37) - 7) & 15]) + (((((((x[((37) - 15) & 15]) << (63))) | (((x[((37) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((37) - 15) & 15]) << (56))) | (((x[((37) - 15) & 15]) >> (64 - 56))))) ^ (((x[((37) - 15) & 15]) >> (7))))))))))))))))))))); g = ((g) + (t1)); c = ((t0) + (t1)); } while (0); | - | ||||||||||||
483 | do { u64 t0 = ((((((((c) << (36))) | (((c) >> (64 - 36))))) ^ (((((((c) << (30))) | (((c) >> (64 - 30))))) ^ (((((c) << (25))) | (((c) >> (64 - 25))))))))) + (((((c) & (d))) | (((e) & (((c) | (d)))))))); u64 t1 = ((b) + (((((((((g) << (50))) | (((g) >> (64 - 50))))) ^ (((((((g) << (46))) | (((g) >> (64 - 46))))) ^ (((((g) << (23))) | (((g) >> (64 - 23))))))))) + (((((a) ^ (((g) & (((h) ^ (a))))))) + (((sha512_round_constants[38]) + ((x[(38) & 15] = ((x[(38) & 15]) + (((((((((x[((38) - 2) & 15]) << (45))) | (((x[((38) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((38) - 2) & 15]) << (3))) | (((x[((38) - 2) & 15]) >> (64 - 3))))) ^ (((x[((38) - 2) & 15]) >> (6))))))) + (((x[((38) - 7) & 15]) + (((((((x[((38) - 15) & 15]) << (63))) | (((x[((38) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((38) - 15) & 15]) << (56))) | (((x[((38) - 15) & 15]) >> (64 - 56))))) ^ (((x[((38) - 15) & 15]) >> (7))))))))))))))))))))); f = ((f) + (t1)); b = ((t0) + (t1)); } while (0); | - | ||||||||||||
484 | do { u64 t0 = ((((((((b) << (36))) | (((b) >> (64 - 36))))) ^ (((((((b) << (30))) | (((b) >> (64 - 30))))) ^ (((((b) << (25))) | (((b) >> (64 - 25))))))))) + (((((b) & (c))) | (((d) & (((b) | (c)))))))); u64 t1 = ((a) + (((((((((f) << (50))) | (((f) >> (64 - 50))))) ^ (((((((f) << (46))) | (((f) >> (64 - 46))))) ^ (((((f) << (23))) | (((f) >> (64 - 23))))))))) + (((((h) ^ (((f) & (((g) ^ (h))))))) + (((sha512_round_constants[39]) + ((x[(39) & 15] = ((x[(39) & 15]) + (((((((((x[((39) - 2) & 15]) << (45))) | (((x[((39) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((39) - 2) & 15]) << (3))) | (((x[((39) - 2) & 15]) >> (64 - 3))))) ^ (((x[((39) - 2) & 15]) >> (6))))))) + (((x[((39) - 7) & 15]) + (((((((x[((39) - 15) & 15]) << (63))) | (((x[((39) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((39) - 15) & 15]) << (56))) | (((x[((39) - 15) & 15]) >> (64 - 56))))) ^ (((x[((39) - 15) & 15]) >> (7))))))))))))))))))))); e = ((e) + (t1)); a = ((t0) + (t1)); } while (0); | - | ||||||||||||
485 | do { u64 t0 = ((((((((a) << (36))) | (((a) >> (64 - 36))))) ^ (((((((a) << (30))) | (((a) >> (64 - 30))))) ^ (((((a) << (25))) | (((a) >> (64 - 25))))))))) + (((((a) & (b))) | (((c) & (((a) | (b)))))))); u64 t1 = ((h) + (((((((((e) << (50))) | (((e) >> (64 - 50))))) ^ (((((((e) << (46))) | (((e) >> (64 - 46))))) ^ (((((e) << (23))) | (((e) >> (64 - 23))))))))) + (((((g) ^ (((e) & (((f) ^ (g))))))) + (((sha512_round_constants[40]) + ((x[(40) & 15] = ((x[(40) & 15]) + (((((((((x[((40) - 2) & 15]) << (45))) | (((x[((40) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((40) - 2) & 15]) << (3))) | (((x[((40) - 2) & 15]) >> (64 - 3))))) ^ (((x[((40) - 2) & 15]) >> (6))))))) + (((x[((40) - 7) & 15]) + (((((((x[((40) - 15) & 15]) << (63))) | (((x[((40) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((40) - 15) & 15]) << (56))) | (((x[((40) - 15) & 15]) >> (64 - 56))))) ^ (((x[((40) - 15) & 15]) >> (7))))))))))))))))))))); d = ((d) + (t1)); h = ((t0) + (t1)); } while (0); | - | ||||||||||||
486 | do { u64 t0 = ((((((((h) << (36))) | (((h) >> (64 - 36))))) ^ (((((((h) << (30))) | (((h) >> (64 - 30))))) ^ (((((h) << (25))) | (((h) >> (64 - 25))))))))) + (((((h) & (a))) | (((b) & (((h) | (a)))))))); u64 t1 = ((g) + (((((((((d) << (50))) | (((d) >> (64 - 50))))) ^ (((((((d) << (46))) | (((d) >> (64 - 46))))) ^ (((((d) << (23))) | (((d) >> (64 - 23))))))))) + (((((f) ^ (((d) & (((e) ^ (f))))))) + (((sha512_round_constants[41]) + ((x[(41) & 15] = ((x[(41) & 15]) + (((((((((x[((41) - 2) & 15]) << (45))) | (((x[((41) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((41) - 2) & 15]) << (3))) | (((x[((41) - 2) & 15]) >> (64 - 3))))) ^ (((x[((41) - 2) & 15]) >> (6))))))) + (((x[((41) - 7) & 15]) + (((((((x[((41) - 15) & 15]) << (63))) | (((x[((41) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((41) - 15) & 15]) << (56))) | (((x[((41) - 15) & 15]) >> (64 - 56))))) ^ (((x[((41) - 15) & 15]) >> (7))))))))))))))))))))); c = ((c) + (t1)); g = ((t0) + (t1)); } while (0); | - | ||||||||||||
487 | do { u64 t0 = ((((((((g) << (36))) | (((g) >> (64 - 36))))) ^ (((((((g) << (30))) | (((g) >> (64 - 30))))) ^ (((((g) << (25))) | (((g) >> (64 - 25))))))))) + (((((g) & (h))) | (((a) & (((g) | (h)))))))); u64 t1 = ((f) + (((((((((c) << (50))) | (((c) >> (64 - 50))))) ^ (((((((c) << (46))) | (((c) >> (64 - 46))))) ^ (((((c) << (23))) | (((c) >> (64 - 23))))))))) + (((((e) ^ (((c) & (((d) ^ (e))))))) + (((sha512_round_constants[42]) + ((x[(42) & 15] = ((x[(42) & 15]) + (((((((((x[((42) - 2) & 15]) << (45))) | (((x[((42) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((42) - 2) & 15]) << (3))) | (((x[((42) - 2) & 15]) >> (64 - 3))))) ^ (((x[((42) - 2) & 15]) >> (6))))))) + (((x[((42) - 7) & 15]) + (((((((x[((42) - 15) & 15]) << (63))) | (((x[((42) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((42) - 15) & 15]) << (56))) | (((x[((42) - 15) & 15]) >> (64 - 56))))) ^ (((x[((42) - 15) & 15]) >> (7))))))))))))))))))))); b = ((b) + (t1)); f = ((t0) + (t1)); } while (0); | - | ||||||||||||
488 | do { u64 t0 = ((((((((f) << (36))) | (((f) >> (64 - 36))))) ^ (((((((f) << (30))) | (((f) >> (64 - 30))))) ^ (((((f) << (25))) | (((f) >> (64 - 25))))))))) + (((((f) & (g))) | (((h) & (((f) | (g)))))))); u64 t1 = ((e) + (((((((((b) << (50))) | (((b) >> (64 - 50))))) ^ (((((((b) << (46))) | (((b) >> (64 - 46))))) ^ (((((b) << (23))) | (((b) >> (64 - 23))))))))) + (((((d) ^ (((b) & (((c) ^ (d))))))) + (((sha512_round_constants[43]) + ((x[(43) & 15] = ((x[(43) & 15]) + (((((((((x[((43) - 2) & 15]) << (45))) | (((x[((43) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((43) - 2) & 15]) << (3))) | (((x[((43) - 2) & 15]) >> (64 - 3))))) ^ (((x[((43) - 2) & 15]) >> (6))))))) + (((x[((43) - 7) & 15]) + (((((((x[((43) - 15) & 15]) << (63))) | (((x[((43) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((43) - 15) & 15]) << (56))) | (((x[((43) - 15) & 15]) >> (64 - 56))))) ^ (((x[((43) - 15) & 15]) >> (7))))))))))))))))))))); a = ((a) + (t1)); e = ((t0) + (t1)); } while (0); | - | ||||||||||||
489 | do { u64 t0 = ((((((((e) << (36))) | (((e) >> (64 - 36))))) ^ (((((((e) << (30))) | (((e) >> (64 - 30))))) ^ (((((e) << (25))) | (((e) >> (64 - 25))))))))) + (((((e) & (f))) | (((g) & (((e) | (f)))))))); u64 t1 = ((d) + (((((((((a) << (50))) | (((a) >> (64 - 50))))) ^ (((((((a) << (46))) | (((a) >> (64 - 46))))) ^ (((((a) << (23))) | (((a) >> (64 - 23))))))))) + (((((c) ^ (((a) & (((b) ^ (c))))))) + (((sha512_round_constants[44]) + ((x[(44) & 15] = ((x[(44) & 15]) + (((((((((x[((44) - 2) & 15]) << (45))) | (((x[((44) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((44) - 2) & 15]) << (3))) | (((x[((44) - 2) & 15]) >> (64 - 3))))) ^ (((x[((44) - 2) & 15]) >> (6))))))) + (((x[((44) - 7) & 15]) + (((((((x[((44) - 15) & 15]) << (63))) | (((x[((44) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((44) - 15) & 15]) << (56))) | (((x[((44) - 15) & 15]) >> (64 - 56))))) ^ (((x[((44) - 15) & 15]) >> (7))))))))))))))))))))); h = ((h) + (t1)); d = ((t0) + (t1)); } while (0); | - | ||||||||||||
490 | do { u64 t0 = ((((((((d) << (36))) | (((d) >> (64 - 36))))) ^ (((((((d) << (30))) | (((d) >> (64 - 30))))) ^ (((((d) << (25))) | (((d) >> (64 - 25))))))))) + (((((d) & (e))) | (((f) & (((d) | (e)))))))); u64 t1 = ((c) + (((((((((h) << (50))) | (((h) >> (64 - 50))))) ^ (((((((h) << (46))) | (((h) >> (64 - 46))))) ^ (((((h) << (23))) | (((h) >> (64 - 23))))))))) + (((((b) ^ (((h) & (((a) ^ (b))))))) + (((sha512_round_constants[45]) + ((x[(45) & 15] = ((x[(45) & 15]) + (((((((((x[((45) - 2) & 15]) << (45))) | (((x[((45) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((45) - 2) & 15]) << (3))) | (((x[((45) - 2) & 15]) >> (64 - 3))))) ^ (((x[((45) - 2) & 15]) >> (6))))))) + (((x[((45) - 7) & 15]) + (((((((x[((45) - 15) & 15]) << (63))) | (((x[((45) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((45) - 15) & 15]) << (56))) | (((x[((45) - 15) & 15]) >> (64 - 56))))) ^ (((x[((45) - 15) & 15]) >> (7))))))))))))))))))))); g = ((g) + (t1)); c = ((t0) + (t1)); } while (0); | - | ||||||||||||
491 | do { u64 t0 = ((((((((c) << (36))) | (((c) >> (64 - 36))))) ^ (((((((c) << (30))) | (((c) >> (64 - 30))))) ^ (((((c) << (25))) | (((c) >> (64 - 25))))))))) + (((((c) & (d))) | (((e) & (((c) | (d)))))))); u64 t1 = ((b) + (((((((((g) << (50))) | (((g) >> (64 - 50))))) ^ (((((((g) << (46))) | (((g) >> (64 - 46))))) ^ (((((g) << (23))) | (((g) >> (64 - 23))))))))) + (((((a) ^ (((g) & (((h) ^ (a))))))) + (((sha512_round_constants[46]) + ((x[(46) & 15] = ((x[(46) & 15]) + (((((((((x[((46) - 2) & 15]) << (45))) | (((x[((46) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((46) - 2) & 15]) << (3))) | (((x[((46) - 2) & 15]) >> (64 - 3))))) ^ (((x[((46) - 2) & 15]) >> (6))))))) + (((x[((46) - 7) & 15]) + (((((((x[((46) - 15) & 15]) << (63))) | (((x[((46) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((46) - 15) & 15]) << (56))) | (((x[((46) - 15) & 15]) >> (64 - 56))))) ^ (((x[((46) - 15) & 15]) >> (7))))))))))))))))))))); f = ((f) + (t1)); b = ((t0) + (t1)); } while (0); | - | ||||||||||||
492 | do { u64 t0 = ((((((((b) << (36))) | (((b) >> (64 - 36))))) ^ (((((((b) << (30))) | (((b) >> (64 - 30))))) ^ (((((b) << (25))) | (((b) >> (64 - 25))))))))) + (((((b) & (c))) | (((d) & (((b) | (c)))))))); u64 t1 = ((a) + (((((((((f) << (50))) | (((f) >> (64 - 50))))) ^ (((((((f) << (46))) | (((f) >> (64 - 46))))) ^ (((((f) << (23))) | (((f) >> (64 - 23))))))))) + (((((h) ^ (((f) & (((g) ^ (h))))))) + (((sha512_round_constants[47]) + ((x[(47) & 15] = ((x[(47) & 15]) + (((((((((x[((47) - 2) & 15]) << (45))) | (((x[((47) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((47) - 2) & 15]) << (3))) | (((x[((47) - 2) & 15]) >> (64 - 3))))) ^ (((x[((47) - 2) & 15]) >> (6))))))) + (((x[((47) - 7) & 15]) + (((((((x[((47) - 15) & 15]) << (63))) | (((x[((47) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((47) - 15) & 15]) << (56))) | (((x[((47) - 15) & 15]) >> (64 - 56))))) ^ (((x[((47) - 15) & 15]) >> (7))))))))))))))))))))); e = ((e) + (t1)); a = ((t0) + (t1)); } while (0); | - | ||||||||||||
493 | do { u64 t0 = ((((((((a) << (36))) | (((a) >> (64 - 36))))) ^ (((((((a) << (30))) | (((a) >> (64 - 30))))) ^ (((((a) << (25))) | (((a) >> (64 - 25))))))))) + (((((a) & (b))) | (((c) & (((a) | (b)))))))); u64 t1 = ((h) + (((((((((e) << (50))) | (((e) >> (64 - 50))))) ^ (((((((e) << (46))) | (((e) >> (64 - 46))))) ^ (((((e) << (23))) | (((e) >> (64 - 23))))))))) + (((((g) ^ (((e) & (((f) ^ (g))))))) + (((sha512_round_constants[48]) + ((x[(48) & 15] = ((x[(48) & 15]) + (((((((((x[((48) - 2) & 15]) << (45))) | (((x[((48) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((48) - 2) & 15]) << (3))) | (((x[((48) - 2) & 15]) >> (64 - 3))))) ^ (((x[((48) - 2) & 15]) >> (6))))))) + (((x[((48) - 7) & 15]) + (((((((x[((48) - 15) & 15]) << (63))) | (((x[((48) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((48) - 15) & 15]) << (56))) | (((x[((48) - 15) & 15]) >> (64 - 56))))) ^ (((x[((48) - 15) & 15]) >> (7))))))))))))))))))))); d = ((d) + (t1)); h = ((t0) + (t1)); } while (0); | - | ||||||||||||
494 | do { u64 t0 = ((((((((h) << (36))) | (((h) >> (64 - 36))))) ^ (((((((h) << (30))) | (((h) >> (64 - 30))))) ^ (((((h) << (25))) | (((h) >> (64 - 25))))))))) + (((((h) & (a))) | (((b) & (((h) | (a)))))))); u64 t1 = ((g) + (((((((((d) << (50))) | (((d) >> (64 - 50))))) ^ (((((((d) << (46))) | (((d) >> (64 - 46))))) ^ (((((d) << (23))) | (((d) >> (64 - 23))))))))) + (((((f) ^ (((d) & (((e) ^ (f))))))) + (((sha512_round_constants[49]) + ((x[(49) & 15] = ((x[(49) & 15]) + (((((((((x[((49) - 2) & 15]) << (45))) | (((x[((49) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((49) - 2) & 15]) << (3))) | (((x[((49) - 2) & 15]) >> (64 - 3))))) ^ (((x[((49) - 2) & 15]) >> (6))))))) + (((x[((49) - 7) & 15]) + (((((((x[((49) - 15) & 15]) << (63))) | (((x[((49) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((49) - 15) & 15]) << (56))) | (((x[((49) - 15) & 15]) >> (64 - 56))))) ^ (((x[((49) - 15) & 15]) >> (7))))))))))))))))))))); c = ((c) + (t1)); g = ((t0) + (t1)); } while (0); | - | ||||||||||||
495 | do { u64 t0 = ((((((((g) << (36))) | (((g) >> (64 - 36))))) ^ (((((((g) << (30))) | (((g) >> (64 - 30))))) ^ (((((g) << (25))) | (((g) >> (64 - 25))))))))) + (((((g) & (h))) | (((a) & (((g) | (h)))))))); u64 t1 = ((f) + (((((((((c) << (50))) | (((c) >> (64 - 50))))) ^ (((((((c) << (46))) | (((c) >> (64 - 46))))) ^ (((((c) << (23))) | (((c) >> (64 - 23))))))))) + (((((e) ^ (((c) & (((d) ^ (e))))))) + (((sha512_round_constants[50]) + ((x[(50) & 15] = ((x[(50) & 15]) + (((((((((x[((50) - 2) & 15]) << (45))) | (((x[((50) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((50) - 2) & 15]) << (3))) | (((x[((50) - 2) & 15]) >> (64 - 3))))) ^ (((x[((50) - 2) & 15]) >> (6))))))) + (((x[((50) - 7) & 15]) + (((((((x[((50) - 15) & 15]) << (63))) | (((x[((50) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((50) - 15) & 15]) << (56))) | (((x[((50) - 15) & 15]) >> (64 - 56))))) ^ (((x[((50) - 15) & 15]) >> (7))))))))))))))))))))); b = ((b) + (t1)); f = ((t0) + (t1)); } while (0); | - | ||||||||||||
496 | do { u64 t0 = ((((((((f) << (36))) | (((f) >> (64 - 36))))) ^ (((((((f) << (30))) | (((f) >> (64 - 30))))) ^ (((((f) << (25))) | (((f) >> (64 - 25))))))))) + (((((f) & (g))) | (((h) & (((f) | (g)))))))); u64 t1 = ((e) + (((((((((b) << (50))) | (((b) >> (64 - 50))))) ^ (((((((b) << (46))) | (((b) >> (64 - 46))))) ^ (((((b) << (23))) | (((b) >> (64 - 23))))))))) + (((((d) ^ (((b) & (((c) ^ (d))))))) + (((sha512_round_constants[51]) + ((x[(51) & 15] = ((x[(51) & 15]) + (((((((((x[((51) - 2) & 15]) << (45))) | (((x[((51) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((51) - 2) & 15]) << (3))) | (((x[((51) - 2) & 15]) >> (64 - 3))))) ^ (((x[((51) - 2) & 15]) >> (6))))))) + (((x[((51) - 7) & 15]) + (((((((x[((51) - 15) & 15]) << (63))) | (((x[((51) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((51) - 15) & 15]) << (56))) | (((x[((51) - 15) & 15]) >> (64 - 56))))) ^ (((x[((51) - 15) & 15]) >> (7))))))))))))))))))))); a = ((a) + (t1)); e = ((t0) + (t1)); } while (0); | - | ||||||||||||
497 | do { u64 t0 = ((((((((e) << (36))) | (((e) >> (64 - 36))))) ^ (((((((e) << (30))) | (((e) >> (64 - 30))))) ^ (((((e) << (25))) | (((e) >> (64 - 25))))))))) + (((((e) & (f))) | (((g) & (((e) | (f)))))))); u64 t1 = ((d) + (((((((((a) << (50))) | (((a) >> (64 - 50))))) ^ (((((((a) << (46))) | (((a) >> (64 - 46))))) ^ (((((a) << (23))) | (((a) >> (64 - 23))))))))) + (((((c) ^ (((a) & (((b) ^ (c))))))) + (((sha512_round_constants[52]) + ((x[(52) & 15] = ((x[(52) & 15]) + (((((((((x[((52) - 2) & 15]) << (45))) | (((x[((52) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((52) - 2) & 15]) << (3))) | (((x[((52) - 2) & 15]) >> (64 - 3))))) ^ (((x[((52) - 2) & 15]) >> (6))))))) + (((x[((52) - 7) & 15]) + (((((((x[((52) - 15) & 15]) << (63))) | (((x[((52) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((52) - 15) & 15]) << (56))) | (((x[((52) - 15) & 15]) >> (64 - 56))))) ^ (((x[((52) - 15) & 15]) >> (7))))))))))))))))))))); h = ((h) + (t1)); d = ((t0) + (t1)); } while (0); | - | ||||||||||||
498 | do { u64 t0 = ((((((((d) << (36))) | (((d) >> (64 - 36))))) ^ (((((((d) << (30))) | (((d) >> (64 - 30))))) ^ (((((d) << (25))) | (((d) >> (64 - 25))))))))) + (((((d) & (e))) | (((f) & (((d) | (e)))))))); u64 t1 = ((c) + (((((((((h) << (50))) | (((h) >> (64 - 50))))) ^ (((((((h) << (46))) | (((h) >> (64 - 46))))) ^ (((((h) << (23))) | (((h) >> (64 - 23))))))))) + (((((b) ^ (((h) & (((a) ^ (b))))))) + (((sha512_round_constants[53]) + ((x[(53) & 15] = ((x[(53) & 15]) + (((((((((x[((53) - 2) & 15]) << (45))) | (((x[((53) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((53) - 2) & 15]) << (3))) | (((x[((53) - 2) & 15]) >> (64 - 3))))) ^ (((x[((53) - 2) & 15]) >> (6))))))) + (((x[((53) - 7) & 15]) + (((((((x[((53) - 15) & 15]) << (63))) | (((x[((53) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((53) - 15) & 15]) << (56))) | (((x[((53) - 15) & 15]) >> (64 - 56))))) ^ (((x[((53) - 15) & 15]) >> (7))))))))))))))))))))); g = ((g) + (t1)); c = ((t0) + (t1)); } while (0); | - | ||||||||||||
499 | do { u64 t0 = ((((((((c) << (36))) | (((c) >> (64 - 36))))) ^ (((((((c) << (30))) | (((c) >> (64 - 30))))) ^ (((((c) << (25))) | (((c) >> (64 - 25))))))))) + (((((c) & (d))) | (((e) & (((c) | (d)))))))); u64 t1 = ((b) + (((((((((g) << (50))) | (((g) >> (64 - 50))))) ^ (((((((g) << (46))) | (((g) >> (64 - 46))))) ^ (((((g) << (23))) | (((g) >> (64 - 23))))))))) + (((((a) ^ (((g) & (((h) ^ (a))))))) + (((sha512_round_constants[54]) + ((x[(54) & 15] = ((x[(54) & 15]) + (((((((((x[((54) - 2) & 15]) << (45))) | (((x[((54) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((54) - 2) & 15]) << (3))) | (((x[((54) - 2) & 15]) >> (64 - 3))))) ^ (((x[((54) - 2) & 15]) >> (6))))))) + (((x[((54) - 7) & 15]) + (((((((x[((54) - 15) & 15]) << (63))) | (((x[((54) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((54) - 15) & 15]) << (56))) | (((x[((54) - 15) & 15]) >> (64 - 56))))) ^ (((x[((54) - 15) & 15]) >> (7))))))))))))))))))))); f = ((f) + (t1)); b = ((t0) + (t1)); } while (0); | - | ||||||||||||
500 | do { u64 t0 = ((((((((b) << (36))) | (((b) >> (64 - 36))))) ^ (((((((b) << (30))) | (((b) >> (64 - 30))))) ^ (((((b) << (25))) | (((b) >> (64 - 25))))))))) + (((((b) & (c))) | (((d) & (((b) | (c)))))))); u64 t1 = ((a) + (((((((((f) << (50))) | (((f) >> (64 - 50))))) ^ (((((((f) << (46))) | (((f) >> (64 - 46))))) ^ (((((f) << (23))) | (((f) >> (64 - 23))))))))) + (((((h) ^ (((f) & (((g) ^ (h))))))) + (((sha512_round_constants[55]) + ((x[(55) & 15] = ((x[(55) & 15]) + (((((((((x[((55) - 2) & 15]) << (45))) | (((x[((55) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((55) - 2) & 15]) << (3))) | (((x[((55) - 2) & 15]) >> (64 - 3))))) ^ (((x[((55) - 2) & 15]) >> (6))))))) + (((x[((55) - 7) & 15]) + (((((((x[((55) - 15) & 15]) << (63))) | (((x[((55) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((55) - 15) & 15]) << (56))) | (((x[((55) - 15) & 15]) >> (64 - 56))))) ^ (((x[((55) - 15) & 15]) >> (7))))))))))))))))))))); e = ((e) + (t1)); a = ((t0) + (t1)); } while (0); | - | ||||||||||||
501 | do { u64 t0 = ((((((((a) << (36))) | (((a) >> (64 - 36))))) ^ (((((((a) << (30))) | (((a) >> (64 - 30))))) ^ (((((a) << (25))) | (((a) >> (64 - 25))))))))) + (((((a) & (b))) | (((c) & (((a) | (b)))))))); u64 t1 = ((h) + (((((((((e) << (50))) | (((e) >> (64 - 50))))) ^ (((((((e) << (46))) | (((e) >> (64 - 46))))) ^ (((((e) << (23))) | (((e) >> (64 - 23))))))))) + (((((g) ^ (((e) & (((f) ^ (g))))))) + (((sha512_round_constants[56]) + ((x[(56) & 15] = ((x[(56) & 15]) + (((((((((x[((56) - 2) & 15]) << (45))) | (((x[((56) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((56) - 2) & 15]) << (3))) | (((x[((56) - 2) & 15]) >> (64 - 3))))) ^ (((x[((56) - 2) & 15]) >> (6))))))) + (((x[((56) - 7) & 15]) + (((((((x[((56) - 15) & 15]) << (63))) | (((x[((56) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((56) - 15) & 15]) << (56))) | (((x[((56) - 15) & 15]) >> (64 - 56))))) ^ (((x[((56) - 15) & 15]) >> (7))))))))))))))))))))); d = ((d) + (t1)); h = ((t0) + (t1)); } while (0); | - | ||||||||||||
502 | do { u64 t0 = ((((((((h) << (36))) | (((h) >> (64 - 36))))) ^ (((((((h) << (30))) | (((h) >> (64 - 30))))) ^ (((((h) << (25))) | (((h) >> (64 - 25))))))))) + (((((h) & (a))) | (((b) & (((h) | (a)))))))); u64 t1 = ((g) + (((((((((d) << (50))) | (((d) >> (64 - 50))))) ^ (((((((d) << (46))) | (((d) >> (64 - 46))))) ^ (((((d) << (23))) | (((d) >> (64 - 23))))))))) + (((((f) ^ (((d) & (((e) ^ (f))))))) + (((sha512_round_constants[57]) + ((x[(57) & 15] = ((x[(57) & 15]) + (((((((((x[((57) - 2) & 15]) << (45))) | (((x[((57) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((57) - 2) & 15]) << (3))) | (((x[((57) - 2) & 15]) >> (64 - 3))))) ^ (((x[((57) - 2) & 15]) >> (6))))))) + (((x[((57) - 7) & 15]) + (((((((x[((57) - 15) & 15]) << (63))) | (((x[((57) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((57) - 15) & 15]) << (56))) | (((x[((57) - 15) & 15]) >> (64 - 56))))) ^ (((x[((57) - 15) & 15]) >> (7))))))))))))))))))))); c = ((c) + (t1)); g = ((t0) + (t1)); } while (0); | - | ||||||||||||
503 | do { u64 t0 = ((((((((g) << (36))) | (((g) >> (64 - 36))))) ^ (((((((g) << (30))) | (((g) >> (64 - 30))))) ^ (((((g) << (25))) | (((g) >> (64 - 25))))))))) + (((((g) & (h))) | (((a) & (((g) | (h)))))))); u64 t1 = ((f) + (((((((((c) << (50))) | (((c) >> (64 - 50))))) ^ (((((((c) << (46))) | (((c) >> (64 - 46))))) ^ (((((c) << (23))) | (((c) >> (64 - 23))))))))) + (((((e) ^ (((c) & (((d) ^ (e))))))) + (((sha512_round_constants[58]) + ((x[(58) & 15] = ((x[(58) & 15]) + (((((((((x[((58) - 2) & 15]) << (45))) | (((x[((58) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((58) - 2) & 15]) << (3))) | (((x[((58) - 2) & 15]) >> (64 - 3))))) ^ (((x[((58) - 2) & 15]) >> (6))))))) + (((x[((58) - 7) & 15]) + (((((((x[((58) - 15) & 15]) << (63))) | (((x[((58) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((58) - 15) & 15]) << (56))) | (((x[((58) - 15) & 15]) >> (64 - 56))))) ^ (((x[((58) - 15) & 15]) >> (7))))))))))))))))))))); b = ((b) + (t1)); f = ((t0) + (t1)); } while (0); | - | ||||||||||||
504 | do { u64 t0 = ((((((((f) << (36))) | (((f) >> (64 - 36))))) ^ (((((((f) << (30))) | (((f) >> (64 - 30))))) ^ (((((f) << (25))) | (((f) >> (64 - 25))))))))) + (((((f) & (g))) | (((h) & (((f) | (g)))))))); u64 t1 = ((e) + (((((((((b) << (50))) | (((b) >> (64 - 50))))) ^ (((((((b) << (46))) | (((b) >> (64 - 46))))) ^ (((((b) << (23))) | (((b) >> (64 - 23))))))))) + (((((d) ^ (((b) & (((c) ^ (d))))))) + (((sha512_round_constants[59]) + ((x[(59) & 15] = ((x[(59) & 15]) + (((((((((x[((59) - 2) & 15]) << (45))) | (((x[((59) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((59) - 2) & 15]) << (3))) | (((x[((59) - 2) & 15]) >> (64 - 3))))) ^ (((x[((59) - 2) & 15]) >> (6))))))) + (((x[((59) - 7) & 15]) + (((((((x[((59) - 15) & 15]) << (63))) | (((x[((59) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((59) - 15) & 15]) << (56))) | (((x[((59) - 15) & 15]) >> (64 - 56))))) ^ (((x[((59) - 15) & 15]) >> (7))))))))))))))))))))); a = ((a) + (t1)); e = ((t0) + (t1)); } while (0); | - | ||||||||||||
505 | do { u64 t0 = ((((((((e) << (36))) | (((e) >> (64 - 36))))) ^ (((((((e) << (30))) | (((e) >> (64 - 30))))) ^ (((((e) << (25))) | (((e) >> (64 - 25))))))))) + (((((e) & (f))) | (((g) & (((e) | (f)))))))); u64 t1 = ((d) + (((((((((a) << (50))) | (((a) >> (64 - 50))))) ^ (((((((a) << (46))) | (((a) >> (64 - 46))))) ^ (((((a) << (23))) | (((a) >> (64 - 23))))))))) + (((((c) ^ (((a) & (((b) ^ (c))))))) + (((sha512_round_constants[60]) + ((x[(60) & 15] = ((x[(60) & 15]) + (((((((((x[((60) - 2) & 15]) << (45))) | (((x[((60) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((60) - 2) & 15]) << (3))) | (((x[((60) - 2) & 15]) >> (64 - 3))))) ^ (((x[((60) - 2) & 15]) >> (6))))))) + (((x[((60) - 7) & 15]) + (((((((x[((60) - 15) & 15]) << (63))) | (((x[((60) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((60) - 15) & 15]) << (56))) | (((x[((60) - 15) & 15]) >> (64 - 56))))) ^ (((x[((60) - 15) & 15]) >> (7))))))))))))))))))))); h = ((h) + (t1)); d = ((t0) + (t1)); } while (0); | - | ||||||||||||
506 | do { u64 t0 = ((((((((d) << (36))) | (((d) >> (64 - 36))))) ^ (((((((d) << (30))) | (((d) >> (64 - 30))))) ^ (((((d) << (25))) | (((d) >> (64 - 25))))))))) + (((((d) & (e))) | (((f) & (((d) | (e)))))))); u64 t1 = ((c) + (((((((((h) << (50))) | (((h) >> (64 - 50))))) ^ (((((((h) << (46))) | (((h) >> (64 - 46))))) ^ (((((h) << (23))) | (((h) >> (64 - 23))))))))) + (((((b) ^ (((h) & (((a) ^ (b))))))) + (((sha512_round_constants[61]) + ((x[(61) & 15] = ((x[(61) & 15]) + (((((((((x[((61) - 2) & 15]) << (45))) | (((x[((61) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((61) - 2) & 15]) << (3))) | (((x[((61) - 2) & 15]) >> (64 - 3))))) ^ (((x[((61) - 2) & 15]) >> (6))))))) + (((x[((61) - 7) & 15]) + (((((((x[((61) - 15) & 15]) << (63))) | (((x[((61) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((61) - 15) & 15]) << (56))) | (((x[((61) - 15) & 15]) >> (64 - 56))))) ^ (((x[((61) - 15) & 15]) >> (7))))))))))))))))))))); g = ((g) + (t1)); c = ((t0) + (t1)); } while (0); | - | ||||||||||||
507 | do { u64 t0 = ((((((((c) << (36))) | (((c) >> (64 - 36))))) ^ (((((((c) << (30))) | (((c) >> (64 - 30))))) ^ (((((c) << (25))) | (((c) >> (64 - 25))))))))) + (((((c) & (d))) | (((e) & (((c) | (d)))))))); u64 t1 = ((b) + (((((((((g) << (50))) | (((g) >> (64 - 50))))) ^ (((((((g) << (46))) | (((g) >> (64 - 46))))) ^ (((((g) << (23))) | (((g) >> (64 - 23))))))))) + (((((a) ^ (((g) & (((h) ^ (a))))))) + (((sha512_round_constants[62]) + ((x[(62) & 15] = ((x[(62) & 15]) + (((((((((x[((62) - 2) & 15]) << (45))) | (((x[((62) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((62) - 2) & 15]) << (3))) | (((x[((62) - 2) & 15]) >> (64 - 3))))) ^ (((x[((62) - 2) & 15]) >> (6))))))) + (((x[((62) - 7) & 15]) + (((((((x[((62) - 15) & 15]) << (63))) | (((x[((62) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((62) - 15) & 15]) << (56))) | (((x[((62) - 15) & 15]) >> (64 - 56))))) ^ (((x[((62) - 15) & 15]) >> (7))))))))))))))))))))); f = ((f) + (t1)); b = ((t0) + (t1)); } while (0); | - | ||||||||||||
508 | do { u64 t0 = ((((((((b) << (36))) | (((b) >> (64 - 36))))) ^ (((((((b) << (30))) | (((b) >> (64 - 30))))) ^ (((((b) << (25))) | (((b) >> (64 - 25))))))))) + (((((b) & (c))) | (((d) & (((b) | (c)))))))); u64 t1 = ((a) + (((((((((f) << (50))) | (((f) >> (64 - 50))))) ^ (((((((f) << (46))) | (((f) >> (64 - 46))))) ^ (((((f) << (23))) | (((f) >> (64 - 23))))))))) + (((((h) ^ (((f) & (((g) ^ (h))))))) + (((sha512_round_constants[63]) + ((x[(63) & 15] = ((x[(63) & 15]) + (((((((((x[((63) - 2) & 15]) << (45))) | (((x[((63) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((63) - 2) & 15]) << (3))) | (((x[((63) - 2) & 15]) >> (64 - 3))))) ^ (((x[((63) - 2) & 15]) >> (6))))))) + (((x[((63) - 7) & 15]) + (((((((x[((63) - 15) & 15]) << (63))) | (((x[((63) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((63) - 15) & 15]) << (56))) | (((x[((63) - 15) & 15]) >> (64 - 56))))) ^ (((x[((63) - 15) & 15]) >> (7))))))))))))))))))))); e = ((e) + (t1)); a = ((t0) + (t1)); } while (0); | - | ||||||||||||
509 | do { u64 t0 = ((((((((a) << (36))) | (((a) >> (64 - 36))))) ^ (((((((a) << (30))) | (((a) >> (64 - 30))))) ^ (((((a) << (25))) | (((a) >> (64 - 25))))))))) + (((((a) & (b))) | (((c) & (((a) | (b)))))))); u64 t1 = ((h) + (((((((((e) << (50))) | (((e) >> (64 - 50))))) ^ (((((((e) << (46))) | (((e) >> (64 - 46))))) ^ (((((e) << (23))) | (((e) >> (64 - 23))))))))) + (((((g) ^ (((e) & (((f) ^ (g))))))) + (((sha512_round_constants[64]) + ((x[(64) & 15] = ((x[(64) & 15]) + (((((((((x[((64) - 2) & 15]) << (45))) | (((x[((64) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((64) - 2) & 15]) << (3))) | (((x[((64) - 2) & 15]) >> (64 - 3))))) ^ (((x[((64) - 2) & 15]) >> (6))))))) + (((x[((64) - 7) & 15]) + (((((((x[((64) - 15) & 15]) << (63))) | (((x[((64) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((64) - 15) & 15]) << (56))) | (((x[((64) - 15) & 15]) >> (64 - 56))))) ^ (((x[((64) - 15) & 15]) >> (7))))))))))))))))))))); d = ((d) + (t1)); h = ((t0) + (t1)); } while (0); | - | ||||||||||||
510 | do { u64 t0 = ((((((((h) << (36))) | (((h) >> (64 - 36))))) ^ (((((((h) << (30))) | (((h) >> (64 - 30))))) ^ (((((h) << (25))) | (((h) >> (64 - 25))))))))) + (((((h) & (a))) | (((b) & (((h) | (a)))))))); u64 t1 = ((g) + (((((((((d) << (50))) | (((d) >> (64 - 50))))) ^ (((((((d) << (46))) | (((d) >> (64 - 46))))) ^ (((((d) << (23))) | (((d) >> (64 - 23))))))))) + (((((f) ^ (((d) & (((e) ^ (f))))))) + (((sha512_round_constants[65]) + ((x[(65) & 15] = ((x[(65) & 15]) + (((((((((x[((65) - 2) & 15]) << (45))) | (((x[((65) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((65) - 2) & 15]) << (3))) | (((x[((65) - 2) & 15]) >> (64 - 3))))) ^ (((x[((65) - 2) & 15]) >> (6))))))) + (((x[((65) - 7) & 15]) + (((((((x[((65) - 15) & 15]) << (63))) | (((x[((65) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((65) - 15) & 15]) << (56))) | (((x[((65) - 15) & 15]) >> (64 - 56))))) ^ (((x[((65) - 15) & 15]) >> (7))))))))))))))))))))); c = ((c) + (t1)); g = ((t0) + (t1)); } while (0); | - | ||||||||||||
511 | do { u64 t0 = ((((((((g) << (36))) | (((g) >> (64 - 36))))) ^ (((((((g) << (30))) | (((g) >> (64 - 30))))) ^ (((((g) << (25))) | (((g) >> (64 - 25))))))))) + (((((g) & (h))) | (((a) & (((g) | (h)))))))); u64 t1 = ((f) + (((((((((c) << (50))) | (((c) >> (64 - 50))))) ^ (((((((c) << (46))) | (((c) >> (64 - 46))))) ^ (((((c) << (23))) | (((c) >> (64 - 23))))))))) + (((((e) ^ (((c) & (((d) ^ (e))))))) + (((sha512_round_constants[66]) + ((x[(66) & 15] = ((x[(66) & 15]) + (((((((((x[((66) - 2) & 15]) << (45))) | (((x[((66) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((66) - 2) & 15]) << (3))) | (((x[((66) - 2) & 15]) >> (64 - 3))))) ^ (((x[((66) - 2) & 15]) >> (6))))))) + (((x[((66) - 7) & 15]) + (((((((x[((66) - 15) & 15]) << (63))) | (((x[((66) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((66) - 15) & 15]) << (56))) | (((x[((66) - 15) & 15]) >> (64 - 56))))) ^ (((x[((66) - 15) & 15]) >> (7))))))))))))))))))))); b = ((b) + (t1)); f = ((t0) + (t1)); } while (0); | - | ||||||||||||
512 | do { u64 t0 = ((((((((f) << (36))) | (((f) >> (64 - 36))))) ^ (((((((f) << (30))) | (((f) >> (64 - 30))))) ^ (((((f) << (25))) | (((f) >> (64 - 25))))))))) + (((((f) & (g))) | (((h) & (((f) | (g)))))))); u64 t1 = ((e) + (((((((((b) << (50))) | (((b) >> (64 - 50))))) ^ (((((((b) << (46))) | (((b) >> (64 - 46))))) ^ (((((b) << (23))) | (((b) >> (64 - 23))))))))) + (((((d) ^ (((b) & (((c) ^ (d))))))) + (((sha512_round_constants[67]) + ((x[(67) & 15] = ((x[(67) & 15]) + (((((((((x[((67) - 2) & 15]) << (45))) | (((x[((67) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((67) - 2) & 15]) << (3))) | (((x[((67) - 2) & 15]) >> (64 - 3))))) ^ (((x[((67) - 2) & 15]) >> (6))))))) + (((x[((67) - 7) & 15]) + (((((((x[((67) - 15) & 15]) << (63))) | (((x[((67) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((67) - 15) & 15]) << (56))) | (((x[((67) - 15) & 15]) >> (64 - 56))))) ^ (((x[((67) - 15) & 15]) >> (7))))))))))))))))))))); a = ((a) + (t1)); e = ((t0) + (t1)); } while (0); | - | ||||||||||||
513 | do { u64 t0 = ((((((((e) << (36))) | (((e) >> (64 - 36))))) ^ (((((((e) << (30))) | (((e) >> (64 - 30))))) ^ (((((e) << (25))) | (((e) >> (64 - 25))))))))) + (((((e) & (f))) | (((g) & (((e) | (f)))))))); u64 t1 = ((d) + (((((((((a) << (50))) | (((a) >> (64 - 50))))) ^ (((((((a) << (46))) | (((a) >> (64 - 46))))) ^ (((((a) << (23))) | (((a) >> (64 - 23))))))))) + (((((c) ^ (((a) & (((b) ^ (c))))))) + (((sha512_round_constants[68]) + ((x[(68) & 15] = ((x[(68) & 15]) + (((((((((x[((68) - 2) & 15]) << (45))) | (((x[((68) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((68) - 2) & 15]) << (3))) | (((x[((68) - 2) & 15]) >> (64 - 3))))) ^ (((x[((68) - 2) & 15]) >> (6))))))) + (((x[((68) - 7) & 15]) + (((((((x[((68) - 15) & 15]) << (63))) | (((x[((68) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((68) - 15) & 15]) << (56))) | (((x[((68) - 15) & 15]) >> (64 - 56))))) ^ (((x[((68) - 15) & 15]) >> (7))))))))))))))))))))); h = ((h) + (t1)); d = ((t0) + (t1)); } while (0); | - | ||||||||||||
514 | do { u64 t0 = ((((((((d) << (36))) | (((d) >> (64 - 36))))) ^ (((((((d) << (30))) | (((d) >> (64 - 30))))) ^ (((((d) << (25))) | (((d) >> (64 - 25))))))))) + (((((d) & (e))) | (((f) & (((d) | (e)))))))); u64 t1 = ((c) + (((((((((h) << (50))) | (((h) >> (64 - 50))))) ^ (((((((h) << (46))) | (((h) >> (64 - 46))))) ^ (((((h) << (23))) | (((h) >> (64 - 23))))))))) + (((((b) ^ (((h) & (((a) ^ (b))))))) + (((sha512_round_constants[69]) + ((x[(69) & 15] = ((x[(69) & 15]) + (((((((((x[((69) - 2) & 15]) << (45))) | (((x[((69) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((69) - 2) & 15]) << (3))) | (((x[((69) - 2) & 15]) >> (64 - 3))))) ^ (((x[((69) - 2) & 15]) >> (6))))))) + (((x[((69) - 7) & 15]) + (((((((x[((69) - 15) & 15]) << (63))) | (((x[((69) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((69) - 15) & 15]) << (56))) | (((x[((69) - 15) & 15]) >> (64 - 56))))) ^ (((x[((69) - 15) & 15]) >> (7))))))))))))))))))))); g = ((g) + (t1)); c = ((t0) + (t1)); } while (0); | - | ||||||||||||
515 | do { u64 t0 = ((((((((c) << (36))) | (((c) >> (64 - 36))))) ^ (((((((c) << (30))) | (((c) >> (64 - 30))))) ^ (((((c) << (25))) | (((c) >> (64 - 25))))))))) + (((((c) & (d))) | (((e) & (((c) | (d)))))))); u64 t1 = ((b) + (((((((((g) << (50))) | (((g) >> (64 - 50))))) ^ (((((((g) << (46))) | (((g) >> (64 - 46))))) ^ (((((g) << (23))) | (((g) >> (64 - 23))))))))) + (((((a) ^ (((g) & (((h) ^ (a))))))) + (((sha512_round_constants[70]) + ((x[(70) & 15] = ((x[(70) & 15]) + (((((((((x[((70) - 2) & 15]) << (45))) | (((x[((70) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((70) - 2) & 15]) << (3))) | (((x[((70) - 2) & 15]) >> (64 - 3))))) ^ (((x[((70) - 2) & 15]) >> (6))))))) + (((x[((70) - 7) & 15]) + (((((((x[((70) - 15) & 15]) << (63))) | (((x[((70) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((70) - 15) & 15]) << (56))) | (((x[((70) - 15) & 15]) >> (64 - 56))))) ^ (((x[((70) - 15) & 15]) >> (7))))))))))))))))))))); f = ((f) + (t1)); b = ((t0) + (t1)); } while (0); | - | ||||||||||||
516 | do { u64 t0 = ((((((((b) << (36))) | (((b) >> (64 - 36))))) ^ (((((((b) << (30))) | (((b) >> (64 - 30))))) ^ (((((b) << (25))) | (((b) >> (64 - 25))))))))) + (((((b) & (c))) | (((d) & (((b) | (c)))))))); u64 t1 = ((a) + (((((((((f) << (50))) | (((f) >> (64 - 50))))) ^ (((((((f) << (46))) | (((f) >> (64 - 46))))) ^ (((((f) << (23))) | (((f) >> (64 - 23))))))))) + (((((h) ^ (((f) & (((g) ^ (h))))))) + (((sha512_round_constants[71]) + ((x[(71) & 15] = ((x[(71) & 15]) + (((((((((x[((71) - 2) & 15]) << (45))) | (((x[((71) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((71) - 2) & 15]) << (3))) | (((x[((71) - 2) & 15]) >> (64 - 3))))) ^ (((x[((71) - 2) & 15]) >> (6))))))) + (((x[((71) - 7) & 15]) + (((((((x[((71) - 15) & 15]) << (63))) | (((x[((71) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((71) - 15) & 15]) << (56))) | (((x[((71) - 15) & 15]) >> (64 - 56))))) ^ (((x[((71) - 15) & 15]) >> (7))))))))))))))))))))); e = ((e) + (t1)); a = ((t0) + (t1)); } while (0); | - | ||||||||||||
517 | do { u64 t0 = ((((((((a) << (36))) | (((a) >> (64 - 36))))) ^ (((((((a) << (30))) | (((a) >> (64 - 30))))) ^ (((((a) << (25))) | (((a) >> (64 - 25))))))))) + (((((a) & (b))) | (((c) & (((a) | (b)))))))); u64 t1 = ((h) + (((((((((e) << (50))) | (((e) >> (64 - 50))))) ^ (((((((e) << (46))) | (((e) >> (64 - 46))))) ^ (((((e) << (23))) | (((e) >> (64 - 23))))))))) + (((((g) ^ (((e) & (((f) ^ (g))))))) + (((sha512_round_constants[72]) + ((x[(72) & 15] = ((x[(72) & 15]) + (((((((((x[((72) - 2) & 15]) << (45))) | (((x[((72) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((72) - 2) & 15]) << (3))) | (((x[((72) - 2) & 15]) >> (64 - 3))))) ^ (((x[((72) - 2) & 15]) >> (6))))))) + (((x[((72) - 7) & 15]) + (((((((x[((72) - 15) & 15]) << (63))) | (((x[((72) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((72) - 15) & 15]) << (56))) | (((x[((72) - 15) & 15]) >> (64 - 56))))) ^ (((x[((72) - 15) & 15]) >> (7))))))))))))))))))))); d = ((d) + (t1)); h = ((t0) + (t1)); } while (0); | - | ||||||||||||
518 | do { u64 t0 = ((((((((h) << (36))) | (((h) >> (64 - 36))))) ^ (((((((h) << (30))) | (((h) >> (64 - 30))))) ^ (((((h) << (25))) | (((h) >> (64 - 25))))))))) + (((((h) & (a))) | (((b) & (((h) | (a)))))))); u64 t1 = ((g) + (((((((((d) << (50))) | (((d) >> (64 - 50))))) ^ (((((((d) << (46))) | (((d) >> (64 - 46))))) ^ (((((d) << (23))) | (((d) >> (64 - 23))))))))) + (((((f) ^ (((d) & (((e) ^ (f))))))) + (((sha512_round_constants[73]) + ((x[(73) & 15] = ((x[(73) & 15]) + (((((((((x[((73) - 2) & 15]) << (45))) | (((x[((73) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((73) - 2) & 15]) << (3))) | (((x[((73) - 2) & 15]) >> (64 - 3))))) ^ (((x[((73) - 2) & 15]) >> (6))))))) + (((x[((73) - 7) & 15]) + (((((((x[((73) - 15) & 15]) << (63))) | (((x[((73) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((73) - 15) & 15]) << (56))) | (((x[((73) - 15) & 15]) >> (64 - 56))))) ^ (((x[((73) - 15) & 15]) >> (7))))))))))))))))))))); c = ((c) + (t1)); g = ((t0) + (t1)); } while (0); | - | ||||||||||||
519 | do { u64 t0 = ((((((((g) << (36))) | (((g) >> (64 - 36))))) ^ (((((((g) << (30))) | (((g) >> (64 - 30))))) ^ (((((g) << (25))) | (((g) >> (64 - 25))))))))) + (((((g) & (h))) | (((a) & (((g) | (h)))))))); u64 t1 = ((f) + (((((((((c) << (50))) | (((c) >> (64 - 50))))) ^ (((((((c) << (46))) | (((c) >> (64 - 46))))) ^ (((((c) << (23))) | (((c) >> (64 - 23))))))))) + (((((e) ^ (((c) & (((d) ^ (e))))))) + (((sha512_round_constants[74]) + ((x[(74) & 15] = ((x[(74) & 15]) + (((((((((x[((74) - 2) & 15]) << (45))) | (((x[((74) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((74) - 2) & 15]) << (3))) | (((x[((74) - 2) & 15]) >> (64 - 3))))) ^ (((x[((74) - 2) & 15]) >> (6))))))) + (((x[((74) - 7) & 15]) + (((((((x[((74) - 15) & 15]) << (63))) | (((x[((74) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((74) - 15) & 15]) << (56))) | (((x[((74) - 15) & 15]) >> (64 - 56))))) ^ (((x[((74) - 15) & 15]) >> (7))))))))))))))))))))); b = ((b) + (t1)); f = ((t0) + (t1)); } while (0); | - | ||||||||||||
520 | do { u64 t0 = ((((((((f) << (36))) | (((f) >> (64 - 36))))) ^ (((((((f) << (30))) | (((f) >> (64 - 30))))) ^ (((((f) << (25))) | (((f) >> (64 - 25))))))))) + (((((f) & (g))) | (((h) & (((f) | (g)))))))); u64 t1 = ((e) + (((((((((b) << (50))) | (((b) >> (64 - 50))))) ^ (((((((b) << (46))) | (((b) >> (64 - 46))))) ^ (((((b) << (23))) | (((b) >> (64 - 23))))))))) + (((((d) ^ (((b) & (((c) ^ (d))))))) + (((sha512_round_constants[75]) + ((x[(75) & 15] = ((x[(75) & 15]) + (((((((((x[((75) - 2) & 15]) << (45))) | (((x[((75) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((75) - 2) & 15]) << (3))) | (((x[((75) - 2) & 15]) >> (64 - 3))))) ^ (((x[((75) - 2) & 15]) >> (6))))))) + (((x[((75) - 7) & 15]) + (((((((x[((75) - 15) & 15]) << (63))) | (((x[((75) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((75) - 15) & 15]) << (56))) | (((x[((75) - 15) & 15]) >> (64 - 56))))) ^ (((x[((75) - 15) & 15]) >> (7))))))))))))))))))))); a = ((a) + (t1)); e = ((t0) + (t1)); } while (0); | - | ||||||||||||
521 | do { u64 t0 = ((((((((e) << (36))) | (((e) >> (64 - 36))))) ^ (((((((e) << (30))) | (((e) >> (64 - 30))))) ^ (((((e) << (25))) | (((e) >> (64 - 25))))))))) + (((((e) & (f))) | (((g) & (((e) | (f)))))))); u64 t1 = ((d) + (((((((((a) << (50))) | (((a) >> (64 - 50))))) ^ (((((((a) << (46))) | (((a) >> (64 - 46))))) ^ (((((a) << (23))) | (((a) >> (64 - 23))))))))) + (((((c) ^ (((a) & (((b) ^ (c))))))) + (((sha512_round_constants[76]) + ((x[(76) & 15] = ((x[(76) & 15]) + (((((((((x[((76) - 2) & 15]) << (45))) | (((x[((76) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((76) - 2) & 15]) << (3))) | (((x[((76) - 2) & 15]) >> (64 - 3))))) ^ (((x[((76) - 2) & 15]) >> (6))))))) + (((x[((76) - 7) & 15]) + (((((((x[((76) - 15) & 15]) << (63))) | (((x[((76) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((76) - 15) & 15]) << (56))) | (((x[((76) - 15) & 15]) >> (64 - 56))))) ^ (((x[((76) - 15) & 15]) >> (7))))))))))))))))))))); h = ((h) + (t1)); d = ((t0) + (t1)); } while (0); | - | ||||||||||||
522 | do { u64 t0 = ((((((((d) << (36))) | (((d) >> (64 - 36))))) ^ (((((((d) << (30))) | (((d) >> (64 - 30))))) ^ (((((d) << (25))) | (((d) >> (64 - 25))))))))) + (((((d) & (e))) | (((f) & (((d) | (e)))))))); u64 t1 = ((c) + (((((((((h) << (50))) | (((h) >> (64 - 50))))) ^ (((((((h) << (46))) | (((h) >> (64 - 46))))) ^ (((((h) << (23))) | (((h) >> (64 - 23))))))))) + (((((b) ^ (((h) & (((a) ^ (b))))))) + (((sha512_round_constants[77]) + ((x[(77) & 15] = ((x[(77) & 15]) + (((((((((x[((77) - 2) & 15]) << (45))) | (((x[((77) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((77) - 2) & 15]) << (3))) | (((x[((77) - 2) & 15]) >> (64 - 3))))) ^ (((x[((77) - 2) & 15]) >> (6))))))) + (((x[((77) - 7) & 15]) + (((((((x[((77) - 15) & 15]) << (63))) | (((x[((77) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((77) - 15) & 15]) << (56))) | (((x[((77) - 15) & 15]) >> (64 - 56))))) ^ (((x[((77) - 15) & 15]) >> (7))))))))))))))))))))); g = ((g) + (t1)); c = ((t0) + (t1)); } while (0); | - | ||||||||||||
523 | do { u64 t0 = ((((((((c) << (36))) | (((c) >> (64 - 36))))) ^ (((((((c) << (30))) | (((c) >> (64 - 30))))) ^ (((((c) << (25))) | (((c) >> (64 - 25))))))))) + (((((c) & (d))) | (((e) & (((c) | (d)))))))); u64 t1 = ((b) + (((((((((g) << (50))) | (((g) >> (64 - 50))))) ^ (((((((g) << (46))) | (((g) >> (64 - 46))))) ^ (((((g) << (23))) | (((g) >> (64 - 23))))))))) + (((((a) ^ (((g) & (((h) ^ (a))))))) + (((sha512_round_constants[78]) + ((x[(78) & 15] = ((x[(78) & 15]) + (((((((((x[((78) - 2) & 15]) << (45))) | (((x[((78) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((78) - 2) & 15]) << (3))) | (((x[((78) - 2) & 15]) >> (64 - 3))))) ^ (((x[((78) - 2) & 15]) >> (6))))))) + (((x[((78) - 7) & 15]) + (((((((x[((78) - 15) & 15]) << (63))) | (((x[((78) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((78) - 15) & 15]) << (56))) | (((x[((78) - 15) & 15]) >> (64 - 56))))) ^ (((x[((78) - 15) & 15]) >> (7))))))))))))))))))))); f = ((f) + (t1)); b = ((t0) + (t1)); } while (0); | - | ||||||||||||
524 | do { u64 t0 = ((((((((b) << (36))) | (((b) >> (64 - 36))))) ^ (((((((b) << (30))) | (((b) >> (64 - 30))))) ^ (((((b) << (25))) | (((b) >> (64 - 25))))))))) + (((((b) & (c))) | (((d) & (((b) | (c)))))))); u64 t1 = ((a) + (((((((((f) << (50))) | (((f) >> (64 - 50))))) ^ (((((((f) << (46))) | (((f) >> (64 - 46))))) ^ (((((f) << (23))) | (((f) >> (64 - 23))))))))) + (((((h) ^ (((f) & (((g) ^ (h))))))) + (((sha512_round_constants[79]) + ((x[(79) & 15] = ((x[(79) & 15]) + (((((((((x[((79) - 2) & 15]) << (45))) | (((x[((79) - 2) & 15]) >> (64 - 45))))) ^ (((((((x[((79) - 2) & 15]) << (3))) | (((x[((79) - 2) & 15]) >> (64 - 3))))) ^ (((x[((79) - 2) & 15]) >> (6))))))) + (((x[((79) - 7) & 15]) + (((((((x[((79) - 15) & 15]) << (63))) | (((x[((79) - 15) & 15]) >> (64 - 63))))) ^ (((((((x[((79) - 15) & 15]) << (56))) | (((x[((79) - 15) & 15]) >> (64 - 56))))) ^ (((x[((79) - 15) & 15]) >> (7))))))))))))))))))))); e = ((e) + (t1)); a = ((t0) + (t1)); } while (0); | - | ||||||||||||
525 | - | |||||||||||||
526 | a = ctx->state[0] = ((ctx->state[0]) + (a)); | - | ||||||||||||
527 | b = ctx->state[1] = ((ctx->state[1]) + (b)); | - | ||||||||||||
528 | c = ctx->state[2] = ((ctx->state[2]) + (c)); | - | ||||||||||||
529 | d = ctx->state[3] = ((ctx->state[3]) + (d)); | - | ||||||||||||
530 | e = ctx->state[4] = ((ctx->state[4]) + (e)); | - | ||||||||||||
531 | f = ctx->state[5] = ((ctx->state[5]) + (f)); | - | ||||||||||||
532 | g = ctx->state[6] = ((ctx->state[6]) + (g)); | - | ||||||||||||
533 | h = ctx->state[7] = ((ctx->state[7]) + (h)); | - | ||||||||||||
534 | } executed 15640 times by 2 tests: end of block Executed by:
| 15640 | ||||||||||||
535 | } executed 76 times by 2 tests: end of block Executed by:
| 76 | ||||||||||||
Switch to Source code | Preprocessed file |