* This processes one or more 64-byte data blocks, but does NOT update
* the bit counters. There're no alignment requirements.
*/
-static void *body(MD5_CTX *ctx, void *data, unsigned long size)
+static void *body(MD5_CTX *ctx, void *data, size_t size)
{
unsigned char *ptr;
MD5_u32plus a, b, c, d;
ctx->hi = 0;
}
-void solv_MD5_Update(MD5_CTX *ctx, void *data, unsigned long size)
+void solv_MD5_Update(MD5_CTX *ctx, void *data, size_t size)
{
MD5_u32plus saved_lo;
unsigned long used, free;
saved_lo = ctx->lo;
- if ((ctx->lo = (saved_lo + size) & 0x1fffffff) < saved_lo)
+ if ((ctx->lo = (saved_lo + (MD5_u32plus)size) & 0x1fffffff) < saved_lo)
ctx->hi++;
ctx->hi += size >> 29;
}
if (size >= 64) {
- data = body(ctx, data, size & ~(unsigned long)0x3f);
+ data = body(ctx, data, size & ~(size_t)0x3f);
size &= 0x3f;
}
} MD5_CTX;
extern void solv_MD5_Init(MD5_CTX *ctx);
-extern void solv_MD5_Update(MD5_CTX *ctx, void *data, unsigned long size);
+extern void solv_MD5_Update(MD5_CTX *ctx, void *data, size_t size);
extern void solv_MD5_Final(unsigned char *result, MD5_CTX *ctx);