src/boost/winapi/bcrypt.hpp
d9219a9a
 /*
  * Copyright 2017 James E. King, III
  *
  * Distributed under the Boost Software License, Version 1.0.
  * See http://www.boost.org/LICENSE_1_0.txt
  */
 
 #ifndef BOOST_WINAPI_BCRYPT_HPP_INCLUDED_
 #define BOOST_WINAPI_BCRYPT_HPP_INCLUDED_
 
 #include <boost/winapi/basic_types.hpp>
 
 #ifdef BOOST_HAS_PRAGMA_ONCE
 #pragma once
 #endif
 
 #if BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_WIN6
 
 #if BOOST_WINAPI_PARTITION_APP_SYSTEM
 
 #if defined(BOOST_USE_WINDOWS_H)
 #include <bcrypt.h>
 #endif
 
 #include <boost/winapi/detail/header.hpp>
 
 #if defined(BOOST_USE_WINDOWS_H)
 
 namespace boost { namespace winapi {
 typedef ::BCRYPT_ALG_HANDLE BCRYPT_ALG_HANDLE_;
 }}
 
 #else // defined(BOOST_USE_WINDOWS_H)
 
 namespace boost { namespace winapi {
 typedef PVOID_ BCRYPT_ALG_HANDLE_;
 }}
 
 extern "C" {
 
 boost::winapi::NTSTATUS_ BOOST_WINAPI_WINAPI_CC
 BCryptCloseAlgorithmProvider(
     boost::winapi::BCRYPT_ALG_HANDLE_ hAlgorithm,
     boost::winapi::ULONG_             dwFlags
 );
 
 boost::winapi::NTSTATUS_ BOOST_WINAPI_WINAPI_CC
 BCryptGenRandom(
     boost::winapi::BCRYPT_ALG_HANDLE_ hAlgorithm,
     boost::winapi::PUCHAR_            pbBuffer,
     boost::winapi::ULONG_             cbBuffer,
     boost::winapi::ULONG_             dwFlags
 );
 
 boost::winapi::NTSTATUS_ BOOST_WINAPI_WINAPI_CC
 BCryptOpenAlgorithmProvider(
     boost::winapi::BCRYPT_ALG_HANDLE_ *phAlgorithm,
     boost::winapi::LPCWSTR_           pszAlgId,
     boost::winapi::LPCWSTR_           pszImplementation,
     boost::winapi::DWORD_             dwFlags
 );
 
 } // extern "C"
 
 #endif // defined(BOOST_USE_WINDOWS_H)
 
 namespace boost {
 namespace winapi {
 
 #if defined(BOOST_USE_WINDOWS_H)
 const WCHAR_ BCRYPT_RNG_ALGORITHM_[] = BCRYPT_RNG_ALGORITHM;
 #else
 const WCHAR_ BCRYPT_RNG_ALGORITHM_[] = L"RNG";
 #endif
 
 using ::BCryptCloseAlgorithmProvider;
 using ::BCryptGenRandom;
 using ::BCryptOpenAlgorithmProvider;
 
 } // winapi
 } // boost
 
 #include <boost/winapi/detail/footer.hpp>
 
 #endif // BOOST_WINAPI_PARTITION_APP_SYSTEM
 
 #endif // BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_WIN6
 
 #endif // BOOST_WINAPI_BCRYPT_HPP_INCLUDED_