Home | History | Annotate | Download | only in hash

Lines Matching full:ctx

78   sha1_ctx_t ctx;
80 sha1_init(&ctx);
81 sha1_update(&ctx, msg, octets_in_msg);
82 sha1_final(&ctx, hash_value);
186 sha1_init(sha1_ctx_t *ctx) {
189 ctx->H[0] = 0x67452301;
190 ctx->H[1] = 0xefcdab89;
191 ctx->H[2] = 0x98badcfe;
192 ctx->H[3] = 0x10325476;
193 ctx->H[4] = 0xc3d2e1f0;
196 ctx->octets_in_buffer = 0;
199 ctx->num_bits_in_msg = 0;
204 sha1_update(sha1_ctx_t *ctx, const uint8_t *msg, int octets_in_msg) {
206 uint8_t *buf = (uint8_t *)ctx->M;
209 ctx->num_bits_in_msg += octets_in_msg * 8;
214 if (octets_in_msg + ctx->octets_in_buffer >= 64) {
220 octets_in_msg -= (64 - ctx->octets_in_buffer);
221 for (i=ctx->octets_in_buffer; i < 64; i++)
223 ctx->octets_in_buffer = 0;
229 sha1_core(ctx->M, ctx->H);
235 for (i=ctx->octets_in_buffer;
236 i < (ctx->octets_in_buffer + octets_in_msg); i++)
238 ctx->octets_in_buffer += octets_in_msg;
247 * sha1_final(ctx, output) computes the result for ctx and copies it
252 sha1_final(sha1_ctx_t *ctx, uint32_t *output) {
262 int tail = ctx->octets_in_buffer % 4;
265 for (i=0; i < (ctx->octets_in_buffer+3)/4; i++)
266 W[i] = be32_to_cpu(ctx->M[i]);
271 W[i-1] = (be32_to_cpu(ctx->M[i-1]) & 0xffffff00) | 0x80;
275 W[i-1] = (be32_to_cpu(ctx->M[i-1]) & 0xffff0000) | 0x8000;
279 W[i-1] = (be32_to_cpu(ctx->M[i-1]) & 0xff000000) | 0x800000;
297 if (ctx->octets_in_buffer < 56)
298 W[15] = ctx->num_bits_in_msg;
299 else if (ctx->octets_in_buffer < 60)
308 A = ctx->H[0];
309 B = ctx->H[1];
310 C = ctx->H[2];
311 D = ctx->H[3];
312 E = ctx->H[4];
331 ctx->H[0] += A;
332 ctx->H[1] += B;
333 ctx->H[2] += C;
334 ctx->H[3] += D;
335 ctx->H[4] += E;
341 if (ctx->octets_in_buffer >= 56) {
353 W[15] = ctx->num_bits_in_msg;
361 A = ctx->H[0];
362 B = ctx->H[1];
363 C = ctx->H[2];
364 D = ctx->H[3];
365 E = ctx->H[4];
384 ctx->H[0] += A;
385 ctx->H[1] += B;
386 ctx->H[2] += C;
387 ctx->H[3] += D;
388 ctx->H[4] += E;
392 output[0] = be32_to_cpu(ctx->H[0]);
393 output[1] = be32_to_cpu(ctx->H[1]);
394 output[2] = be32_to_cpu(ctx->H[2]);
395 output[3] = be32_to_cpu(ctx->H[3]);
396 output[4] = be32_to_cpu(ctx->H[4]);
399 ctx->octets_in_buffer = 0;