vlc | branch: master | Steve Lhomme <[email protected]> | Fri Jun 19 11:13:48 2020 +0200| [d401ac307acaa1705f2552506acd23065a8bfee8] | committer: Steve Lhomme
contrib: gcrypt: clean the Winstore patches Use wincrypt/CryptAPI via winstorecompat to retain WinXP compatibility. > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=d401ac307acaa1705f2552506acd23065a8bfee8 --- ...t-use-API-s-that-are-forbidden-in-UWP-app.patch | 158 +++++++++++ ...-use-wincrypt-in-UWP-builds-if-WINSTORECO.patch | 75 ++++++ contrib/src/gcrypt/rules.mak | 5 +- contrib/src/gcrypt/winrt.patch | 292 --------------------- 4 files changed, 235 insertions(+), 295 deletions(-) diff --git a/contrib/src/gcrypt/0007-random-don-t-use-API-s-that-are-forbidden-in-UWP-app.patch b/contrib/src/gcrypt/0007-random-don-t-use-API-s-that-are-forbidden-in-UWP-app.patch new file mode 100644 index 0000000000..7d888e5fba --- /dev/null +++ b/contrib/src/gcrypt/0007-random-don-t-use-API-s-that-are-forbidden-in-UWP-app.patch @@ -0,0 +1,158 @@ +From 95cc768cce8de579d0414830fe1d93c15f9594a7 Mon Sep 17 00:00:00 2001 +From: Steve Lhomme <[email protected]> +Date: Fri, 19 Jun 2020 10:40:06 +0200 +Subject: [PATCH 7/9] random: don't use API's that are forbidden in UWP apps to + init the random generator + +--- + random/rndw32.c | 29 +++++++++++++++++++++++++---- + 1 file changed, 25 insertions(+), 4 deletions(-) + +diff --git a/random/rndw32.c b/random/rndw32.c +index aefc7275..45d1e7e7 100644 +--- a/random/rndw32.c ++++ b/random/rndw32.c +@@ -337,6 +337,7 @@ read_mbm_data (void (*add)(const void*, size_t, enum random_origins), + HANDLE hMBMData; + SharedData *mbmDataPtr; + ++#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP) + hMBMData = OpenFileMapping (FILE_MAP_READ, FALSE, "$M$B$M$5$S$D$" ); + if (hMBMData) + { +@@ -351,6 +352,7 @@ read_mbm_data (void (*add)(const void*, size_t, enum random_origins), + } + CloseHandle (hMBMData); + } ++#endif /* WINAPI_PARTITION_DESKTOP */ + } + + +@@ -359,6 +361,7 @@ static void + registry_poll (void (*add)(const void*, size_t, enum random_origins), + enum random_origins requester) + { ++#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP) + static int cbPerfData = PERFORMANCE_BUFFER_SIZE; + int iterations; + DWORD dwSize, status; +@@ -478,6 +481,7 @@ registry_poll (void (*add)(const void*, size_t, enum random_origins), + isn't done then any system components which provide performance data + can't be removed or changed while the handle remains active. */ + RegCloseKey (HKEY_PERFORMANCE_DATA); ++#endif /* WINAPI_PARTITION_DESKTOP */ + } + + +@@ -496,6 +500,7 @@ slow_gatherer ( void (*add)(const void*, size_t, enum random_origins), + + if ( !is_initialized ) + { ++#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP) + HKEY hKey; + + if ( debug_me ) +@@ -565,6 +570,10 @@ slow_gatherer ( void (*add)(const void*, size_t, enum random_origins), + if (!pNtQuerySystemInformation || !pNtQueryInformationProcess) + hNTAPI = NULL; + } ++#else /* !WINAPI_PARTITION_DESKTOP */ ++ hNetAPI32 = NULL; ++ hNTAPI = NULL; ++#endif /* !WINAPI_PARTITION_DESKTOP */ + + + is_initialized = 1; +@@ -594,6 +603,7 @@ slow_gatherer ( void (*add)(const void*, size_t, enum random_origins), + } + } + ++#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP) + /* Get disk I/O statistics for all the hard drives. 100 is an + arbitrary failsafe limit. */ + for (drive_no = 0; drive_no < 100 ; drive_no++) +@@ -628,6 +638,7 @@ slow_gatherer ( void (*add)(const void*, size_t, enum random_origins), + } + CloseHandle (hDevice); + } ++#endif /* WINAPI_PARTITION_DESKTOP */ + + /* In theory we should be using the Win32 performance query API to obtain + unpredictable data from the system, however this is so unreliable (see +@@ -786,12 +797,16 @@ _gcry_rndw32_gather_random (void (*add)(const void*, size_t, + + if (!is_initialized) + { ++#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP) + OSVERSIONINFO osvi = { sizeof( osvi ) }; + + GetVersionEx( &osvi ); + if (osvi.dwPlatformId != VER_PLATFORM_WIN32_NT) + log_fatal ("can only run on a Windows NT platform\n" ); + system_is_w2000 = (osvi.dwMajorVersion == 5 && osvi.dwMinorVersion == 0); ++#else /* !WINAPI_PARTITION_DESKTOP */ ++ system_is_w2000 = 0; ++#endif /* !WINAPI_PARTITION_DESKTOP */ + init_system_rng (); + is_initialized = 1; + } +@@ -842,14 +857,11 @@ _gcry_rndw32_gather_random_fast (void (*add)(const void*, size_t, + ADDINT((SIZE_T)aptr); \ + } while (0) + ++#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP) + ADDPTR ( GetActiveWindow ()); + ADDPTR ( GetCapture ()); + ADDPTR ( GetClipboardOwner ()); + ADDPTR ( GetClipboardViewer ()); +- ADDPTR ( GetCurrentProcess ()); +- ADDINT ( GetCurrentProcessId ()); +- ADDPTR ( GetCurrentThread ()); +- ADDINT ( GetCurrentThreadId ()); + ADDPTR ( GetDesktopWindow ()); + ADDPTR ( GetFocus ()); + ADDINT ( GetInputState ()); +@@ -858,6 +870,11 @@ _gcry_rndw32_gather_random_fast (void (*add)(const void*, size_t, + ADDPTR ( GetOpenClipboardWindow ()); + ADDPTR ( GetProcessHeap ()); + ADDPTR ( GetProcessWindowStation ()); ++#endif /* WINAPI_PARTITION_DESKTOP */ ++ ADDPTR ( GetCurrentProcess ()); ++ ADDINT ( GetCurrentProcessId ()); ++ ADDPTR ( GetCurrentThread ()); ++ ADDINT ( GetCurrentThreadId ()); + /* Following function in some cases stops returning events, and cannot + be used as an entropy source. */ + /*ADDINT ( GetQueueStatus (QS_ALLEVENTS));*/ +@@ -871,6 +888,7 @@ _gcry_rndw32_gather_random_fast (void (*add)(const void*, size_t, + + /* Get multiword system information: Current caret position, current + mouse cursor position. */ ++#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP) + { + POINT point; + +@@ -922,10 +940,12 @@ _gcry_rndw32_gather_random_fast (void (*add)(const void*, size_t, + (*add) ( &minimumWorkingSetSize, sizeof (int), origin ); + (*add) ( &maximumWorkingSetSize, sizeof (int), origin ); + } ++#endif /* WINAPI_PARTITION_DESKTOP */ + + + /* The following are fixed for the lifetime of the process so we only + * add them once */ ++#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP) + if (!addedFixedItems) + { + STARTUPINFO startupInfo; +@@ -938,6 +958,7 @@ _gcry_rndw32_gather_random_fast (void (*add)(const void*, size_t, + (*add) ( &startupInfo, sizeof (STARTUPINFO), origin ); + addedFixedItems = 1; + } ++#endif /* WINAPI_PARTITION_DESKTOP */ + + /* The performance of QPC varies depending on the architecture it's + running on and on the OS, the MS documentation is vague about the +-- +2.26.0.windows.1 + diff --git a/contrib/src/gcrypt/0008-random-only-use-wincrypt-in-UWP-builds-if-WINSTORECO.patch b/contrib/src/gcrypt/0008-random-only-use-wincrypt-in-UWP-builds-if-WINSTORECO.patch new file mode 100644 index 0000000000..fdc59b8041 --- /dev/null +++ b/contrib/src/gcrypt/0008-random-only-use-wincrypt-in-UWP-builds-if-WINSTORECO.patch @@ -0,0 +1,75 @@ +From 1b09aa078628e93c0f95f0d5e20e708f81068bf5 Mon Sep 17 00:00:00 2001 +From: Steve Lhomme <[email protected]> +Date: Fri, 19 Jun 2020 10:37:50 +0200 +Subject: [PATCH 8/9] random: only use wincrypt in UWP builds if WINSTORECOMPAT + is set + +This is a compatibility library to use older APIs that are forbidden in UWP apps. + +bcrypt is supposed to be used instead of wincrypt but is only available since +Vista. +--- + random/rndw32.c | 17 +++++++++++++++++ + src/Makefile.am | 4 +++- + 2 files changed, 20 insertions(+), 1 deletion(-) + +diff --git a/random/rndw32.c b/random/rndw32.c +index 45d1e7e7..8b0a38fa 100644 +--- a/random/rndw32.c ++++ b/random/rndw32.c +@@ -98,6 +98,9 @@ + + /* We don't include wincrypt.h so define it here. */ + #define HCRYPTPROV HANDLE ++#if !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) && defined(WINSTORECOMPAT) ++#include <wincrypt.h> ++#endif + + + /* When we query the performance counters, we allocate an initial buffer and +@@ -259,6 +262,7 @@ init_system_rng (void) + system_rng_available = 0; + hRNGProv = NULL; + ++#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) + hAdvAPI32 = GetModuleHandle ("AdvAPI32.dll"); + if (!hAdvAPI32) + return; +@@ -274,6 +278,19 @@ init_system_rng (void) + This isn't exported by name, so we have to get it by ordinal. */ + pRtlGenRandom = (RTLGENRANDOM) + GetProcAddress (hAdvAPI32, "SystemFunction036"); ++#elif defined(WINSTORECOMPAT) ++ hAdvAPI32 = NULL; ++ pCryptAcquireContext = CryptAcquireContextA; ++ pCryptGenRandom = CryptGenRandom; ++ pCryptReleaseContext = CryptReleaseContext; ++ pRtlGenRandom = NULL; ++#else /* !WINAPI_PARTITION_DESKTOP && !WINSTORECOMPAT */ ++ hAdvAPI32 = NULL; ++ pCryptAcquireContext = NULL; ++ pCryptGenRandom = NULL; ++ pCryptReleaseContext = NULL; ++ pRtlGenRandom = NULL; ++#endif /* WINSTORECOMPAT */ + + /* Try and connect to the PIII RNG CSP. The AMD 768 southbridge (from + the 760 MP chipset) also has a hardware RNG, but there doesn't appear +diff --git a/src/Makefile.am b/src/Makefile.am +index 3cc4a552..a22acd41 100644 +--- a/src/Makefile.am ++++ b/src/Makefile.am +@@ -123,7 +123,9 @@ libgcrypt_la_LIBADD = $(gcrypt_res) \ + ../random/librandom.la \ + ../mpi/libmpi.la \ + ../compat/libcompat.la $(GPG_ERROR_LIBS) +- ++if HAVE_W32_SYSTEM ++libgcrypt_la_LIBADD += -lbcrypt ++endif + + dumpsexp_SOURCES = dumpsexp.c + dumpsexp_CFLAGS = $(arch_gpg_error_cflags) +-- +2.26.0.windows.1 + diff --git a/contrib/src/gcrypt/rules.mak b/contrib/src/gcrypt/rules.mak index 625ff30d71..d778cf0b9a 100644 --- a/contrib/src/gcrypt/rules.mak +++ b/contrib/src/gcrypt/rules.mak @@ -19,9 +19,8 @@ gcrypt: libgcrypt-$(GCRYPT_VERSION).tar.bz2 .sum-gcrypt $(APPLY) $(SRC)/gcrypt/0001-random-Don-t-assume-that-_WIN64-implies-x86_64.patch $(APPLY) $(SRC)/gcrypt/0002-aarch64-mpi-Fix-building-the-mpi-aarch64-assembly-fo.patch $(APPLY) $(SRC)/gcrypt/0001-compat-provide-a-getpid-replacement-that-works-on-Wi.patch -ifdef HAVE_WINSTORE - $(APPLY) $(SRC)/gcrypt/winrt.patch -endif + $(APPLY) $(SRC)/gcrypt/0007-random-don-t-use-API-s-that-are-forbidden-in-UWP-app.patch + $(APPLY) $(SRC)/gcrypt/0008-random-only-use-wincrypt-in-UWP-builds-if-WINSTORECO.patch ifdef HAVE_WIN64 $(APPLY) $(SRC)/gcrypt/64bits-relocation.patch endif diff --git a/contrib/src/gcrypt/winrt.patch b/contrib/src/gcrypt/winrt.patch deleted file mode 100644 index c01ec2d3ba..0000000000 --- a/contrib/src/gcrypt/winrt.patch +++ /dev/null @@ -1,292 +0,0 @@ ---- gcrypt/random/rndw32.c 2017-05-03 12:45:22.000000000 +0200 -+++ gcrypt/random/rndw32.c.bcrypt 2018-04-05 13:11:54.339814800 +0200 -@@ -96,8 +96,8 @@ - value in a newer release. So we use a far larger value. */ - #define SIZEOF_DISK_PERFORMANCE_STRUCT 256 - --/* We don't include wincrypt.h so define it here. */ --#define HCRYPTPROV HANDLE -+#include <winapifamily.h> -+#include <bcrypt.h> - - - /* When we query the performance counters, we allocate an initial buffer and -@@ -140,25 +140,13 @@ typedef DWORD (WINAPI *NTPOWERINFORMATIO - ULONG inputBufferLength, PVOID outputBuffer, ULONG outputBufferLength ); - - /* Type definitions for function pointers to call CryptoAPI functions. */ --typedef BOOL (WINAPI *CRYPTACQUIRECONTEXT)(HCRYPTPROV *phProv, -- LPCTSTR pszContainer, -- LPCTSTR pszProvider, -- DWORD dwProvType, -- DWORD dwFlags); --typedef BOOL (WINAPI *CRYPTGENRANDOM)(HCRYPTPROV hProv, DWORD dwLen, -- BYTE *pbBuffer); --typedef BOOL (WINAPI *CRYPTRELEASECONTEXT)(HCRYPTPROV hProv, DWORD dwFlags); -- --/* Somewhat alternative functionality available as a direct call, for -- Windows XP and newer. This is the CryptoAPI RNG, which isn't anywhere -- near as good as the HW RNG, but we use it if it's present on the basis -- that at least it can't make things any worse. This direct access version -- is only available under Windows XP, we don't go out of our way to access -- the more general CryptoAPI one since the main purpose of using it is to -- take advantage of any possible future hardware RNGs that may be added, -- for example via TCPA devices. */ --typedef BOOL (WINAPI *RTLGENRANDOM)(PVOID RandomBuffer, -- ULONG RandomBufferLength); -+typedef NTSTATUS (WINAPI *CRYPTOPENALGORITHMPROVIDER)(BCRYPT_ALG_HANDLE *phAlgorithm, -+ LPCWSTR pszAlgId, -+ LPCWSTR pszImplementation, -+ DWORD dwFlags); -+typedef NTSTATUS (WINAPI *CRYPTGENRANDOM)(BCRYPT_ALG_HANDLE hAlgorithm, UCHAR *pbBuffer, -+ ULONG cbBuffer, ULONG dwFlags); -+typedef BOOL (WINAPI *CRYPTCLOSEALGORITHMPROVIDER)(BCRYPT_ALG_HANDLE hAlgorithm, DWORD dwFlags); - - - -@@ -234,16 +222,17 @@ static NTQUERYSYSTEMINFORMATION pNtQuer - static NTQUERYINFORMATIONPROCESS pNtQueryInformationProcess; - static NTPOWERINFORMATION pNtPowerInformation; - --static HANDLE hAdvAPI32; --static CRYPTACQUIRECONTEXT pCryptAcquireContext; --static CRYPTGENRANDOM pCryptGenRandom; --static CRYPTRELEASECONTEXT pCryptReleaseContext; --static RTLGENRANDOM pRtlGenRandom; -+#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) -+static HANDLE hBcrypt; -+#endif -+static CRYPTOPENALGORITHMPROVIDER pBCryptOpenAlgorithmProvider; -+static CRYPTGENRANDOM pBCryptGenRandom; -+static CRYPTCLOSEALGORITHMPROVIDER pBCryptCloseAlgorithmProvider; - - - /* Other module global variables. */ - static int system_rng_available; /* Whether a system RNG is available. */ --static HCRYPTPROV hRNGProv; /* Handle to Intel RNG CSP. */ -+static BCRYPT_ALG_HANDLE hRNGProv; /* Handle to Intel RNG CSP. */ - - static int debug_me; /* Debug flag. */ - -@@ -259,21 +248,22 @@ init_system_rng (void) - system_rng_available = 0; - hRNGProv = NULL; - -- hAdvAPI32 = GetModuleHandle ("AdvAPI32.dll"); -- if (!hAdvAPI32) -+#if !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) -+ pBCryptOpenAlgorithmProvider = (CRYPTOPENALGORITHMPROVIDER) BCryptOpenAlgorithmProvider; -+ pBCryptGenRandom = (CRYPTGENRANDOM) BCryptGenRandom; -+ pBCryptCloseAlgorithmProvider = (CRYPTCLOSEALGORITHMPROVIDER) BCryptCloseAlgorithmProvider; -+#else -+ hBcrypt = GetModuleHandle ("bcrypt.dll"); -+ if (!hBcrypt) - return; - -- pCryptAcquireContext = (CRYPTACQUIRECONTEXT) -- GetProcAddress (hAdvAPI32, "CryptAcquireContextA"); -- pCryptGenRandom = (CRYPTGENRANDOM) -- GetProcAddress (hAdvAPI32, "CryptGenRandom"); -- pCryptReleaseContext = (CRYPTRELEASECONTEXT) -- GetProcAddress (hAdvAPI32, "CryptReleaseContext"); -- -- /* Get a pointer to the native randomness function if it's available. -- This isn't exported by name, so we have to get it by ordinal. */ -- pRtlGenRandom = (RTLGENRANDOM) -- GetProcAddress (hAdvAPI32, "SystemFunction036"); -+ pBCryptOpenAlgorithmProvider = (CRYPTOPENALGORITHMPROVIDER) -+ GetProcAddress (hBcrypt, "BCryptOpenAlgorithmProvider"); -+ pBCryptGenRandom = (CRYPTGENRANDOM) -+ GetProcAddress (hBcrypt, "BCryptGenRandom"); -+ pBCryptCloseAlgorithmProvider = (CRYPTCLOSEALGORITHMPROVIDER) -+ GetProcAddress (hBcrypt, "BCryptCloseAlgorithmProvider"); -+#endif - - /* Try and connect to the PIII RNG CSP. The AMD 768 southbridge (from - the 760 MP chipset) also has a hardware RNG, but there doesn't appear -@@ -281,12 +271,13 @@ init_system_rng (void) - can't do much with it. OTOH the Intel RNG is also effectively dead - as well, mostly due to virtually nonexistent support/marketing by - Intel, it's included here mostly for form's sake. */ -- if ( (!pCryptAcquireContext || !pCryptGenRandom || !pCryptReleaseContext -- || !pCryptAcquireContext (&hRNGProv, NULL, INTEL_DEF_PROV, -- PROV_INTEL_SEC, 0) ) -- && !pRtlGenRandom) -- { -- hAdvAPI32 = NULL; -+ if ( (!pBCryptOpenAlgorithmProvider || !pBCryptGenRandom || !pBCryptCloseAlgorithmProvider -+ || !pBCryptOpenAlgorithmProvider (&hRNGProv, BCRYPT_RNG_ALGORITHM, -+ MS_PRIMITIVE_PROVIDER, 0) ) ) -+ { -+#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) -+ hBcrypt = NULL; -+#endif - } - else - system_rng_available = 1; -@@ -309,14 +300,9 @@ read_system_rng (void (*add)(const void* - software RNG) in case it's broken in some way. */ - if (hRNGProv) - { -- if (pCryptGenRandom (hRNGProv, SYSTEMRNG_BYTES, buffer)) -+ if (pBCryptGenRandom (hRNGProv, buffer, SYSTEMRNG_BYTES, 0)) - quality = 80; - } -- else if (pRtlGenRandom) -- { -- if ( pRtlGenRandom (buffer, SYSTEMRNG_BYTES)) -- quality = 50; -- } - if (quality > 0) - { - if (debug_me) -@@ -337,6 +323,7 @@ read_mbm_data (void (*add)(const void*, - HANDLE hMBMData; - SharedData *mbmDataPtr; - -+#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP) - hMBMData = OpenFileMapping (FILE_MAP_READ, FALSE, "$M$B$M$5$S$D$" ); - if (hMBMData) - { -@@ -351,6 +338,7 @@ read_mbm_data (void (*add)(const void*, - } - CloseHandle (hMBMData); - } -+#endif - } - - -@@ -359,6 +347,7 @@ static void - registry_poll (void (*add)(const void*, size_t, enum random_origins), - enum random_origins requester) - { -+#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP) - static int cbPerfData = PERFORMANCE_BUFFER_SIZE; - int iterations; - DWORD dwSize, status; -@@ -478,6 +467,7 @@ registry_poll (void (*add)(const void*, - isn't done then any system components which provide performance data - can't be removed or changed while the handle remains active. */ - RegCloseKey (HKEY_PERFORMANCE_DATA); -+#endif - } - - -@@ -496,6 +486,7 @@ slow_gatherer ( void (*add)(const void*, - - if ( !is_initialized ) - { -+#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP) - HKEY hKey; - - if ( debug_me ) -@@ -565,6 +556,7 @@ slow_gatherer ( void (*add)(const void*, - if (!pNtQuerySystemInformation || !pNtQueryInformationProcess) - hNTAPI = NULL; - } -+#endif - - - is_initialized = 1; -@@ -594,6 +586,7 @@ slow_gatherer ( void (*add)(const void*, - } - } - -+#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP) - /* Get disk I/O statistics for all the hard drives. 100 is an - arbitrary failsafe limit. */ - for (drive_no = 0; drive_no < 100 ; drive_no++) -@@ -628,6 +621,7 @@ slow_gatherer ( void (*add)(const void*, - } - CloseHandle (hDevice); - } -+#endif - - /* In theory we should be using the Win32 performance query API to obtain - unpredictable data from the system, however this is so unreliable (see -@@ -786,12 +780,16 @@ _gcry_rndw32_gather_random (void (*add)( - - if (!is_initialized) - { -+#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP) - OSVERSIONINFO osvi = { sizeof( osvi ) }; - - GetVersionEx( &osvi ); - if (osvi.dwPlatformId != VER_PLATFORM_WIN32_NT) - log_fatal ("can only run on a Windows NT platform\n" ); - system_is_w2000 = (osvi.dwMajorVersion == 5 && osvi.dwMinorVersion == 0); -+#else -+ system_is_w2000 = 0; -+#endif - init_system_rng (); - is_initialized = 1; - } -@@ -842,14 +840,11 @@ _gcry_rndw32_gather_random_fast (void (* - ADDINT((SIZE_T)aptr); \ - } while (0) - -+#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP) - ADDPTR ( GetActiveWindow ()); - ADDPTR ( GetCapture ()); - ADDPTR ( GetClipboardOwner ()); - ADDPTR ( GetClipboardViewer ()); -- ADDPTR ( GetCurrentProcess ()); -- ADDINT ( GetCurrentProcessId ()); -- ADDPTR ( GetCurrentThread ()); -- ADDINT ( GetCurrentThreadId ()); - ADDPTR ( GetDesktopWindow ()); - ADDPTR ( GetFocus ()); - ADDINT ( GetInputState ()); -@@ -858,6 +853,11 @@ _gcry_rndw32_gather_random_fast (void (* - ADDPTR ( GetOpenClipboardWindow ()); - ADDPTR ( GetProcessHeap ()); - ADDPTR ( GetProcessWindowStation ()); -+#endif -+ ADDPTR ( GetCurrentProcess ()); -+ ADDINT ( GetCurrentProcessId ()); -+ ADDPTR ( GetCurrentThread ()); -+ ADDINT ( GetCurrentThreadId ()); - /* Following function in some cases stops returning events, and cannot - be used as an entropy source. */ - /*ADDINT ( GetQueueStatus (QS_ALLEVENTS));*/ -@@ -871,6 +871,7 @@ _gcry_rndw32_gather_random_fast (void (* - - /* Get multiword system information: Current caret position, current - mouse cursor position. */ -+#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP) - { - POINT point; - -@@ -922,10 +923,12 @@ _gcry_rndw32_gather_random_fast (void (* - (*add) ( &minimumWorkingSetSize, sizeof (int), origin ); - (*add) ( &maximumWorkingSetSize, sizeof (int), origin ); - } -+#endif - - - /* The following are fixed for the lifetime of the process so we only - * add them once */ -+#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP) - if (!addedFixedItems) - { - STARTUPINFO startupInfo; -@@ -938,6 +941,7 @@ _gcry_rndw32_gather_random_fast (void (* - (*add) ( &startupInfo, sizeof (STARTUPINFO), origin ); - addedFixedItems = 1; - } -+#endif - - /* The performance of QPC varies depending on the architecture it's - running on and on the OS, the MS documentation is vague about the ---- gcrypt/src/Makefile.am.bcrypt 2020-04-28 09:01:19.967622400 +0200 -+++ gcrypt/src/Makefile.am 2020-04-28 09:01:57.814996100 +0200 -@@ -123,6 +123,9 @@ libgcrypt_la_LIBADD = $(gcrypt_res) \ - ../random/librandom.la \ - ../mpi/libmpi.la \ - ../compat/libcompat.la $(GPG_ERROR_LIBS) -+if HAVE_W32_SYSTEM -+libgcrypt_la_LIBADD += -lbcrypt -+endif - - - dumpsexp_SOURCES = dumpsexp.c _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
