+void* initialize_md5()
+{
+ MD5_CTX* ctx = malloc(sizeof(MD5_CTX));
+ memset(ctx, 0, sizeof(MD5_CTX));
+ MD5Init(ctx);
+ return ctx;
+}
+void update_md5(void*ctx, unsigned char*data, int len)
+{
+ MD5Update(ctx, data, len);
+}
+void finish_md5(void*ctx, unsigned char*dest)
+{
+ MD5Final(dest, ctx);
+ free(ctx);
+}
+
+