使用openssl和libcurl的最佳实践是什么?

时间:2018-11-05 12:55:29

标签: c openssl libcurl

在我的应用程序中,两个模块正在使用openssl,libcurl和另一个模块。函数OpenSSL_add_all_algorithms将初始化所有openssl算法。但是,如果使用libcurl的curl_global_cleanup,它将清除所有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;
 }

0 个答案:

没有答案