diff options
Diffstat (limited to 'src/crypto')
-rw-r--r-- | src/crypto/slow-hash.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/src/crypto/slow-hash.c b/src/crypto/slow-hash.c index 903a3792f..faaf127ce 100644 --- a/src/crypto/slow-hash.c +++ b/src/crypto/slow-hash.c @@ -187,6 +187,16 @@ STATIC INLINE void xor_blocks(uint8_t *a, const uint8_t *b) * @return true if the CPU supports AES, false otherwise */ +STATIC INLINE int force_software_aes(void) +{ + const char *env = getenv("MONERO_USE_SOFTWARE_AES"); + if (!env) + return 0; + if (!strcmp(env, "0") || !strcmp(env, "no")) + return 0; + return 1; +} + STATIC INLINE int check_aes_hw(void) { int cpuid_results[4]; @@ -509,7 +519,7 @@ void cn_slow_hash(const void *data, size_t length, char *hash) size_t i, j; uint64_t *p = NULL; oaes_ctx *aes_ctx; - int useAes = check_aes_hw(); + int useAes = !force_software_aes() && check_aes_hw(); static void (*const extra_hashes[4])(const void *, size_t, char *) = { |