mirror of
https://github.com/monero-project/monero.git
synced 2024-12-24 20:49:37 +00:00
Merge pull request #652
c7e6b77
crypto: only check MONERO_USE_SOFTWARE_AES once (moneromooo-monero)74aef21
crypto: use software AES based on the MONERO_USE_SOFTWARE_AES env var (moneromooo-monero)
This commit is contained in:
commit
999992a64b
1 changed files with 21 additions and 1 deletions
|
@ -187,6 +187,26 @@ STATIC INLINE void xor_blocks(uint8_t *a, const uint8_t *b)
|
||||||
* @return true if the CPU supports AES, false otherwise
|
* @return true if the CPU supports AES, false otherwise
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
STATIC INLINE int force_software_aes(void)
|
||||||
|
{
|
||||||
|
static int use = -1;
|
||||||
|
|
||||||
|
if (use != -1)
|
||||||
|
return use;
|
||||||
|
|
||||||
|
const char *env = getenv("MONERO_USE_SOFTWARE_AES");
|
||||||
|
if (!env) {
|
||||||
|
use = 0;
|
||||||
|
}
|
||||||
|
else if (!strcmp(env, "0") || !strcmp(env, "no")) {
|
||||||
|
use = 0;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
use = 1;
|
||||||
|
}
|
||||||
|
return use;
|
||||||
|
}
|
||||||
|
|
||||||
STATIC INLINE int check_aes_hw(void)
|
STATIC INLINE int check_aes_hw(void)
|
||||||
{
|
{
|
||||||
int cpuid_results[4];
|
int cpuid_results[4];
|
||||||
|
@ -509,7 +529,7 @@ void cn_slow_hash(const void *data, size_t length, char *hash)
|
||||||
size_t i, j;
|
size_t i, j;
|
||||||
uint64_t *p = NULL;
|
uint64_t *p = NULL;
|
||||||
oaes_ctx *aes_ctx;
|
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 *) =
|
static void (*const extra_hashes[4])(const void *, size_t, char *) =
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue