Lines Matching refs:ctx

141 static void __sha512_init(struct __sha512_ctx *ctx,  in __sha512_init()  argument
145 ctx->state = *iv; in __sha512_init()
146 ctx->bytecount_lo = initial_bytecount; in __sha512_init()
147 ctx->bytecount_hi = 0; in __sha512_init()
150 void sha384_init(struct sha384_ctx *ctx) in sha384_init() argument
152 __sha512_init(&ctx->ctx, &sha384_iv, 0); in sha384_init()
156 void sha512_init(struct sha512_ctx *ctx) in sha512_init() argument
158 __sha512_init(&ctx->ctx, &sha512_iv, 0); in sha512_init()
162 void __sha512_update(struct __sha512_ctx *ctx, const u8 *data, size_t len) in __sha512_update() argument
164 size_t partial = ctx->bytecount_lo % SHA512_BLOCK_SIZE; in __sha512_update()
166 if (check_add_overflow(ctx->bytecount_lo, len, &ctx->bytecount_lo)) in __sha512_update()
167 ctx->bytecount_hi++; in __sha512_update()
175 memcpy(&ctx->buf[partial], data, l); in __sha512_update()
179 sha512_blocks(&ctx->state, ctx->buf, 1); in __sha512_update()
186 sha512_blocks(&ctx->state, data, nblocks); in __sha512_update()
192 memcpy(&ctx->buf[partial], data, len); in __sha512_update()
196 static void __sha512_final(struct __sha512_ctx *ctx, in __sha512_final() argument
199 u64 bitcount_hi = (ctx->bytecount_hi << 3) | (ctx->bytecount_lo >> 61); in __sha512_final()
200 u64 bitcount_lo = ctx->bytecount_lo << 3; in __sha512_final()
201 size_t partial = ctx->bytecount_lo % SHA512_BLOCK_SIZE; in __sha512_final()
203 ctx->buf[partial++] = 0x80; in __sha512_final()
205 memset(&ctx->buf[partial], 0, SHA512_BLOCK_SIZE - partial); in __sha512_final()
206 sha512_blocks(&ctx->state, ctx->buf, 1); in __sha512_final()
209 memset(&ctx->buf[partial], 0, SHA512_BLOCK_SIZE - 16 - partial); in __sha512_final()
210 *(__be64 *)&ctx->buf[SHA512_BLOCK_SIZE - 16] = cpu_to_be64(bitcount_hi); in __sha512_final()
211 *(__be64 *)&ctx->buf[SHA512_BLOCK_SIZE - 8] = cpu_to_be64(bitcount_lo); in __sha512_final()
212 sha512_blocks(&ctx->state, ctx->buf, 1); in __sha512_final()
215 put_unaligned_be64(ctx->state.h[i / 8], out + i); in __sha512_final()
218 void sha384_final(struct sha384_ctx *ctx, u8 out[SHA384_DIGEST_SIZE]) in sha384_final() argument
220 __sha512_final(&ctx->ctx, out, SHA384_DIGEST_SIZE); in sha384_final()
221 memzero_explicit(ctx, sizeof(*ctx)); in sha384_final()
225 void sha512_final(struct sha512_ctx *ctx, u8 out[SHA512_DIGEST_SIZE]) in sha512_final() argument
227 __sha512_final(&ctx->ctx, out, SHA512_DIGEST_SIZE); in sha512_final()
228 memzero_explicit(ctx, sizeof(*ctx)); in sha512_final()
234 struct sha384_ctx ctx; in sha384() local
236 sha384_init(&ctx); in sha384()
237 sha384_update(&ctx, data, len); in sha384()
238 sha384_final(&ctx, out); in sha384()
244 struct sha512_ctx ctx; in sha512() local
246 sha512_init(&ctx); in sha512()
247 sha512_update(&ctx, data, len); in sha512()
248 sha512_final(&ctx, out); in sha512()
301 void __hmac_sha512_init(struct __hmac_sha512_ctx *ctx, in __hmac_sha512_init() argument
304 __sha512_init(&ctx->sha_ctx, &key->istate, SHA512_BLOCK_SIZE); in __hmac_sha512_init()
305 ctx->ostate = key->ostate; in __hmac_sha512_init()
309 void hmac_sha384_init_usingrawkey(struct hmac_sha384_ctx *ctx, in hmac_sha384_init_usingrawkey() argument
312 __hmac_sha512_preparekey(&ctx->ctx.sha_ctx.state, &ctx->ctx.ostate, in hmac_sha384_init_usingrawkey()
314 ctx->ctx.sha_ctx.bytecount_lo = SHA512_BLOCK_SIZE; in hmac_sha384_init_usingrawkey()
315 ctx->ctx.sha_ctx.bytecount_hi = 0; in hmac_sha384_init_usingrawkey()
319 void hmac_sha512_init_usingrawkey(struct hmac_sha512_ctx *ctx, in hmac_sha512_init_usingrawkey() argument
322 __hmac_sha512_preparekey(&ctx->ctx.sha_ctx.state, &ctx->ctx.ostate, in hmac_sha512_init_usingrawkey()
324 ctx->ctx.sha_ctx.bytecount_lo = SHA512_BLOCK_SIZE; in hmac_sha512_init_usingrawkey()
325 ctx->ctx.sha_ctx.bytecount_hi = 0; in hmac_sha512_init_usingrawkey()
329 static void __hmac_sha512_final(struct __hmac_sha512_ctx *ctx, in __hmac_sha512_final() argument
333 __sha512_final(&ctx->sha_ctx, ctx->sha_ctx.buf, digest_size); in __hmac_sha512_final()
334 memset(&ctx->sha_ctx.buf[digest_size], 0, in __hmac_sha512_final()
336 ctx->sha_ctx.buf[digest_size] = 0x80; in __hmac_sha512_final()
337 *(__be32 *)&ctx->sha_ctx.buf[SHA512_BLOCK_SIZE - 4] = in __hmac_sha512_final()
341 sha512_blocks(&ctx->ostate, ctx->sha_ctx.buf, 1); in __hmac_sha512_final()
343 put_unaligned_be64(ctx->ostate.h[i / 8], out + i); in __hmac_sha512_final()
345 memzero_explicit(ctx, sizeof(*ctx)); in __hmac_sha512_final()
348 void hmac_sha384_final(struct hmac_sha384_ctx *ctx, in hmac_sha384_final() argument
351 __hmac_sha512_final(&ctx->ctx, out, SHA384_DIGEST_SIZE); in hmac_sha384_final()
355 void hmac_sha512_final(struct hmac_sha512_ctx *ctx, in hmac_sha512_final() argument
358 __hmac_sha512_final(&ctx->ctx, out, SHA512_DIGEST_SIZE); in hmac_sha512_final()
365 struct hmac_sha384_ctx ctx; in hmac_sha384() local
367 hmac_sha384_init(&ctx, key); in hmac_sha384()
368 hmac_sha384_update(&ctx, data, data_len); in hmac_sha384()
369 hmac_sha384_final(&ctx, out); in hmac_sha384()
376 struct hmac_sha512_ctx ctx; in hmac_sha512() local
378 hmac_sha512_init(&ctx, key); in hmac_sha512()
379 hmac_sha512_update(&ctx, data, data_len); in hmac_sha512()
380 hmac_sha512_final(&ctx, out); in hmac_sha512()
388 struct hmac_sha384_ctx ctx; in hmac_sha384_usingrawkey() local
390 hmac_sha384_init_usingrawkey(&ctx, raw_key, raw_key_len); in hmac_sha384_usingrawkey()
391 hmac_sha384_update(&ctx, data, data_len); in hmac_sha384_usingrawkey()
392 hmac_sha384_final(&ctx, out); in hmac_sha384_usingrawkey()
400 struct hmac_sha512_ctx ctx; in hmac_sha512_usingrawkey() local
402 hmac_sha512_init_usingrawkey(&ctx, raw_key, raw_key_len); in hmac_sha512_usingrawkey()
403 hmac_sha512_update(&ctx, data, data_len); in hmac_sha512_usingrawkey()
404 hmac_sha512_final(&ctx, out); in hmac_sha512_usingrawkey()