Chris@102
|
1 // crypt.hpp --------------------------------------------------------------//
|
Chris@102
|
2
|
Chris@102
|
3 // Copyright 2014 Antony Polukhin
|
Chris@102
|
4
|
Chris@102
|
5 // Distributed under the Boost Software License, Version 1.0.
|
Chris@102
|
6 // See http://www.boost.org/LICENSE_1_0.txt
|
Chris@102
|
7
|
Chris@102
|
8
|
Chris@102
|
9 #ifndef BOOST_DETAIL_WINAPI_CRYPT_HPP
|
Chris@102
|
10 #define BOOST_DETAIL_WINAPI_CRYPT_HPP
|
Chris@102
|
11
|
Chris@102
|
12 #include <boost/detail/winapi/basic_types.hpp>
|
Chris@102
|
13
|
Chris@102
|
14 #ifdef BOOST_HAS_PRAGMA_ONCE
|
Chris@102
|
15 #pragma once
|
Chris@102
|
16 #endif
|
Chris@102
|
17
|
Chris@102
|
18 namespace boost
|
Chris@102
|
19 {
|
Chris@102
|
20 namespace detail
|
Chris@102
|
21 {
|
Chris@102
|
22 namespace winapi
|
Chris@102
|
23 {
|
Chris@102
|
24 #if defined( BOOST_USE_WINDOWS_H )
|
Chris@102
|
25 typedef HCRYPTPROV HCRYPTPROV_;
|
Chris@102
|
26
|
Chris@102
|
27 using ::CryptEnumProvidersA;
|
Chris@102
|
28 using ::CryptAcquireContextA;
|
Chris@102
|
29 using ::CryptGenRandom;
|
Chris@102
|
30 using ::CryptReleaseContext;
|
Chris@102
|
31
|
Chris@102
|
32 const DWORD_ PROV_RSA_FULL_ = PROV_RSA_FULL;
|
Chris@102
|
33
|
Chris@102
|
34 const DWORD_ CRYPT_VERIFYCONTEXT_ = CRYPT_VERIFYCONTEXT;
|
Chris@102
|
35 const DWORD_ CRYPT_NEWKEYSET_ = CRYPT_NEWKEYSET;
|
Chris@102
|
36 const DWORD_ CRYPT_DELETEKEYSET_ = CRYPT_DELETEKEYSET;
|
Chris@102
|
37 const DWORD_ CRYPT_MACHINE_KEYSET_ = CRYPT_MACHINE_KEYSET;
|
Chris@102
|
38 const DWORD_ CRYPT_SILENT_ = CRYPT_SILENT;
|
Chris@102
|
39 #else
|
Chris@102
|
40 extern "C" {
|
Chris@102
|
41 typedef ULONG_PTR_ HCRYPTPROV_;
|
Chris@102
|
42
|
Chris@102
|
43 __declspec(dllimport) BOOL_ __stdcall
|
Chris@102
|
44 CryptEnumProvidersA(
|
Chris@102
|
45 DWORD_ dwIndex,
|
Chris@102
|
46 DWORD_ *pdwReserved,
|
Chris@102
|
47 DWORD_ dwFlags,
|
Chris@102
|
48 DWORD_ *pdwProvType,
|
Chris@102
|
49 LPSTR_ szProvName,
|
Chris@102
|
50 DWORD_ *pcbProvName
|
Chris@102
|
51 );
|
Chris@102
|
52
|
Chris@102
|
53 __declspec(dllimport) BOOL_ __stdcall
|
Chris@102
|
54 CryptAcquireContextA(
|
Chris@102
|
55 HCRYPTPROV_ *phProv,
|
Chris@102
|
56 LPCSTR_ pszContainer,
|
Chris@102
|
57 LPCSTR_ pszProvider,
|
Chris@102
|
58 DWORD_ dwProvType,
|
Chris@102
|
59 DWORD_ dwFlags
|
Chris@102
|
60 );
|
Chris@102
|
61
|
Chris@102
|
62 __declspec(dllimport) BOOL_ __stdcall
|
Chris@102
|
63 CryptGenRandom(
|
Chris@102
|
64 HCRYPTPROV_ hProv,
|
Chris@102
|
65 DWORD_ dwLen,
|
Chris@102
|
66 BYTE_ *pbBuffer
|
Chris@102
|
67 );
|
Chris@102
|
68
|
Chris@102
|
69 __declspec(dllimport) BOOL_ __stdcall
|
Chris@102
|
70 CryptReleaseContext(
|
Chris@102
|
71 HCRYPTPROV_ hProv,
|
Chris@102
|
72 DWORD_ dwFlags
|
Chris@102
|
73 );
|
Chris@102
|
74
|
Chris@102
|
75 const DWORD_ PROV_RSA_FULL_ = 1;
|
Chris@102
|
76
|
Chris@102
|
77 const DWORD_ CRYPT_VERIFYCONTEXT_ = 0xF0000000;
|
Chris@102
|
78 const DWORD_ CRYPT_NEWKEYSET_ = 8;
|
Chris@102
|
79 const DWORD_ CRYPT_DELETEKEYSET_ = 16;
|
Chris@102
|
80 const DWORD_ CRYPT_MACHINE_KEYSET_ = 32;
|
Chris@102
|
81 const DWORD_ CRYPT_SILENT_ = 64;
|
Chris@102
|
82 }
|
Chris@102
|
83 #endif
|
Chris@102
|
84 }
|
Chris@102
|
85 }
|
Chris@102
|
86 }
|
Chris@102
|
87
|
Chris@102
|
88 #endif // BOOST_DETAIL_WINAPI_CRYPT_HPP
|