Skip to content
Draft
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 9 additions & 4 deletions src/util/RandBytes.c
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,16 @@

#if defined(_WIN32)

CryptidStatus cryptid_randomBytes(unsigned char *buf, int num)
#include <windows.h>
#include <bcrypt.h>

CryptidStatus cryptid_randomBytes(unsigned char *buf, const int num)
{
// TODO Implement Windows secure random generation.
// Issue with good-first-issue tag?
return CRYPTID_RANDOM_GENERATION_ERROR;
const NT_STATUS status = BCryptGenRandom(NULL, buf, num, BCRYPT_USE_SYSTEM_PREFERRED_RNG);

return status == STATUS_SUCCESS
? CRYPTID_SUCCESS
: CRYPTID_RANDOM_GENERATION_ERROR;
}

#elif defined(__CRYPTID_EXTERN_RANDOM)
Expand Down