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 --- .../lib-common/api-ms-win-security-cryptoapi-l1-1-0.def | 9 ++++----- .../lib32/api-ms-win-security-cryptoapi-l1-1-0.def | 9 ++++----- mingw-w64-libraries/winstorecompat/Makefile.am | 1 - 3 files changed, 8 insertions(+), 11 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 93bdb91e6..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,9 +2,8 @@ LIBRARY api-ms-win-security-cryptoapi-l1-1-0 EXPORTS -; Implemented in windowsappcompat -;CryptAcquireContextA -;CryptAcquireContextW +CryptAcquireContextA +CryptAcquireContextW CryptCreateHash CryptDecrypt CryptDeriveKey @@ -16,7 +15,7 @@ CryptEnumProvidersA CryptEnumProvidersW CryptExportKey CryptGenKey -;CryptGenRandom +CryptGenRandom CryptGetDefaultProviderA CryptGetDefaultProviderW CryptGetHashParam @@ -25,7 +24,7 @@ CryptGetProvParam CryptGetUserKey CryptHashData CryptImportKey -;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 e175547ec..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,9 +2,8 @@ LIBRARY api-ms-win-security-cryptoapi-l1-1-0 EXPORTS -; Implemented in windowsappcompat -;CryptAcquireContextA@20 -;CryptAcquireContextW@20 +CryptAcquireContextA@20 +CryptAcquireContextW@20 CryptCreateHash@20 CryptDecrypt@24 CryptDeriveKey@20 @@ -16,7 +15,7 @@ CryptEnumProvidersA@24 CryptEnumProvidersW@24 CryptExportKey@24 CryptGenKey@16 -;CryptGenRandom@12 +CryptGenRandom@12 CryptGetDefaultProviderA@20 CryptGetDefaultProviderW@20 CryptGetHashParam@20 @@ -25,7 +24,7 @@ CryptGetProvParam@20 CryptGetUserKey@12 CryptHashData@16 CryptImportKey@24 -;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 8b3312312..469b28b19 100644 --- a/mingw-w64-libraries/winstorecompat/Makefile.am +++ b/mingw-w64-libraries/winstorecompat/Makefile.am @@ -59,7 +59,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 [email protected] https://lists.sourceforge.net/lists/listinfo/mingw-w64-public
