5 #include <boost/filesystem/path.hpp>
17 static path orderindependentstorage;
18 return orderindependentstorage;
22 ERR_load_crypto_strings();
23 OpenSSL_add_all_algorithms();
26 if(boostPath.empty() ==
false)
28 std::string varSetting(
"OPENSSL_CONF=");
31 _putenv((
char*)varSetting.c_str());
33 putenv((
char*)varSetting.c_str());
36 #if OPENSSL_VERSION_NUMBER < 0x10100000L
40 OPENSSL_config(
nullptr);
46 #if not defined(LIBRESSL_VERSION_NUMBER)
51 CONF_modules_unload(1);
53 CRYPTO_cleanup_all_ex_data();
69 #define SSL_TYPE_IMPL(name, ssl_type, free_func) \
70 name::name( ssl_type* obj ) : ssl_wrapper(obj) {} \
71 name::name( name&& move ) : ssl_wrapper( move.obj ) \
77 if( obj != nullptr ) \
80 name& name::operator=( name&& move ) \
84 if( obj != nullptr ) \
96 SSL_TYPE_IMPL(evp_cipher_ctx, EVP_CIPHER_CTX, EVP_CIPHER_CTX_free )