diff options
Diffstat (limited to 'src/Crypto/rdrand.c')
-rw-r--r-- | src/Crypto/rdrand.c | 32 |
1 files changed, 32 insertions, 0 deletions
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; +} |