В моем приложении два модуля используют openssl, libcurl и еще один. Функция OpenSSL_add_all_algorithms будет запускать все алгоритмы openssl. Но если использовать curl_global_cleanup из libcurl, он очистит все алгоритмы ssl. Так как бороться с этими конфликтами?
int main() {
OpenSSL_add_all_algorithms();
curl_global_init(CURL_GLOBAL_ALL);
curl_global_cleanup(); // will call EVP_cleanup
const char* hash_type = "md5";
const EVP_MD* md_;
EVP_MD_CTX mdctx_;
md_ = EVP_get_digestbyname(hash_type);
if (md_ == NULL) {
fprintf(stdout, "Do get digest by name error\n");
fflush(stdout);
} else {
fprintf(stdout, "Do get digest by name succ\n");
fflush(stdout);
}
EVP_MD_CTX_init(&mdctx_);
if (EVP_DigestInit_ex(&mdctx_, md_, NULL) <= 0) {
fprintf(stdout, "Do digest init error\n");
fflush(stdout);
} else {
fprintf(stdout, "Do digest init succ\n");
fflush(stdout);
}
return 0;
}