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