]> Pileus Git - ~andy/fetchmail/blobdiff - md5c.c
Merge branch 'legacy_63'
[~andy/fetchmail] / md5c.c
diff --git a/md5c.c b/md5c.c
index ad228b8b5945b37bd30b74eeebe98ceafd85f0fb..dcf25d5f42433ea483efb5cfc15dacb362907535 100644 (file)
--- 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 */