Properly initialize md5 hash seed

We started from 0, that's not entirely correct.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
diff --git a/md5.c b/md5.c
index cf1f814..8f9adb2 100644
--- a/md5.c
+++ b/md5.c
@@ -88,6 +88,14 @@
 	hash[3] += d;
 }
 
+void md5_init(struct md5_ctx *mctx)
+{
+	mctx->hash[0] = 0x67452301;
+	mctx->hash[1] = 0xefcdab89;
+	mctx->hash[2] = 0x98badcfe;
+	mctx->hash[3] = 0x10325476;
+}
+
 void md5_update(struct md5_ctx *mctx, const uint8_t *data, unsigned int len)
 {
 	const uint32_t avail = sizeof(mctx->block) - (mctx->byte_count & 0x3f);
diff --git a/md5.h b/md5.h
index 80fbcec..6747d30 100644
--- a/md5.h
+++ b/md5.h
@@ -23,5 +23,6 @@
 };
 
 extern void md5_update(struct md5_ctx *, const uint8_t *, unsigned int);
+extern void md5_init(struct md5_ctx *);
 
 #endif
diff --git a/verify.c b/verify.c
index 5770b46..566c53c 100644
--- a/verify.c
+++ b/verify.c
@@ -187,7 +187,7 @@
 		.hash = hash,
 	};
 
-	memset(md5_ctx.hash, 0, sizeof(hdr->md5_digest));
+	md5_init(&md5_ctx);
 	md5_update(&md5_ctx, p, hdr->len - sizeof(*hdr));
 
 	if (memcmp(hdr->md5_digest, md5_ctx.hash, sizeof(hash))) {
@@ -279,7 +279,7 @@
 		.hash = (uint32_t *) hdr->md5_digest,
 	};
 
-	memset(md5_ctx.hash, 0, sizeof(hdr->md5_digest));
+	md5_init(&md5_ctx);
 	md5_update(&md5_ctx, p, len);
 }