Lines Matching refs:ctx

79 	(ctx->block[(n)] = \
85 (ctx->block[(n)])
95 static const void *body(MD5_CTX *ctx, const void *data, unsigned long size)
103 a = ctx->a;
104 b = ctx->b;
105 c = ctx->c;
106 d = ctx->d;
194 ctx->a = a;
195 ctx->b = b;
196 ctx->c = c;
197 ctx->d = d;
202 void MD5_Init(MD5_CTX *ctx)
204 ctx->a = 0x67452301;
205 ctx->b = 0xefcdab89;
206 ctx->c = 0x98badcfe;
207 ctx->d = 0x10325476;
209 ctx->lo = 0;
210 ctx->hi = 0;
213 void MD5_Update(MD5_CTX *ctx, const void *data, unsigned long size)
218 saved_lo = ctx->lo;
219 if ((ctx->lo = (saved_lo + size) & 0x1fffffff) < saved_lo)
220 ctx->hi++;
221 ctx->hi += size >> 29;
229 memcpy(&ctx->buffer[used], data, size);
233 memcpy(&ctx->buffer[used], data, free);
236 body(ctx, ctx->buffer, 64);
240 data = body(ctx, data, size & ~(unsigned long)0x3f);
244 memcpy(ctx->buffer, data, size);
247 void MD5_Final(unsigned char *result, MD5_CTX *ctx)
251 used = ctx->lo & 0x3f;
253 ctx->buffer[used++] = 0x80;
258 memset(&ctx->buffer[used], 0, free);
259 body(ctx, ctx->buffer, 64);
264 memset(&ctx->buffer[used], 0, free - 8);
266 ctx->lo <<= 3;
267 ctx->buffer[56] = ctx->lo;
268 ctx->buffer[57] = ctx->lo >> 8;
269 ctx->buffer[58] = ctx->lo >> 16;
270 ctx->buffer[59] = ctx->lo >> 24;
271 ctx->buffer[60] = ctx->hi;
272 ctx->buffer[61] = ctx->hi >> 8;
273 ctx->buffer[62] = ctx->hi >> 16;
274 ctx->buffer[63] = ctx->hi >> 24;
276 body(ctx, ctx->buffer, 64);
278 result[0] = ctx->a;
279 result[1] = ctx->a >> 8;
280 result[2] = ctx->a >> 16;
281 result[3] = ctx->a >> 24;
282 result[4] = ctx->b;
283 result[5] = ctx->b >> 8;
284 result[6] = ctx->b >> 16;
285 result[7] = ctx->b >> 24;
286 result[8] = ctx->c;
287 result[9] = ctx->c >> 8;
288 result[10] = ctx->c >> 16;
289 result[11] = ctx->c >> 24;
290 result[12] = ctx->d;
291 result[13] = ctx->d >> 8;
292 result[14] = ctx->d >> 16;
293 result[15] = ctx->d >> 24;
295 memset(ctx, 0, sizeof(*ctx));