diff --git a/lib/gssapi/ntlm/crypto.c b/lib/gssapi/ntlm/crypto.c index a5a4c2006..2a972a7ee 100644 --- a/lib/gssapi/ntlm/crypto.c +++ b/lib/gssapi/ntlm/crypto.c @@ -80,7 +80,7 @@ _gss_ntlm_set_key(struct ntlmv2_key *key, int acceptor, int sealsign, unsigned char *data, size_t len) { unsigned char out[16]; - MD5_CTX ctx; + EVP_MD_CTX ctx; const char *signmagic; const char *sealmagic; @@ -94,15 +94,19 @@ _gss_ntlm_set_key(struct ntlmv2_key *key, int acceptor, int sealsign, key->seq = 0; - MD5_Init(&ctx); - MD5_Update(&ctx, data, len); - MD5_Update(&ctx, signmagic, strlen(signmagic) + 1); - MD5_Final(key->signkey, &ctx); + EVP_MD_CTX_init(&ctx); + EVP_DigestInit_ex(&ctx, EVP_md5(), NULL); + EVP_DigestUpdate(&ctx, data, len); + EVP_DigestUpdate(&ctx, signmagic, strlen(signmagic) + 1); + EVP_DigestFinal_ex(&ctx, key->signkey, NULL); + EVP_MD_CTX_cleanup(&ctx); - MD5_Init(&ctx); - MD5_Update(&ctx, data, len); - MD5_Update(&ctx, sealmagic, strlen(sealmagic) + 1); - MD5_Final(out, &ctx); + EVP_MD_CTX_init(&ctx); + EVP_DigestInit_ex(&ctx, EVP_md5(), NULL); + EVP_DigestUpdate(&ctx, data, len); + EVP_DigestUpdate(&ctx, sealmagic, strlen(sealmagic) + 1); + EVP_DigestFinal_ex(&ctx, out, NULL); + EVP_MD_CTX_cleanup(&ctx); RC4_set_key(&key->sealkey, 16, out); if (sealsign)