static BOOL CALLBACK _winpr_openssl_initialize(PINIT_ONCE once, PVOID param, PVOID* context) { DWORD flags = param ? *(PDWORD)param : WINPR_SSL_INIT_DEFAULT; if (flags & WINPR_SSL_INIT_ALREADY_INITIALIZED) { return TRUE; } #ifdef WINPR_OPENSSL_LOCKING_REQUIRED if (flags & WINPR_SSL_INIT_ENABLE_LOCKING) { if (!_winpr_openssl_initialize_locking()) { return FALSE; } } #endif /* SSL_load_error_strings() is void */ SSL_load_error_strings(); /* SSL_library_init() always returns "1" */ SSL_library_init(); g_winpr_openssl_initialized_by_winpr = TRUE; return TRUE; }
static BOOL CALLBACK _winpr_openssl_initialize(PINIT_ONCE once, PVOID param, PVOID* context) { DWORD flags = param ? *(PDWORD)param : WINPR_SSL_INIT_DEFAULT; if (flags & WINPR_SSL_INIT_ALREADY_INITIALIZED) { return TRUE; } #ifdef WINPR_OPENSSL_LOCKING_REQUIRED if (flags & WINPR_SSL_INIT_ENABLE_LOCKING) { if (!_winpr_openssl_initialize_locking()) { return FALSE; } } #endif /* SSL_load_error_strings() is void */ #if (OPENSSL_VERSION_NUMBER < 0x10100000L) || defined(LIBRESSL_VERSION_NUMBER) SSL_load_error_strings(); /* SSL_library_init() always returns "1" */ SSL_library_init(); OpenSSL_add_all_digests(); OpenSSL_add_all_ciphers(); #else if (OPENSSL_init_ssl(OPENSSL_INIT_LOAD_SSL_STRINGS | OPENSSL_INIT_LOAD_CRYPTO_STRINGS | OPENSSL_INIT_ADD_ALL_CIPHERS | OPENSSL_INIT_ADD_ALL_DIGESTS | OPENSSL_INIT_ENGINE_ALL_BUILTIN, NULL) != 1) return FALSE; #endif g_winpr_openssl_initialized_by_winpr = TRUE; if (flags & WINPR_SSL_INIT_ENABLE_FIPS) { #if (OPENSSL_VERSION_NUMBER < 0x10001000L) WLog_ERR(TAG, "Openssl fips mode ENable not available on openssl versions less than 1.0.1!"); #else WLog_DBG(TAG, "Ensuring openssl fips mode is ENabled"); if (FIPS_mode() != 1) { if (FIPS_mode_set(1)) WLog_INFO(TAG, "Openssl fips mode ENabled!"); else WLog_ERR(TAG, "Openssl fips mode ENable failed!"); } #endif } return TRUE; }
static BOOL CALLBACK _winpr_openssl_initialize(PINIT_ONCE once, PVOID param, PVOID* context) { DWORD flags = param ? *(PDWORD)param : WINPR_SSL_INIT_DEFAULT; if (flags & WINPR_SSL_INIT_ALREADY_INITIALIZED) { return TRUE; } #ifdef WINPR_OPENSSL_LOCKING_REQUIRED if (flags & WINPR_SSL_INIT_ENABLE_LOCKING) { if (!_winpr_openssl_initialize_locking()) { return FALSE; } } #endif /* SSL_load_error_strings() is void */ #if (OPENSSL_VERSION_NUMBER < 0x10100000L) || defined(LIBRESSL_VERSION_NUMBER) SSL_load_error_strings(); /* SSL_library_init() always returns "1" */ SSL_library_init(); OpenSSL_add_all_digests(); OpenSSL_add_all_ciphers(); #else if (OPENSSL_init_ssl(OPENSSL_INIT_LOAD_SSL_STRINGS | OPENSSL_INIT_LOAD_CRYPTO_STRINGS | OPENSSL_INIT_ADD_ALL_CIPHERS | OPENSSL_INIT_ADD_ALL_DIGESTS | OPENSSL_INIT_ENGINE_ALL_BUILTIN, NULL) != 1) return FALSE; #endif g_winpr_openssl_initialized_by_winpr = TRUE; return winpr_enable_fips(flags); }