The API's are allowed in windowsapp since RS4 and are allowed by the WACK.
Only the MS header don't specify it properly for WINAPI_FAMILY_PC_APP
but since the DLL is on all WINAPI_FAMILY_DESKTOP_APP and allowed by the
WACK this always works.

CMS_DH_KEY_INFO is needed by CryptSetKeyParam().
---
 mingw-w64-headers/include/wincrypt.h | 42 +++++++++++++++-------------
 1 file changed, 23 insertions(+), 19 deletions(-)

diff --git a/mingw-w64-headers/include/wincrypt.h 
b/mingw-w64-headers/include/wincrypt.h
index 05fd577fb..4bcc3ff70 100644
--- a/mingw-w64-headers/include/wincrypt.h
+++ b/mingw-w64-headers/include/wincrypt.h
@@ -785,6 +785,29 @@ extern "C" {
   WINIMPM WINBOOL WINAPI CryptReleaseContext (HCRYPTPROV hProv, DWORD dwFlags);
 #endif
 #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
+#define CryptEnumProviders __MINGW_NAME_AW(CryptEnumProviders)
+#define CryptEnumProviderTypes __MINGW_NAME_AW(CryptEnumProviderTypes)
+#define CryptSetProvider __MINGW_NAME_AW(CryptSetProvider)
+#define CryptSetProviderEx __MINGW_NAME_AW(CryptSetProviderEx)
+
+  WINIMPM WINBOOL WINAPI CryptHashSessionKey (HCRYPTHASH hHash, HCRYPTKEY 
hKey, DWORD dwFlags);
+  WINIMPM WINBOOL WINAPI CryptSetProviderA (LPCSTR pszProvName, DWORD 
dwProvType);
+  WINIMPM WINBOOL WINAPI CryptSetProviderW (LPCWSTR pszProvName, DWORD 
dwProvType);
+  WINIMPM WINBOOL WINAPI CryptSetProviderExA (LPCSTR pszProvName, DWORD 
dwProvType, DWORD *pdwReserved, DWORD dwFlags);
+  WINIMPM WINBOOL WINAPI CryptSetProviderExW (LPCWSTR pszProvName, DWORD 
dwProvType, DWORD *pdwReserved, DWORD dwFlags);
+  WINIMPM WINBOOL WINAPI CryptEnumProviderTypesA (DWORD dwIndex, DWORD 
*pdwReserved, DWORD dwFlags, DWORD *pdwProvType, LPSTR szTypeName, DWORD 
*pcbTypeName);
+  WINIMPM WINBOOL WINAPI CryptEnumProviderTypesW (DWORD dwIndex, DWORD 
*pdwReserved, DWORD dwFlags, DWORD *pdwProvType, LPWSTR szTypeName, DWORD 
*pcbTypeName);
+  WINIMPM WINBOOL WINAPI CryptEnumProvidersA (DWORD dwIndex, DWORD 
*pdwReserved, DWORD dwFlags, DWORD *pdwProvType, LPSTR szProvName, DWORD 
*pcbProvName);
+  WINIMPM WINBOOL WINAPI CryptEnumProvidersW (DWORD dwIndex, DWORD 
*pdwReserved, DWORD dwFlags, DWORD *pdwProvType, LPWSTR szProvName, DWORD 
*pcbProvName);
+  WINIMPM WINBOOL WINAPI CryptContextAddRef (HCRYPTPROV hProv, DWORD 
*pdwReserved, DWORD dwFlags);
+  WINIMPM WINBOOL WINAPI CryptDuplicateKey (HCRYPTKEY hKey, DWORD 
*pdwReserved, DWORD dwFlags, HCRYPTKEY *phKey);
+  WINIMPM WINBOOL WINAPI CryptDuplicateHash (HCRYPTHASH hHash, DWORD 
*pdwReserved, DWORD dwFlags, HCRYPTHASH *phHash);
+#if NTDDI_VERSION >= NTDDI_WS03
+  WINBOOL __cdecl GetEncSChannel (BYTE **pData, DWORD *dwDecSize);
+#endif
+#endif
+
+#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP) || NTDDI_VERSION >= 
NTDDI_WIN10_RS4
   typedef struct _CMS_DH_KEY_INFO {
     DWORD dwVersion;
     ALG_ID Algid;
@@ -795,11 +818,7 @@ extern "C" {
 
 #define CryptSignHash __MINGW_NAME_AW(CryptSignHash)
 #define CryptVerifySignature __MINGW_NAME_AW(CryptVerifySignature)
-#define CryptSetProvider __MINGW_NAME_AW(CryptSetProvider)
-#define CryptSetProviderEx __MINGW_NAME_AW(CryptSetProviderEx)
 #define CryptGetDefaultProvider __MINGW_NAME_AW(CryptGetDefaultProvider)
-#define CryptEnumProviderTypes __MINGW_NAME_AW(CryptEnumProviderTypes)
-#define CryptEnumProviders __MINGW_NAME_AW(CryptEnumProviders)
 
   WINIMPM WINBOOL WINAPI CryptGenKey (HCRYPTPROV hProv, ALG_ID Algid, DWORD 
dwFlags, HCRYPTKEY *phKey);
   WINIMPM WINBOOL WINAPI CryptDeriveKey (HCRYPTPROV hProv, ALG_ID Algid, 
HCRYPTHASH hBaseData, DWORD dwFlags, HCRYPTKEY *phKey);
@@ -817,28 +836,13 @@ extern "C" {
   WINIMPM WINBOOL WINAPI CryptDecrypt (HCRYPTKEY hKey, HCRYPTHASH hHash, 
WINBOOL Final, DWORD dwFlags, BYTE *pbData, DWORD *pdwDataLen);
   WINIMPM WINBOOL WINAPI CryptCreateHash (HCRYPTPROV hProv, ALG_ID Algid, 
HCRYPTKEY hKey, DWORD dwFlags, HCRYPTHASH *phHash);
   WINIMPM WINBOOL WINAPI CryptHashData (HCRYPTHASH hHash, CONST BYTE *pbData, 
DWORD dwDataLen, DWORD dwFlags);
-  WINIMPM WINBOOL WINAPI CryptHashSessionKey (HCRYPTHASH hHash, HCRYPTKEY 
hKey, DWORD dwFlags);
   WINIMPM WINBOOL WINAPI CryptDestroyHash (HCRYPTHASH hHash);
   WINIMPM WINBOOL WINAPI CryptSignHashA (HCRYPTHASH hHash, DWORD dwKeySpec, 
LPCSTR szDescription, DWORD dwFlags, BYTE *pbSignature, DWORD *pdwSigLen);
   WINIMPM WINBOOL WINAPI CryptSignHashW (HCRYPTHASH hHash, DWORD dwKeySpec, 
LPCWSTR szDescription, DWORD dwFlags, BYTE *pbSignature, DWORD *pdwSigLen);
   WINIMPM WINBOOL WINAPI CryptVerifySignatureA (HCRYPTHASH hHash, CONST BYTE 
*pbSignature, DWORD dwSigLen, HCRYPTKEY hPubKey, LPCSTR szDescription, DWORD 
dwFlags);
   WINIMPM WINBOOL WINAPI CryptVerifySignatureW (HCRYPTHASH hHash, CONST BYTE 
*pbSignature, DWORD dwSigLen, HCRYPTKEY hPubKey, LPCWSTR szDescription, DWORD 
dwFlags);
-  WINIMPM WINBOOL WINAPI CryptSetProviderA (LPCSTR pszProvName, DWORD 
dwProvType);
-  WINIMPM WINBOOL WINAPI CryptSetProviderW (LPCWSTR pszProvName, DWORD 
dwProvType);
-  WINIMPM WINBOOL WINAPI CryptSetProviderExA (LPCSTR pszProvName, DWORD 
dwProvType, DWORD *pdwReserved, DWORD dwFlags);
-  WINIMPM WINBOOL WINAPI CryptSetProviderExW (LPCWSTR pszProvName, DWORD 
dwProvType, DWORD *pdwReserved, DWORD dwFlags);
   WINIMPM WINBOOL WINAPI CryptGetDefaultProviderA (DWORD dwProvType, DWORD 
*pdwReserved, DWORD dwFlags, LPSTR pszProvName, DWORD *pcbProvName);
   WINIMPM WINBOOL WINAPI CryptGetDefaultProviderW (DWORD dwProvType, DWORD 
*pdwReserved, DWORD dwFlags, LPWSTR pszProvName, DWORD *pcbProvName);
-  WINIMPM WINBOOL WINAPI CryptEnumProviderTypesA (DWORD dwIndex, DWORD 
*pdwReserved, DWORD dwFlags, DWORD *pdwProvType, LPSTR szTypeName, DWORD 
*pcbTypeName);
-  WINIMPM WINBOOL WINAPI CryptEnumProviderTypesW (DWORD dwIndex, DWORD 
*pdwReserved, DWORD dwFlags, DWORD *pdwProvType, LPWSTR szTypeName, DWORD 
*pcbTypeName);
-  WINIMPM WINBOOL WINAPI CryptEnumProvidersA (DWORD dwIndex, DWORD 
*pdwReserved, DWORD dwFlags, DWORD *pdwProvType, LPSTR szProvName, DWORD 
*pcbProvName);
-  WINIMPM WINBOOL WINAPI CryptEnumProvidersW (DWORD dwIndex, DWORD 
*pdwReserved, DWORD dwFlags, DWORD *pdwProvType, LPWSTR szProvName, DWORD 
*pcbProvName);
-  WINIMPM WINBOOL WINAPI CryptContextAddRef (HCRYPTPROV hProv, DWORD 
*pdwReserved, DWORD dwFlags);
-  WINIMPM WINBOOL WINAPI CryptDuplicateKey (HCRYPTKEY hKey, DWORD 
*pdwReserved, DWORD dwFlags, HCRYPTKEY *phKey);
-  WINIMPM WINBOOL WINAPI CryptDuplicateHash (HCRYPTHASH hHash, DWORD 
*pdwReserved, DWORD dwFlags, HCRYPTHASH *phHash);
-#if NTDDI_VERSION >= NTDDI_WS03
-  WINBOOL __cdecl GetEncSChannel (BYTE **pData, DWORD *dwDecSize);
-#endif
 #endif
 
 #ifndef _DDK_DRIVER_
-- 
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