Skip to content

Commit 86c1185

Browse files
committed
updated openssl MD5 sum calculation API usage
1 parent 03f393b commit 86c1185

File tree

1 file changed

+18
-8
lines changed

1 file changed

+18
-8
lines changed

src/util.c

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
#include "config.h"
44
#include "log.h"
55

6-
#include <openssl/md5.h>
6+
#include <openssl/evp.h>
77
#include <uuid/uuid.h>
88

99
#include <errno.h>
@@ -114,17 +114,27 @@ char *generate_salt(void)
114114

115115
char *generate_md5sum(const char *str)
116116
{
117-
MD5_CTX c;
118-
unsigned char md5[MD5_DIGEST_LENGTH];
119117
size_t len = strnlen(str, MAX_PATH_LEN);
120118
char *out = CALLOC(MD5_HASH_LEN + 1, sizeof(char));
121119

122-
MD5_Init(&c);
123-
MD5_Update(&c, str, len);
124-
MD5_Final(md5, &c);
120+
EVP_MD_CTX *mdctx;
121+
unsigned char *md5_digest;
122+
unsigned int md5_digest_len = EVP_MD_size(EVP_md5());
125123

126-
for (int i = 0; i < MD5_DIGEST_LENGTH; i++) {
127-
sprintf(out + 2 * i, "%02x", md5[i]);
124+
// MD5_Init
125+
mdctx = EVP_MD_CTX_new();
126+
EVP_DigestInit_ex(mdctx, EVP_md5(), NULL);
127+
128+
// MD5_Update
129+
EVP_DigestUpdate(mdctx, str, len);
130+
131+
// MD5_Final
132+
md5_digest = (unsigned char *)OPENSSL_malloc(md5_digest_len);
133+
EVP_DigestFinal_ex(mdctx, md5_digest, &md5_digest_len);
134+
EVP_MD_CTX_free(mdctx);
135+
136+
for (unsigned int i = 0; i < md5_digest_len; i++) {
137+
sprintf(out + 2 * i, "%02x", md5_digest[i]);
128138
}
129139
return out;
130140
}

0 commit comments

Comments
 (0)