323{
324 unsigned long used, available;
326
327 used = ctx->lo & 0x3f;
328
329 ctx->buffer[used++] = 0x80;
330
331 available = 64 - used;
332
333 if (available < 8) {
334 memset(&ctx->buffer[used], 0, available);
335 body(ctx->buffer, 64);
336 used = 0;
337 available = 64;
338 }
339
340 memset(&ctx->buffer[used], 0, available - 8);
341
342 ctx->lo <<= 3;
343
344 OUT(&ctx->buffer[56], ctx->lo)
345
346 OUT(&ctx->buffer[60], ctx->hi)
347
348 body(ctx->buffer, 64);
349
350 OUT(&result[0], ctx->
a)
351 OUT(&result[4], ctx->b)
352 OUT(&result[8], ctx->c)
353 OUT(&result[12], ctx->d)
354
355 memset(ctx, 0, sizeof(*ctx));
356}
const void * body(const void *data, size_t size)