The hidden API are found in windowsapp since the RS4/19H1 SDK. They are
also allowed by the WACK in api-ms-win-security-cryptoapi-l1-1-0.
That DLL has been on all Windows 10 versions [1].

It's better to use the real API than using CCryptography winrt API just for
these calls.

Crypto.c is kept in the old winstorecompat when targetting Windows 8.

Apps targetting UWP before 19H1 and using CryptGenRandom may not work
if api-ms-win-security-cryptoapi-l1-1-0.dll on older Windows doesn't
contain the entry.

[1] 
https://learn.microsoft.com/en-us/uwp/win32-and-com/win32-apis#apis-from-api-ms-win-security-cryptoapi-l1-1-0dll
---
 .../api-ms-win-security-cryptoapi-l1-1-0.def         | 12 ++++--------
 .../lib32/api-ms-win-security-cryptoapi-l1-1-0.def   | 12 ++++--------
 mingw-w64-libraries/winstorecompat/Makefile.am       |  1 -
 3 files changed, 8 insertions(+), 17 deletions(-)

diff --git a/mingw-w64-crt/lib-common/api-ms-win-security-cryptoapi-l1-1-0.def 
b/mingw-w64-crt/lib-common/api-ms-win-security-cryptoapi-l1-1-0.def
index 08bd2c35e..ebeeda2c5 100644
--- a/mingw-w64-crt/lib-common/api-ms-win-security-cryptoapi-l1-1-0.def
+++ b/mingw-w64-crt/lib-common/api-ms-win-security-cryptoapi-l1-1-0.def
@@ -2,10 +2,8 @@ LIBRARY api-ms-win-security-cryptoapi-l1-1-0
 
 EXPORTS
 
-; Implemented in windowsappcompat
-;CryptAcquireContextA
-; Implemented in windowsappcompat
-;CryptAcquireContextW
+CryptAcquireContextA
+CryptAcquireContextW
 CryptCreateHash
 CryptDecrypt
 CryptDeriveKey
@@ -17,8 +15,7 @@ CryptEnumProvidersA
 CryptEnumProvidersW
 CryptExportKey
 CryptGenKey
-; Implemented in windowsappcompat
-;CryptGenRandom
+CryptGenRandom
 CryptGetDefaultProviderA
 CryptGetDefaultProviderW
 CryptGetHashParam
@@ -27,8 +24,7 @@ CryptGetProvParam
 CryptGetUserKey
 CryptHashData
 CryptImportKey
-; Implemented in windowsappcompat
-;CryptReleaseContext
+CryptReleaseContext
 CryptSetHashParam
 CryptSetKeyParam
 CryptSetProviderW
diff --git a/mingw-w64-crt/lib32/api-ms-win-security-cryptoapi-l1-1-0.def 
b/mingw-w64-crt/lib32/api-ms-win-security-cryptoapi-l1-1-0.def
index c851a41c9..2590c143c 100644
--- a/mingw-w64-crt/lib32/api-ms-win-security-cryptoapi-l1-1-0.def
+++ b/mingw-w64-crt/lib32/api-ms-win-security-cryptoapi-l1-1-0.def
@@ -2,10 +2,8 @@ LIBRARY api-ms-win-security-cryptoapi-l1-1-0
 
 EXPORTS
 
-; Implemented in windowsappcompat
-;CryptAcquireContextA@20
-; Implemented in windowsappcompat
-;CryptAcquireContextW@20
+CryptAcquireContextA@20
+CryptAcquireContextW@20
 CryptCreateHash@20
 CryptDecrypt@24
 CryptDeriveKey@20
@@ -17,8 +15,7 @@ CryptEnumProvidersA@24
 CryptEnumProvidersW@24
 CryptExportKey@24
 CryptGenKey@16
-; Implemented in windowsappcompat
-;CryptGenRandom@12
+CryptGenRandom@12
 CryptGetDefaultProviderA@20
 CryptGetDefaultProviderW@20
 CryptGetHashParam@20
@@ -27,8 +24,7 @@ CryptGetProvParam@20
 CryptGetUserKey@12
 CryptHashData@16
 CryptImportKey@24
-; Implemented in windowsappcompat
-;CryptReleaseContext@8
+CryptReleaseContext@8
 CryptSetHashParam@16
 CryptSetKeyParam@16
 CryptSetProviderW@8
diff --git a/mingw-w64-libraries/winstorecompat/Makefile.am 
b/mingw-w64-libraries/winstorecompat/Makefile.am
index 99016a051..55fb45841 100644
--- a/mingw-w64-libraries/winstorecompat/Makefile.am
+++ b/mingw-w64-libraries/winstorecompat/Makefile.am
@@ -57,7 +57,6 @@ libwindowsappcompat_a_SOURCES = \
   src/GetFileSize.c \
   src/SHGetFolderPathW.c \
   src/QueueTimer.c \
-  src/Crypto.c \
   src/GetStartupInfo.c \
   src/EnumProcessModules.c \
   src/RtlAddFunctionTable.c \
-- 
2.39.2



_______________________________________________
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public

Reply via email to