diff options
Diffstat (limited to 'src/Crypto/jitterentropy-base-user.h')
-rw-r--r-- | src/Crypto/jitterentropy-base-user.h | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/src/Crypto/jitterentropy-base-user.h b/src/Crypto/jitterentropy-base-user.h index a4f5cb4e..aaefb41a 100644 --- a/src/Crypto/jitterentropy-base-user.h +++ b/src/Crypto/jitterentropy-base-user.h @@ -70,11 +70,23 @@ typedef int32 ssize_t; static VC_INLINE void jent_get_nstime(uint64 *out) { - *out = __rdtsc();; +#ifdef _M_ARM64 + LARGE_INTEGER v = { 0 }; +#ifdef TC_WINDOWS_DRIVER + v = KeQueryPerformanceCounter(NULL); +#else + QueryPerformanceCounter(&v); +#endif + * out = v.QuadPart; +#else + *out = __rdtsc(); +#endif } #else +#include <sys/types.h> + #if CRYPTOPP_BOOL_X86 || CRYPTOPP_BOOL_X32 || CRYPTOPP_BOOL_X64 /* taken from Linux kernel */ @@ -157,7 +169,7 @@ static #endif VC_INLINE int jent_fips_enabled(void) { - return 0; + return 1; } /* --- helpers needed in user space -- */ |