VeraCrypt
aboutsummaryrefslogtreecommitdiff
path: root/src/Crypto/jitterentropy-base-user.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/Crypto/jitterentropy-base-user.h')
-rw-r--r--src/Crypto/jitterentropy-base-user.h16
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 -- */