Chris@102: // crypt.hpp --------------------------------------------------------------// Chris@102: Chris@102: // Copyright 2014 Antony Polukhin Chris@102: Chris@102: // Distributed under the Boost Software License, Version 1.0. Chris@102: // See http://www.boost.org/LICENSE_1_0.txt Chris@102: Chris@102: Chris@102: #ifndef BOOST_DETAIL_WINAPI_CRYPT_HPP Chris@102: #define BOOST_DETAIL_WINAPI_CRYPT_HPP Chris@102: Chris@102: #include Chris@102: Chris@102: #ifdef BOOST_HAS_PRAGMA_ONCE Chris@102: #pragma once Chris@102: #endif Chris@102: Chris@102: namespace boost Chris@102: { Chris@102: namespace detail Chris@102: { Chris@102: namespace winapi Chris@102: { Chris@102: #if defined( BOOST_USE_WINDOWS_H ) Chris@102: typedef HCRYPTPROV HCRYPTPROV_; Chris@102: Chris@102: using ::CryptEnumProvidersA; Chris@102: using ::CryptAcquireContextA; Chris@102: using ::CryptGenRandom; Chris@102: using ::CryptReleaseContext; Chris@102: Chris@102: const DWORD_ PROV_RSA_FULL_ = PROV_RSA_FULL; Chris@102: Chris@102: const DWORD_ CRYPT_VERIFYCONTEXT_ = CRYPT_VERIFYCONTEXT; Chris@102: const DWORD_ CRYPT_NEWKEYSET_ = CRYPT_NEWKEYSET; Chris@102: const DWORD_ CRYPT_DELETEKEYSET_ = CRYPT_DELETEKEYSET; Chris@102: const DWORD_ CRYPT_MACHINE_KEYSET_ = CRYPT_MACHINE_KEYSET; Chris@102: const DWORD_ CRYPT_SILENT_ = CRYPT_SILENT; Chris@102: #else Chris@102: extern "C" { Chris@102: typedef ULONG_PTR_ HCRYPTPROV_; Chris@102: Chris@102: __declspec(dllimport) BOOL_ __stdcall Chris@102: CryptEnumProvidersA( Chris@102: DWORD_ dwIndex, Chris@102: DWORD_ *pdwReserved, Chris@102: DWORD_ dwFlags, Chris@102: DWORD_ *pdwProvType, Chris@102: LPSTR_ szProvName, Chris@102: DWORD_ *pcbProvName Chris@102: ); Chris@102: Chris@102: __declspec(dllimport) BOOL_ __stdcall Chris@102: CryptAcquireContextA( Chris@102: HCRYPTPROV_ *phProv, Chris@102: LPCSTR_ pszContainer, Chris@102: LPCSTR_ pszProvider, Chris@102: DWORD_ dwProvType, Chris@102: DWORD_ dwFlags Chris@102: ); Chris@102: Chris@102: __declspec(dllimport) BOOL_ __stdcall Chris@102: CryptGenRandom( Chris@102: HCRYPTPROV_ hProv, Chris@102: DWORD_ dwLen, Chris@102: BYTE_ *pbBuffer Chris@102: ); Chris@102: Chris@102: __declspec(dllimport) BOOL_ __stdcall Chris@102: CryptReleaseContext( Chris@102: HCRYPTPROV_ hProv, Chris@102: DWORD_ dwFlags Chris@102: ); Chris@102: Chris@102: const DWORD_ PROV_RSA_FULL_ = 1; Chris@102: Chris@102: const DWORD_ CRYPT_VERIFYCONTEXT_ = 0xF0000000; Chris@102: const DWORD_ CRYPT_NEWKEYSET_ = 8; Chris@102: const DWORD_ CRYPT_DELETEKEYSET_ = 16; Chris@102: const DWORD_ CRYPT_MACHINE_KEYSET_ = 32; Chris@102: const DWORD_ CRYPT_SILENT_ = 64; Chris@102: } Chris@102: #endif Chris@102: } Chris@102: } Chris@102: } Chris@102: Chris@102: #endif // BOOST_DETAIL_WINAPI_CRYPT_HPP