X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=md5c.c;h=dcf25d5f42433ea483efb5cfc15dacb362907535;hb=f16d8d23439b5569f0c2e1af22494708b507f277;hp=ad228b8b5945b37bd30b74eeebe98ceafd85f0fb;hpb=9e0286f45634c335689d4ce8593bfaf6a62010f7;p=~andy%2Ffetchmail diff --git a/md5c.c b/md5c.c index ad228b8b..dcf25d5f 100644 --- a/md5c.c +++ b/md5c.c @@ -70,7 +70,7 @@ void MD5Update(struct MD5Context *ctx, const void *buf_, unsigned len) /* Handle any leading odd-sized chunks */ if (t) { - unsigned char *p = (unsigned char *) ctx->in + t; + unsigned char *p = (unsigned char *) ctx->u.in + t; t = 64 - t; if (len < t) { @@ -78,24 +78,24 @@ void MD5Update(struct MD5Context *ctx, const void *buf_, unsigned len) return; } memmove(p, buf, t); - byteReverse(ctx->in, 16); - MD5Transform(ctx->buf, (uint32_t *) ctx->in); + byteReverse(ctx->u.in, 16); + MD5Transform(ctx->buf, ctx->u.in32); buf += t; len -= t; } /* Process data in 64-byte chunks */ while (len >= 64) { - memmove(ctx->in, buf, 64); - byteReverse(ctx->in, 16); - MD5Transform(ctx->buf, (uint32_t *) ctx->in); + memmove(ctx->u.in, buf, 64); + byteReverse(ctx->u.in, 16); + MD5Transform(ctx->buf, ctx->u.in32); buf += 64; len -= 64; } /* Handle any remaining bytes of data. */ - memmove(ctx->in, buf, len); + memmove(ctx->u.in, buf, len); } /* @@ -112,7 +112,7 @@ void MD5Final(void *digest, struct MD5Context *ctx) /* Set the first char of padding to 0x80. This is safe since there is always at least one byte free */ - p = ctx->in + count; + p = ctx->u.in + count; *p++ = 0x80; /* Bytes of padding needed to make 64 bytes */ @@ -122,22 +122,22 @@ void MD5Final(void *digest, struct MD5Context *ctx) if (count < 8) { /* Two lots of padding: Pad the first block to 64 bytes */ memset(p, 0, count); - byteReverse(ctx->in, 16); - MD5Transform(ctx->buf, (uint32_t *) ctx->in); + byteReverse(ctx->u.in, 16); + MD5Transform(ctx->buf, ctx->u.in32); /* Now fill the next block with 56 bytes */ - memset(ctx->in, 0, 56); + memset(ctx->u.in, 0, 56); } else { /* Pad block to 56 bytes */ memset(p, 0, count - 8); } - byteReverse(ctx->in, 14); + byteReverse(ctx->u.in, 14); /* Append length in bits and transform */ - ((uint32_t *) ctx->in)[14] = ctx->bits[0]; - ((uint32_t *) ctx->in)[15] = ctx->bits[1]; + ctx->u.in32[14] = ctx->bits[0]; + ctx->u.in32[15] = ctx->bits[1]; - MD5Transform(ctx->buf, (uint32_t *) ctx->in); + MD5Transform(ctx->buf, ctx->u.in32); byteReverse((unsigned char *) ctx->buf, 4); memmove(digest, ctx->buf, 16); memset(ctx, 0, sizeof(*ctx)); /* In case it's sensitive */