90 lines
2.0 KiB
C++
Executable File
90 lines
2.0 KiB
C++
Executable File
/*
|
|
* 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_
|