Lines Matching refs:ctx

154 void SHA512_init(VB_SHA512_CTX *ctx) {
156 ctx->h[0] = sha512_h0[0]; ctx->h[1] = sha512_h0[1];
157 ctx->h[2] = sha512_h0[2]; ctx->h[3] = sha512_h0[3];
158 ctx->h[4] = sha512_h0[4]; ctx->h[5] = sha512_h0[5];
159 ctx->h[6] = sha512_h0[6]; ctx->h[7] = sha512_h0[7];
164 ctx->h[i] = sha512_h0[i];
167 ctx->len = 0;
168 ctx->tot_len = 0;
172 static void SHA512_transform(VB_SHA512_CTX* ctx, const uint8_t* message,
210 wv[0] = ctx->h[0]; wv[1] = ctx->h[1];
211 wv[2] = ctx->h[2]; wv[3] = ctx->h[3];
212 wv[4] = ctx->h[4]; wv[5] = ctx->h[5];
213 wv[6] = ctx->h[6]; wv[7] = ctx->h[7];
228 ctx->h[0] += wv[0]; ctx->h[1] += wv[1];
229 ctx->h[2] += wv[2]; ctx->h[3] += wv[3];
230 ctx->h[4] += wv[4]; ctx->h[5] += wv[5];
231 ctx->h[6] += wv[6]; ctx->h[7] += wv[7];
242 wv[j] = ctx->h[j];
260 ctx->h[j] += wv[j];
266 void SHA512_update(VB_SHA512_CTX* ctx, const uint8_t* data,
272 tmp_len = SHA512_BLOCK_SIZE - ctx->len;
275 Memcpy(&ctx->block[ctx->len], data, rem_len);
277 if (ctx->len + len < SHA512_BLOCK_SIZE) {
278 ctx->len += len;
287 SHA512_transform(ctx, ctx->block, 1);
288 SHA512_transform(ctx, shifted_data, block_nb);
292 Memcpy(ctx->block, &shifted_data[block_nb << 7],
295 ctx->len = rem_len;
296 ctx->tot_len += (block_nb + 1) << 7;
299 uint8_t* SHA512_final(VB_SHA512_CTX* ctx)
310 < (ctx->len % SHA512_BLOCK_SIZE));
312 len_b = (ctx->tot_len + ctx->len) << 3;
315 Memset(ctx->block + ctx->len, 0, pm_len - ctx->len);
316 ctx->block[ctx->len] = 0x80;
317 UNPACK32(len_b, ctx->block + pm_len - 4);
319 SHA512_transform(ctx, ctx->block, block_nb);
322 UNPACK64(ctx->h[0], &ctx->buf[ 0]);
323 UNPACK64(ctx->h[1], &ctx->buf[ 8]);
324 UNPACK64(ctx->h[2], &ctx->buf[16]);
325 UNPACK64(ctx->h[3], &ctx->buf[24]);
326 UNPACK64(ctx->h[4], &ctx->buf[32]);
327 UNPACK64(ctx->h[5], &ctx->buf[40]);
328 UNPACK64(ctx->h[6], &ctx->buf[48]);
329 UNPACK64(ctx->h[7], &ctx->buf[56]);
332 UNPACK64(ctx->h[i], &ctx->buf[i << 3]);
335 return ctx->buf;
344 VB_SHA512_CTX ctx;
345 SHA512_init(&ctx);
355 SHA512_update(&ctx, input_ptr, block_size);
360 result = SHA512_final(&ctx);