Skip to content

Commit

Permalink
FIX signalwire#1762 update switch_apr.c for openssl3
Browse files Browse the repository at this point in the history
Low-level openssl api was deprecated in openssl3.0 leading to errors during compile. 
Update switch_md5 method to use the openssl high-level api. 
syntax plagiarized from: 
https://stackoverflow.com/questions/69806220/advice-needed-for-migration-of-low-level-openssl-api-to-high-level-openssl-apis
  • Loading branch information
jpfox156 committed Aug 21, 2022
1 parent db3dd53 commit f988b07
Showing 1 changed file with 13 additions and 4 deletions.
17 changes: 13 additions & 4 deletions src/switch_apr.c
Original file line number Diff line number Diff line change
Expand Up @@ -1171,11 +1171,20 @@ SWITCH_DECLARE(switch_status_t) switch_md5(unsigned char digest[SWITCH_MD5_DIGES

return SWITCH_STATUS_SUCCESS;
#elif defined(HAVE_LIBCRYPTO)
MD5_CTX md5_context;
EVP_MD_CTX *mdctx;
unsigned int digestLen = EVP_MD_size(EVP_md5());

// MD5_Init
mdctx = EVP_MD_CTX_new();
EVP_DigestInit_ex(mdctx, EVP_md5(), NULL);

// MD5_Update
EVP_DigestUpdate(mdctx, input, inputLen);

MD5_Init(&md5_context);
MD5_Update(&md5_context, input, inputLen);
MD5_Final(digest, &md5_context);
// MD5_Final
digest = (unsigned char *)OPENSSL_malloc(digestLen);
EVP_DigestFinal_ex(mdctx, digest, &digestLen);
EVP_MD_CTX_free(mdctx);

return SWITCH_STATUS_SUCCESS;
#else
Expand Down

0 comments on commit f988b07

Please sign in to comment.