Lines Matching refs:ctx

38 void sm3_init(struct sm3_context *ctx)  in sm3_init()  argument
40 ctx->total[0] = 0; in sm3_init()
41 ctx->total[1] = 0; in sm3_init()
43 ctx->state[0] = 0x7380166F; in sm3_init()
44 ctx->state[1] = 0x4914B2B9; in sm3_init()
45 ctx->state[2] = 0x172442D7; in sm3_init()
46 ctx->state[3] = 0xDA8A0600; in sm3_init()
47 ctx->state[4] = 0xA96F30BC; in sm3_init()
48 ctx->state[5] = 0x163138AA; in sm3_init()
49 ctx->state[6] = 0xE38DEE4D; in sm3_init()
50 ctx->state[7] = 0xB0FB0E4E; in sm3_init()
67 static void __maybe_unused sm3_process(struct sm3_context *ctx, in sm3_process() argument
124 A = ctx->state[0]; in sm3_process()
125 B = ctx->state[1]; in sm3_process()
126 C = ctx->state[2]; in sm3_process()
127 D = ctx->state[3]; in sm3_process()
128 E = ctx->state[4]; in sm3_process()
129 F = ctx->state[5]; in sm3_process()
130 G = ctx->state[6]; in sm3_process()
131 H = ctx->state[7]; in sm3_process()
163 ctx->state[0] ^= A; in sm3_process()
164 ctx->state[1] ^= B; in sm3_process()
165 ctx->state[2] ^= C; in sm3_process()
166 ctx->state[3] ^= D; in sm3_process()
167 ctx->state[4] ^= E; in sm3_process()
168 ctx->state[5] ^= F; in sm3_process()
169 ctx->state[6] ^= G; in sm3_process()
170 ctx->state[7] ^= H; in sm3_process()
173 static void sm3_process_blocks(struct sm3_context *ctx, const uint8_t *input, in sm3_process_blocks() argument
178 crypto_accel_sm3_compress(ctx->state, input, block_count); in sm3_process_blocks()
183 sm3_process(ctx, input + n * SM3_BLOCK_SIZE); in sm3_process_blocks()
187 void sm3_update(struct sm3_context *ctx, const uint8_t *input, size_t ilen) in sm3_update() argument
196 left = ctx->total[0] & 0x3F; in sm3_update()
199 ctx->total[0] += ilen; in sm3_update()
201 if (ctx->total[0] < ilen) in sm3_update()
202 ctx->total[1]++; in sm3_update()
205 memcpy(ctx->buffer + left, input, fill); in sm3_update()
206 sm3_process_blocks(ctx, ctx->buffer, 1); in sm3_update()
213 sm3_process_blocks(ctx, input, block_count); in sm3_update()
218 memcpy(ctx->buffer + left, input, ilen); in sm3_update()
228 void sm3_final(struct sm3_context *ctx, uint8_t output[32]) in sm3_final() argument
234 high = (ctx->total[0] >> 29) | (ctx->total[1] << 3); in sm3_final()
235 low = ctx->total[0] << 3; in sm3_final()
240 last = ctx->total[0] & 0x3F; in sm3_final()
243 sm3_update(ctx, sm3_padding, padn); in sm3_final()
244 sm3_update(ctx, msglen, 8); in sm3_final()
246 PUT_UINT32_BE(ctx->state[0], output, 0); in sm3_final()
247 PUT_UINT32_BE(ctx->state[1], output, 4); in sm3_final()
248 PUT_UINT32_BE(ctx->state[2], output, 8); in sm3_final()
249 PUT_UINT32_BE(ctx->state[3], output, 12); in sm3_final()
250 PUT_UINT32_BE(ctx->state[4], output, 16); in sm3_final()
251 PUT_UINT32_BE(ctx->state[5], output, 20); in sm3_final()
252 PUT_UINT32_BE(ctx->state[6], output, 24); in sm3_final()
253 PUT_UINT32_BE(ctx->state[7], output, 28); in sm3_final()
258 struct sm3_context ctx = { }; in sm3() local
260 sm3_init(&ctx); in sm3()
261 sm3_update(&ctx, input, ilen); in sm3()
262 sm3_final(&ctx, output); in sm3()
264 memzero_explicit(&ctx, sizeof(ctx)); in sm3()
267 void sm3_hmac_init(struct sm3_context *ctx, const uint8_t *key, size_t keylen) in sm3_hmac_init() argument
278 memset(ctx->ipad, 0x36, 64); in sm3_hmac_init()
279 memset(ctx->opad, 0x5C, 64); in sm3_hmac_init()
282 ctx->ipad[i] ^= key[i]; in sm3_hmac_init()
283 ctx->opad[i] ^= key[i]; in sm3_hmac_init()
286 sm3_init(ctx); in sm3_hmac_init()
287 sm3_update(ctx, ctx->ipad, 64); in sm3_hmac_init()
292 void sm3_hmac_update(struct sm3_context *ctx, const uint8_t *input, size_t ilen) in sm3_hmac_update() argument
294 sm3_update(ctx, input, ilen); in sm3_hmac_update()
297 void sm3_hmac_final(struct sm3_context *ctx, uint8_t output[32]) in sm3_hmac_final() argument
301 sm3_final(ctx, tmpbuf); in sm3_hmac_final()
302 sm3_init(ctx); in sm3_hmac_final()
303 sm3_update(ctx, ctx->opad, 64); in sm3_hmac_final()
304 sm3_update(ctx, tmpbuf, 32); in sm3_hmac_final()
305 sm3_final(ctx, output); in sm3_hmac_final()
313 struct sm3_context ctx; in sm3_hmac() local
315 sm3_hmac_init(&ctx, key, keylen); in sm3_hmac()
316 sm3_hmac_update(&ctx, input, ilen); in sm3_hmac()
317 sm3_hmac_final(&ctx, output); in sm3_hmac()
319 memzero_explicit(&ctx, sizeof(ctx)); in sm3_hmac()