2 * Copyright 2017 James E. King, III
4 * Distributed under the Boost Software License, Version 1.0.
5 * See http://www.boost.org/LICENSE_1_0.txt
8 #ifndef BOOST_WINAPI_BCRYPT_HPP_INCLUDED_
9 #define BOOST_WINAPI_BCRYPT_HPP_INCLUDED_
11 #include <boost/winapi/basic_types.hpp>
13 #ifdef BOOST_HAS_PRAGMA_ONCE
17 #if defined(BOOST_WINAPI_IS_MINGW_W64) || (BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_WIN6)
19 #if BOOST_WINAPI_PARTITION_APP_SYSTEM
21 #if defined(BOOST_USE_WINDOWS_H)
25 namespace boost { namespace winapi {
26 typedef ::BCRYPT_ALG_HANDLE BCRYPT_ALG_HANDLE_;
29 #else // defined(BOOST_USE_WINDOWS_H)
31 namespace boost { namespace winapi {
32 typedef PVOID_ BCRYPT_ALG_HANDLE_;
37 boost::winapi::NTSTATUS_ WINAPI
38 BCryptCloseAlgorithmProvider(
39 boost::winapi::BCRYPT_ALG_HANDLE_ hAlgorithm,
40 boost::winapi::ULONG_ dwFlags
43 boost::winapi::NTSTATUS_ WINAPI
45 boost::winapi::BCRYPT_ALG_HANDLE_ hAlgorithm,
46 boost::winapi::PUCHAR_ pbBuffer,
47 boost::winapi::ULONG_ cbBuffer,
48 boost::winapi::ULONG_ dwFlags
51 boost::winapi::NTSTATUS_ WINAPI
52 BCryptOpenAlgorithmProvider(
53 boost::winapi::BCRYPT_ALG_HANDLE_ *phAlgorithm,
54 boost::winapi::LPCWSTR_ pszAlgId,
55 boost::winapi::LPCWSTR_ pszImplementation,
56 boost::winapi::DWORD_ dwFlags
61 #endif // defined(BOOST_USE_WINDOWS_H)
66 #if defined(BOOST_USE_WINDOWS_H)
67 const WCHAR_ BCRYPT_RNG_ALGORITHM_[] = BCRYPT_RNG_ALGORITHM;
69 const WCHAR_ BCRYPT_RNG_ALGORITHM_[] = L"RNG";
72 using ::BCryptCloseAlgorithmProvider;
73 using ::BCryptGenRandom;
74 using ::BCryptOpenAlgorithmProvider;
79 #endif // BOOST_WINAPI_PARTITION_APP_SYSTEM
81 #endif // defined(BOOST_WINAPI_IS_MINGW_W64) || (BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_WIN6)
83 #endif // BOOST_WINAPI_BCRYPT_HPP_INCLUDED_