X-Git-Url: https://git.distorted.org.uk/u/mdw/catacomb/blobdiff_plain/d03ab969116fe715d569304c1c474749b2f64529..c65df27983057ec76ed0e72bb370f9a5ae7dad28:/md5.c diff --git a/md5.c b/md5.c index c6e2a2a..b3eb3c6 100644 --- a/md5.c +++ b/md5.c @@ -1,6 +1,6 @@ /* -*-c-*- * - * $Id: md5.c,v 1.1 1999/09/03 08:41:12 mdw Exp $ + * $Id: md5.c,v 1.4 2004/04/08 01:36:15 mdw Exp $ * * The MD5 message digest function * @@ -27,18 +27,12 @@ * MA 02111-1307, USA. */ -/*----- Revision history --------------------------------------------------* - * - * $Log: md5.c,v $ - * Revision 1.1 1999/09/03 08:41:12 mdw - * Initial import. - * - */ - /*----- Header files ------------------------------------------------------*/ #include +#include "ghash.h" +#include "ghash-def.h" #include "hash.h" #include "md5.h" @@ -187,7 +181,7 @@ void md5_init(md5_ctx *ctx) ctx->c = 0x98badcfe; ctx->d = 0x10325476; ctx->off = 0; - ctx->count = 0; + ctx->nl = ctx->nh = 0; } /* --- @md5_set@ --- * @@ -211,7 +205,8 @@ void md5_set(md5_ctx *ctx, const void *buf, unsigned long count) ctx->c = LOAD32_L(p + 8); ctx->d = LOAD32_L(p + 12); ctx->off = 0; - ctx->count = count; + ctx->nl = U32(count); + ctx->nh = U32(((count & ~MASK32) >> 16) >> 16); } /* --- @md5_hash@ --- * @@ -269,9 +264,13 @@ unsigned long md5_state(md5_ctx *ctx, void *state) STORE32_L(p + 4, ctx->b); STORE32_L(p + 8, ctx->c); STORE32_L(p + 12, ctx->d); - return (ctx->count); + return (ctx->nl | ((ctx->nh << 16) << 16)); } +/* --- Generic interface --- */ + +GHASH_DEF(MD5, md5) + /* --- Test code --- */ HASH_TEST(MD5, md5)