2023-05-31 13:21:45 +00:00
|
|
|
diff -rupN --no-dereference openssl-3.0.9/Configurations/10-main.conf openssl-3.0.9-new/Configurations/10-main.conf
|
2023-05-31 14:52:08 +00:00
|
|
|
--- openssl-3.0.9/Configurations/10-main.conf 2023-05-31 16:36:50.583282192 +0200
|
|
|
|
+++ openssl-3.0.9-new/Configurations/10-main.conf 2023-05-31 16:36:53.329274150 +0200
|
2022-11-28 15:02:01 +00:00
|
|
|
@@ -1494,7 +1494,7 @@ my %targets = (
|
2022-02-21 19:59:05 +00:00
|
|
|
cppflags => combine("-DUNICODE -D_UNICODE -DWIN32_LEAN_AND_MEAN",
|
|
|
|
threads("-D_MT")),
|
|
|
|
lib_cppflags => "-DL_ENDIAN",
|
|
|
|
- ex_libs => add("-lws2_32 -lgdi32 -lcrypt32"),
|
|
|
|
+ ex_libs => add("-lws2_32 -lgdi32 -lcrypt32 -lpathcch"),
|
|
|
|
thread_scheme => "winthreads",
|
|
|
|
dso_scheme => "win32",
|
|
|
|
shared_target => "mingw-shared",
|
2023-05-31 13:21:45 +00:00
|
|
|
diff -rupN --no-dereference openssl-3.0.9/crypto/provider_core.c openssl-3.0.9-new/crypto/provider_core.c
|
|
|
|
--- openssl-3.0.9/crypto/provider_core.c 2023-05-30 14:31:57.000000000 +0200
|
2023-05-31 14:52:08 +00:00
|
|
|
+++ openssl-3.0.9-new/crypto/provider_core.c 2023-05-31 16:36:53.330274147 +0200
|
2022-07-08 08:35:39 +00:00
|
|
|
@@ -32,6 +32,10 @@
|
2022-02-21 19:59:05 +00:00
|
|
|
#ifndef FIPS_MODULE
|
|
|
|
# include <openssl/self_test.h>
|
|
|
|
#endif
|
|
|
|
+#ifdef _WIN32
|
|
|
|
+# include <windows.h>
|
|
|
|
+# include <pathcch.h>
|
|
|
|
+#endif
|
|
|
|
|
|
|
|
/*
|
|
|
|
* This file defines and uses a number of different structures:
|
2022-07-08 08:35:39 +00:00
|
|
|
@@ -882,6 +886,27 @@ static int provider_init(OSSL_PROVIDER *
|
2022-02-21 19:59:05 +00:00
|
|
|
|
|
|
|
if (load_dir == NULL) {
|
|
|
|
load_dir = ossl_safe_getenv("OPENSSL_MODULES");
|
|
|
|
+#ifdef _WIN32
|
|
|
|
+ if (load_dir == NULL) {
|
|
|
|
+ WCHAR execPath[MAX_PATH] = {0};
|
|
|
|
+ if( GetModuleFileNameW(NULL, execPath, _countof(execPath)) > 0)
|
|
|
|
+ {
|
|
|
|
+ PathCchRemoveFileSpec(execPath, MAX_PATH);
|
|
|
|
+ PathCchRemoveFileSpec(execPath, MAX_PATH);
|
|
|
|
+ wcsncat(execPath, L"\\lib\\ossl-modules", MAX_PATH);
|
|
|
|
+ int len = WideCharToMultiByte(CP_UTF8, 0, execPath, -1, NULL, 0, NULL, NULL);
|
|
|
|
+ if (len > 0)
|
|
|
|
+ {
|
|
|
|
+ allocated_load_dir = OPENSSL_malloc(len);
|
|
|
|
+ if (WideCharToMultiByte(CP_UTF8, 0, execPath, -1, allocated_load_dir, len, NULL, NULL) == len)
|
|
|
|
+ {
|
|
|
|
+ load_dir = allocated_load_dir;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+#endif
|
|
|
|
+
|
|
|
|
if (load_dir == NULL)
|
|
|
|
load_dir = MODULESDIR;
|
|
|
|
}
|