From 61c1baa4bf5a97675187a37cf203e1937a060daa Mon Sep 17 00:00:00 2001 From: Mounir IDRASSI Date: Thu, 31 Jan 2019 01:05:19 +0100 Subject: Windows: use CPU RDRAND or RDSEED as an additional entropy source for our random generator when available --- src/Crypto/rdrand.c | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 src/Crypto/rdrand.c (limited to 'src/Crypto/rdrand.c') diff --git a/src/Crypto/rdrand.c b/src/Crypto/rdrand.c new file mode 100644 index 00000000..afed7cd1 --- /dev/null +++ b/src/Crypto/rdrand.c @@ -0,0 +1,32 @@ +// rdrand.cpp - written and placed in public domain by Jeffrey Walton and Uri Blumenthal. + +/* modified for VeraCrypt */ + +#include "chacha256.h" +#include "cpu.h" +#include "misc.h" + +void CRYPTOPP_FASTCALL MASM_RDRAND_GenerateBlock(byte*, size_t); +void CRYPTOPP_FASTCALL MASM_RDSEED_GenerateBlock(byte*, size_t); + +int RDRAND_getBytes(unsigned char* buf, size_t bufLen) +{ + if (!buf || !HasRDRAND()) + return 0; + + if (bufLen) + MASM_RDRAND_GenerateBlock(buf, bufLen); + + return 1; +} + +int RDSEED_getBytes(unsigned char* buf, size_t bufLen) +{ + if (!buf || !HasRDSEED()) + return 0; + + if (bufLen) + MASM_RDSEED_GenerateBlock(buf, bufLen); + + return 1; +} -- cgit v1.2.3