David Gumberg committed 2025-05-14 22:55:10 -07:00
1 parent 31d3eebfb9
commit 6b4bcc1623
4 files changed
+12 -11

No files matched your search

+2 -1
View File
@@ -153,7 +153,8 @@ MACHO_ALLOWED_LIBRARIES = {
} }
PE_ALLOWED_LIBRARIES = { PE_ALLOWED_LIBRARIES = {
'ADVAPI32.dll', # security & registry 'ADVAPI32.dll', # legacy security & registry
'bcrypt.dll', # newer security and identity API
'IPHLPAPI.DLL', # IP helper API 'IPHLPAPI.DLL', # IP helper API
'KERNEL32.dll', # win32 base APIs 'KERNEL32.dll', # win32 base APIs
'msvcrt.dll', # C standard library for MSVC 'msvcrt.dll', # C standard library for MSVC
+1
View File
@@ -87,6 +87,7 @@ target_link_libraries(bitcoinkernel
bitcoin_crypto bitcoin_crypto
leveldb leveldb
secp256k1 secp256k1
$<$<PLATFORM_ID:Windows>:bcrypt>
$<TARGET_NAME_IF_EXISTS:USDT::headers> $<TARGET_NAME_IF_EXISTS:USDT::headers>
PUBLIC PUBLIC
Boost::headers Boost::headers
+8 -10
View File
@@ -27,8 +27,7 @@
#include <thread> #include <thread>
#ifdef WIN32 #ifdef WIN32
#include <windows.h> #include <bcrypt.h>
#include <wincrypt.h>
#else #else
#include <fcntl.h> #include <fcntl.h>
#include <sys/time.h> #include <sys/time.h>
@@ -287,16 +286,15 @@ void Strengthen(const unsigned char (&seed)[32], SteadyClock::duration dur, CSHA
void GetOSRand(unsigned char *ent32) void GetOSRand(unsigned char *ent32)
{ {
#if defined(WIN32) #if defined(WIN32)
HCRYPTPROV hProvider; constexpr uint32_t STATUS_SUCCESS{0x00000000};
int ret = CryptAcquireContextW(&hProvider, nullptr, nullptr, PROV_RSA_FULL, CRYPT_VERIFYCONTEXT); NTSTATUS status = BCryptGenRandom(/*hAlgorithm=*/NULL,
if (!ret) { /*pbBuffer=*/ent32,
/*cbBuffer=*/NUM_OS_RANDOM_BYTES,
/*dwFlags=*/BCRYPT_USE_SYSTEM_PREFERRED_RNG);
if (status != STATUS_SUCCESS) {
RandFailure(); RandFailure();
} }
ret = CryptGenRandom(hProvider, NUM_OS_RANDOM_BYTES, ent32);
if (!ret) {
RandFailure();
}
CryptReleaseContext(hProvider, 0);
#elif defined(HAVE_GETRANDOM) #elif defined(HAVE_GETRANDOM)
/* Linux. From the getrandom(2) man page: /* Linux. From the getrandom(2) man page:
* "If the urandom source has been initialized, reads of up to 256 bytes * "If the urandom source has been initialized, reads of up to 256 bytes
+1
View File
@@ -43,4 +43,5 @@ target_link_libraries(bitcoin_util
bitcoin_crypto bitcoin_crypto
$<$<PLATFORM_ID:Windows>:ws2_32> $<$<PLATFORM_ID:Windows>:ws2_32>
$<$<PLATFORM_ID:Windows>:iphlpapi> $<$<PLATFORM_ID:Windows>:iphlpapi>
$<$<PLATFORM_ID:Windows>:bcrypt>
) )