]> git.proxmox.com Git - ceph.git/blobdiff - ceph/src/boost/boost/winapi/crypt.hpp
import new upstream nautilus stable release 14.2.8
[ceph.git] / ceph / src / boost / boost / winapi / crypt.hpp
index 98c5958b432579bacdb8ac1642d247f79a94d278..96d96c55ef93ca47c0ad563975e90fb46498a302 100644 (file)
@@ -10,7 +10,6 @@
 #define BOOST_WINAPI_CRYPT_HPP_INCLUDED_
 
 #include <boost/winapi/basic_types.hpp>
-#include <boost/winapi/detail/cast_ptr.hpp>
 #if defined( BOOST_USE_WINDOWS_H )
 // This header is not always included as part of windows.h
 #include <wincrypt.h>
@@ -25,19 +24,10 @@ namespace boost { namespace winapi {
 typedef ULONG_PTR_ HCRYPTPROV_;
 }}
 
-// Some versions of MinGW contain buggy declarations of CryptEnumProvidersA and CryptEnumProvidersW.
-// We cannot detect those broken versions, and we can't include the system header because it's incomplete.
-// So below we duplicate the broken declarations here and work around the problem with cast_ptr. These declarations
-// will have to be removed when MinGW is fixed.
-//
-// @@@ Looks like mingw 5.0-dev has this fixed and possibly in a 3.2x late release as well
-//     See: https://sourceforge.net/p/mingw/bugs/2263/
-
 extern "C" {
 #if BOOST_WINAPI_PARTITION_DESKTOP || BOOST_WINAPI_PARTITION_SYSTEM
 #if !defined( BOOST_NO_ANSI_APIS )
-#if !defined( BOOST_WINAPI_IS_MINGW ) || !defined( UNICODE )
-BOOST_SYMBOL_IMPORT boost::winapi::BOOL_ WINAPI
+BOOST_SYMBOL_IMPORT boost::winapi::BOOL_ BOOST_WINAPI_WINAPI_CC
 CryptEnumProvidersA(
     boost::winapi::DWORD_ dwIndex,
     boost::winapi::DWORD_ *pdwReserved,
@@ -45,19 +35,8 @@ CryptEnumProvidersA(
     boost::winapi::DWORD_ *pdwProvType,
     boost::winapi::LPSTR_ szProvName,
     boost::winapi::DWORD_ *pcbProvName);
-#else
-// Broken declaration in MinGW
-BOOST_SYMBOL_IMPORT boost::winapi::BOOL_ WINAPI
-CryptEnumProvidersA(
-    boost::winapi::DWORD_ dwIndex,
-    boost::winapi::DWORD_ *pdwReserved,
-    boost::winapi::DWORD_ dwFlags,
-    boost::winapi::DWORD_ *pdwProvType,
-    boost::winapi::LPWSTR_ szProvName,
-    boost::winapi::DWORD_ *pcbProvName);
-#endif
 
-BOOST_SYMBOL_IMPORT boost::winapi::BOOL_ WINAPI
+BOOST_SYMBOL_IMPORT boost::winapi::BOOL_ BOOST_WINAPI_WINAPI_CC
 CryptAcquireContextA(
     boost::winapi::HCRYPTPROV_ *phProv,
     boost::winapi::LPCSTR_ pszContainer,
@@ -66,8 +45,7 @@ CryptAcquireContextA(
     boost::winapi::DWORD_ dwFlags);
 #endif // !defined( BOOST_NO_ANSI_APIS )
 
-#if !defined( BOOST_WINAPI_IS_MINGW ) || defined( UNICODE )
-BOOST_SYMBOL_IMPORT boost::winapi::BOOL_ WINAPI
+BOOST_SYMBOL_IMPORT boost::winapi::BOOL_ BOOST_WINAPI_WINAPI_CC
 CryptEnumProvidersW(
     boost::winapi::DWORD_ dwIndex,
     boost::winapi::DWORD_ *pdwReserved,
@@ -75,19 +53,8 @@ CryptEnumProvidersW(
     boost::winapi::DWORD_ *pdwProvType,
     boost::winapi::LPWSTR_ szProvName,
     boost::winapi::DWORD_ *pcbProvName);
-#else
-// Broken declaration in MinGW
-BOOST_SYMBOL_IMPORT boost::winapi::BOOL_ WINAPI
-CryptEnumProvidersW(
-    boost::winapi::DWORD_ dwIndex,
-    boost::winapi::DWORD_ *pdwReserved,
-    boost::winapi::DWORD_ dwFlags,
-    boost::winapi::DWORD_ *pdwProvType,
-    boost::winapi::LPSTR_ szProvName,
-    boost::winapi::DWORD_ *pcbProvName);
-#endif
 
-BOOST_SYMBOL_IMPORT boost::winapi::BOOL_ WINAPI
+BOOST_SYMBOL_IMPORT boost::winapi::BOOL_ BOOST_WINAPI_WINAPI_CC
 CryptAcquireContextW(
     boost::winapi::HCRYPTPROV_ *phProv,
     boost::winapi::LPCWSTR_ szContainer,
@@ -95,7 +62,7 @@ CryptAcquireContextW(
     boost::winapi::DWORD_ dwProvType,
     boost::winapi::DWORD_ dwFlags);
 
-BOOST_SYMBOL_IMPORT boost::winapi::BOOL_ WINAPI
+BOOST_SYMBOL_IMPORT boost::winapi::BOOL_ BOOST_WINAPI_WINAPI_CC
 CryptGenRandom(
     boost::winapi::HCRYPTPROV_ hProv,
     boost::winapi::DWORD_ dwLen,
@@ -107,12 +74,12 @@ CryptGenRandom(
 // Standalone MS Windows SDK 6.0A and later until 10.0 provide a different declaration of CryptReleaseContext for Windows 2000 and older.
 // This is not the case for (a) MinGW and MinGW-w64, (b) MSVC 7.1 and 8, which are shipped with their own Windows SDK,
 // and (c) MSVC 14.0 and later, which are used with Windows SDK 10.
-BOOST_SYMBOL_IMPORT boost::winapi::BOOL_ WINAPI
+BOOST_SYMBOL_IMPORT boost::winapi::BOOL_ BOOST_WINAPI_WINAPI_CC
 CryptReleaseContext(
     boost::winapi::HCRYPTPROV_ hProv,
     boost::winapi::ULONG_PTR_ dwFlags);
 #else
-BOOST_SYMBOL_IMPORT boost::winapi::BOOL_ WINAPI
+BOOST_SYMBOL_IMPORT boost::winapi::BOOL_ BOOST_WINAPI_WINAPI_CC
 CryptReleaseContext(
     boost::winapi::HCRYPTPROV_ hProv,
     boost::winapi::DWORD_ dwFlags);
@@ -129,25 +96,25 @@ namespace winapi {
 typedef ::HCRYPTPROV HCRYPTPROV_;
 
 #if BOOST_WINAPI_PARTITION_APP_SYSTEM
-const DWORD_ PROV_RSA_FULL_         = PROV_RSA_FULL;
+BOOST_CONSTEXPR_OR_CONST DWORD_ PROV_RSA_FULL_         = PROV_RSA_FULL;
 
-const DWORD_ CRYPT_VERIFYCONTEXT_   = CRYPT_VERIFYCONTEXT;
-const DWORD_ CRYPT_NEWKEYSET_       = CRYPT_NEWKEYSET;
-const DWORD_ CRYPT_DELETEKEYSET_    = CRYPT_DELETEKEYSET;
-const DWORD_ CRYPT_MACHINE_KEYSET_  = CRYPT_MACHINE_KEYSET;
-const DWORD_ CRYPT_SILENT_          = CRYPT_SILENT;
+BOOST_CONSTEXPR_OR_CONST DWORD_ CRYPT_VERIFYCONTEXT_   = CRYPT_VERIFYCONTEXT;
+BOOST_CONSTEXPR_OR_CONST DWORD_ CRYPT_NEWKEYSET_       = CRYPT_NEWKEYSET;
+BOOST_CONSTEXPR_OR_CONST DWORD_ CRYPT_DELETEKEYSET_    = CRYPT_DELETEKEYSET;
+BOOST_CONSTEXPR_OR_CONST DWORD_ CRYPT_MACHINE_KEYSET_  = CRYPT_MACHINE_KEYSET;
+BOOST_CONSTEXPR_OR_CONST DWORD_ CRYPT_SILENT_          = CRYPT_SILENT;
 #endif
 
 #else
 
 #if BOOST_WINAPI_PARTITION_APP_SYSTEM
-const DWORD_ PROV_RSA_FULL_         = 1;
+BOOST_CONSTEXPR_OR_CONST DWORD_ PROV_RSA_FULL_         = 1;
 
-const DWORD_ CRYPT_VERIFYCONTEXT_   = 0xF0000000;
-const DWORD_ CRYPT_NEWKEYSET_       = 8;
-const DWORD_ CRYPT_DELETEKEYSET_    = 16;
-const DWORD_ CRYPT_MACHINE_KEYSET_  = 32;
-const DWORD_ CRYPT_SILENT_          = 64;
+BOOST_CONSTEXPR_OR_CONST DWORD_ CRYPT_VERIFYCONTEXT_   = 0xF0000000;
+BOOST_CONSTEXPR_OR_CONST DWORD_ CRYPT_NEWKEYSET_       = 8;
+BOOST_CONSTEXPR_OR_CONST DWORD_ CRYPT_DELETEKEYSET_    = 16;
+BOOST_CONSTEXPR_OR_CONST DWORD_ CRYPT_MACHINE_KEYSET_  = 32;
+BOOST_CONSTEXPR_OR_CONST DWORD_ CRYPT_SILENT_          = 64;
 #endif
 
 #endif
@@ -155,23 +122,14 @@ const DWORD_ CRYPT_SILENT_          = 64;
 #if BOOST_WINAPI_PARTITION_DESKTOP || BOOST_WINAPI_PARTITION_SYSTEM
 
 #if !defined( BOOST_NO_ANSI_APIS )
+using ::CryptEnumProvidersA;
 using ::CryptAcquireContextA;
 #endif
+using ::CryptEnumProvidersW;
 using ::CryptAcquireContextW;
 using ::CryptGenRandom;
 
 #if !defined( BOOST_NO_ANSI_APIS )
-BOOST_FORCEINLINE BOOL_ CryptEnumProvidersA(
-    DWORD_ dwIndex,
-    DWORD_ *pdwReserved,
-    DWORD_ dwFlags,
-    DWORD_ *pdwProvType,
-    LPSTR_ szProvName,
-    DWORD_ *pcbProvName)
-{
-    return ::CryptEnumProvidersA(dwIndex, pdwReserved, dwFlags, pdwProvType, winapi::detail::cast_ptr(szProvName), pcbProvName);
-}
-
 BOOST_FORCEINLINE BOOL_ crypt_enum_providers(
     DWORD_ dwIndex,
     DWORD_ *pdwReserved,
@@ -180,7 +138,7 @@ BOOST_FORCEINLINE BOOL_ crypt_enum_providers(
     LPSTR_ szProvName,
     DWORD_ *pcbProvName)
 {
-    return ::CryptEnumProvidersA(dwIndex, pdwReserved, dwFlags, pdwProvType, winapi::detail::cast_ptr(szProvName), pcbProvName);
+    return ::CryptEnumProvidersA(dwIndex, pdwReserved, dwFlags, pdwProvType, szProvName, pcbProvName);
 }
 
 BOOST_FORCEINLINE BOOL_ crypt_acquire_context(
@@ -194,17 +152,6 @@ BOOST_FORCEINLINE BOOL_ crypt_acquire_context(
 }
 #endif
 
-BOOST_FORCEINLINE BOOL_ CryptEnumProvidersW(
-    DWORD_ dwIndex,
-    DWORD_ *pdwReserved,
-    DWORD_ dwFlags,
-    DWORD_ *pdwProvType,
-    LPWSTR_ szProvName,
-    DWORD_ *pcbProvName)
-{
-    return ::CryptEnumProvidersW(dwIndex, pdwReserved, dwFlags, pdwProvType, winapi::detail::cast_ptr(szProvName), pcbProvName);
-}
-
 BOOST_FORCEINLINE BOOL_ crypt_enum_providers(
     DWORD_ dwIndex,
     DWORD_ *pdwReserved,
@@ -213,7 +160,7 @@ BOOST_FORCEINLINE BOOL_ crypt_enum_providers(
     LPWSTR_ szProvName,
     DWORD_ *pcbProvName)
 {
-    return ::CryptEnumProvidersW(dwIndex, pdwReserved, dwFlags, pdwProvType, winapi::detail::cast_ptr(szProvName), pcbProvName);
+    return ::CryptEnumProvidersW(dwIndex, pdwReserved, dwFlags, pdwProvType, szProvName, pcbProvName);
 }
 
 BOOST_FORCEINLINE BOOL_ crypt_acquire_context(