Lines Matching refs:ctx

135 void avb_sha512_init(AvbSHA512Ctx* ctx) {  in avb_sha512_init()  argument
138 ctx->crypto_ctx.algo = CRYPTO_SHA512; in avb_sha512_init()
139 ctx->crypto_ctx.length = ctx->tot_len; in avb_sha512_init()
140 memset(ctx->buf, 0, sizeof(ctx->buf)); in avb_sha512_init()
142 ctx->crypto_dev = crypto_get_device(ctx->crypto_ctx.algo); in avb_sha512_init()
144 if (ctx->crypto_dev) { in avb_sha512_init()
145 crypto_sha_init(ctx->crypto_dev, &ctx->crypto_ctx); in avb_sha512_init()
150 ctx->h[0] = sha512_h0[0]; in avb_sha512_init()
151 ctx->h[1] = sha512_h0[1]; in avb_sha512_init()
152 ctx->h[2] = sha512_h0[2]; in avb_sha512_init()
153 ctx->h[3] = sha512_h0[3]; in avb_sha512_init()
154 ctx->h[4] = sha512_h0[4]; in avb_sha512_init()
155 ctx->h[5] = sha512_h0[5]; in avb_sha512_init()
156 ctx->h[6] = sha512_h0[6]; in avb_sha512_init()
157 ctx->h[7] = sha512_h0[7]; in avb_sha512_init()
162 ctx->h[i] = sha512_h0[i]; in avb_sha512_init()
165 ctx->len = 0; in avb_sha512_init()
166 ctx->tot_len = 0; in avb_sha512_init()
169 static void SHA512_transform(AvbSHA512Ctx* ctx, in SHA512_transform() argument
264 wv[0] = ctx->h[0]; in SHA512_transform()
265 wv[1] = ctx->h[1]; in SHA512_transform()
266 wv[2] = ctx->h[2]; in SHA512_transform()
267 wv[3] = ctx->h[3]; in SHA512_transform()
268 wv[4] = ctx->h[4]; in SHA512_transform()
269 wv[5] = ctx->h[5]; in SHA512_transform()
270 wv[6] = ctx->h[6]; in SHA512_transform()
271 wv[7] = ctx->h[7]; in SHA512_transform()
294 ctx->h[0] += wv[0]; in SHA512_transform()
295 ctx->h[1] += wv[1]; in SHA512_transform()
296 ctx->h[2] += wv[2]; in SHA512_transform()
297 ctx->h[3] += wv[3]; in SHA512_transform()
298 ctx->h[4] += wv[4]; in SHA512_transform()
299 ctx->h[5] += wv[5]; in SHA512_transform()
300 ctx->h[6] += wv[6]; in SHA512_transform()
301 ctx->h[7] += wv[7]; in SHA512_transform()
312 wv[j] = ctx->h[j]; in SHA512_transform()
330 ctx->h[j] += wv[j]; in SHA512_transform()
335 void avb_sha512_update(AvbSHA512Ctx* ctx, const uint8_t* data, size_t len) { in avb_sha512_update() argument
339 if (ctx->crypto_dev) { in avb_sha512_update()
340 crypto_sha_update(ctx->crypto_dev, (u32 *)data, len); in avb_sha512_update()
349 tmp_len = AVB_SHA512_BLOCK_SIZE - ctx->len; in avb_sha512_update()
352 avb_memcpy(&ctx->block[ctx->len], data, rem_len); in avb_sha512_update()
354 if (ctx->len + len < AVB_SHA512_BLOCK_SIZE) { in avb_sha512_update()
355 ctx->len += len; in avb_sha512_update()
364 SHA512_transform(ctx, ctx->block, 1); in avb_sha512_update()
365 SHA512_transform(ctx, shifted_data, block_nb); in avb_sha512_update()
369 avb_memcpy(ctx->block, &shifted_data[block_nb << 7], rem_len); in avb_sha512_update()
371 ctx->len = rem_len; in avb_sha512_update()
372 ctx->tot_len += (block_nb + 1) << 7; in avb_sha512_update()
375 uint8_t* avb_sha512_final(AvbSHA512Ctx* ctx) { in avb_sha512_final() argument
379 if (ctx->crypto_dev) { in avb_sha512_final()
380 crypto_sha_final(ctx->crypto_dev, &ctx->crypto_ctx, ctx->buf); in avb_sha512_final()
381 return ctx->buf; in avb_sha512_final()
394 1 + ((AVB_SHA512_BLOCK_SIZE - 17) < (ctx->len % AVB_SHA512_BLOCK_SIZE)); in avb_sha512_final()
396 len_b = (ctx->tot_len + ctx->len) << 3; in avb_sha512_final()
399 avb_memset(ctx->block + ctx->len, 0, pm_len - ctx->len); in avb_sha512_final()
400 ctx->block[ctx->len] = 0x80; in avb_sha512_final()
401 UNPACK64(len_b, ctx->block + pm_len - 8); in avb_sha512_final()
403 SHA512_transform(ctx, ctx->block, block_nb); in avb_sha512_final()
406 UNPACK64(ctx->h[0], &ctx->buf[0]); in avb_sha512_final()
407 UNPACK64(ctx->h[1], &ctx->buf[8]); in avb_sha512_final()
408 UNPACK64(ctx->h[2], &ctx->buf[16]); in avb_sha512_final()
409 UNPACK64(ctx->h[3], &ctx->buf[24]); in avb_sha512_final()
410 UNPACK64(ctx->h[4], &ctx->buf[32]); in avb_sha512_final()
411 UNPACK64(ctx->h[5], &ctx->buf[40]); in avb_sha512_final()
412 UNPACK64(ctx->h[6], &ctx->buf[48]); in avb_sha512_final()
413 UNPACK64(ctx->h[7], &ctx->buf[56]); in avb_sha512_final()
416 UNPACK64(ctx->h[i], &ctx->buf[i << 3]); in avb_sha512_final()
419 return ctx->buf; in avb_sha512_final()