Lines Matching refs:ctx
75 static int __sha512_starts(sha512_context *ctx, int is384) in __sha512_starts() argument
77 ctx->total[0] = 0; in __sha512_starts()
78 ctx->total[1] = 0; in __sha512_starts()
82 ctx->state[0] = UL64(0x6A09E667F3BCC908); in __sha512_starts()
83 ctx->state[1] = UL64(0xBB67AE8584CAA73B); in __sha512_starts()
84 ctx->state[2] = UL64(0x3C6EF372FE94F82B); in __sha512_starts()
85 ctx->state[3] = UL64(0xA54FF53A5F1D36F1); in __sha512_starts()
86 ctx->state[4] = UL64(0x510E527FADE682D1); in __sha512_starts()
87 ctx->state[5] = UL64(0x9B05688C2B3E6C1F); in __sha512_starts()
88 ctx->state[6] = UL64(0x1F83D9ABFB41BD6B); in __sha512_starts()
89 ctx->state[7] = UL64(0x5BE0CD19137E2179); in __sha512_starts()
92 ctx->state[0] = UL64(0xCBBB9D5DC1059ED8); in __sha512_starts()
93 ctx->state[1] = UL64(0x629A292A367CD507); in __sha512_starts()
94 ctx->state[2] = UL64(0x9159015A3070DD17); in __sha512_starts()
95 ctx->state[3] = UL64(0x152FECD8F70E5939); in __sha512_starts()
96 ctx->state[4] = UL64(0x67332667FFC00B31); in __sha512_starts()
97 ctx->state[5] = UL64(0x8EB44A8768581511); in __sha512_starts()
98 ctx->state[6] = UL64(0xDB0C2E0D64F98FA7); in __sha512_starts()
99 ctx->state[7] = UL64(0x47B5481DBEFA4FA4); in __sha512_starts()
102 ctx->is384 = is384; in __sha512_starts()
107 int sha512_starts(sha512_context *ctx) in sha512_starts() argument
109 return __sha512_starts(ctx, 0); in sha512_starts()
158 static int sha512_process(sha512_context *ctx, const unsigned char data[128]) in sha512_process() argument
192 A = ctx->state[0]; in sha512_process()
193 B = ctx->state[1]; in sha512_process()
194 C = ctx->state[2]; in sha512_process()
195 D = ctx->state[3]; in sha512_process()
196 E = ctx->state[4]; in sha512_process()
197 F = ctx->state[5]; in sha512_process()
198 G = ctx->state[6]; in sha512_process()
199 H = ctx->state[7]; in sha512_process()
221 ctx->state[0] += A; in sha512_process()
222 ctx->state[1] += B; in sha512_process()
223 ctx->state[2] += C; in sha512_process()
224 ctx->state[3] += D; in sha512_process()
225 ctx->state[4] += E; in sha512_process()
226 ctx->state[5] += F; in sha512_process()
227 ctx->state[6] += G; in sha512_process()
228 ctx->state[7] += H; in sha512_process()
236 int sha512_update(sha512_context *ctx, const unsigned char *input, size_t ilen) in sha512_update() argument
245 left = (unsigned int)(ctx->total[0] & 0x7F); in sha512_update()
248 ctx->total[0] += (uint64_t)ilen; in sha512_update()
250 if (ctx->total[0] < (uint64_t)ilen) in sha512_update()
251 ctx->total[1]++; in sha512_update()
254 memcpy((void *)(ctx->buffer + left), input, fill); in sha512_update()
256 if ((ret = sha512_process(ctx, ctx->buffer)) != 0) in sha512_update()
265 if ((ret = sha512_process(ctx, input)) != 0) in sha512_update()
273 memcpy((void *)(ctx->buffer + left), input, ilen); in sha512_update()
281 int sha512_finish(sha512_context *ctx, unsigned char output[64]) in sha512_finish() argument
290 used = ctx->total[0] & 0x7F; in sha512_finish()
292 ctx->buffer[used++] = 0x80; in sha512_finish()
296 memset(ctx->buffer + used, 0, 112 - used); in sha512_finish()
299 memset(ctx->buffer + used, 0, 128 - used); in sha512_finish()
301 if ((ret = sha512_process(ctx, ctx->buffer)) != 0) in sha512_finish()
304 memset(ctx->buffer, 0, 112); in sha512_finish()
310 high = (ctx->total[0] >> 61) in sha512_finish()
311 | (ctx->total[1] << 3); in sha512_finish()
312 low = (ctx->total[0] << 3); in sha512_finish()
314 PUT_UINT64_BE(high, ctx->buffer, 112); in sha512_finish()
315 PUT_UINT64_BE(low, ctx->buffer, 120); in sha512_finish()
317 if ((ret = sha512_process(ctx, ctx->buffer)) != 0) in sha512_finish()
323 PUT_UINT64_BE(ctx->state[0], output, 0); in sha512_finish()
324 PUT_UINT64_BE(ctx->state[1], output, 8); in sha512_finish()
325 PUT_UINT64_BE(ctx->state[2], output, 16); in sha512_finish()
326 PUT_UINT64_BE(ctx->state[3], output, 24); in sha512_finish()
327 PUT_UINT64_BE(ctx->state[4], output, 32); in sha512_finish()
328 PUT_UINT64_BE(ctx->state[5], output, 40); in sha512_finish()
330 if (ctx->is384 == 0) { in sha512_finish()
331 PUT_UINT64_BE(ctx->state[6], output, 48); in sha512_finish()
332 PUT_UINT64_BE(ctx->state[7], output, 56); in sha512_finish()
341 sha512_context ctx; in sha512_csum() local
343 sha512_starts(&ctx); in sha512_csum()
344 sha512_update(&ctx, input, ilen); in sha512_csum()
345 sha512_finish(&ctx, output); in sha512_csum()