diff --git a/src/gui.c b/src/gui.c index 3291f25..efcb998 100644 --- a/src/gui.c +++ b/src/gui.c @@ -1640,7 +1640,6 @@ void nwipe_gui_prng( void ) extern nwipe_prng_t nwipe_twister; extern nwipe_prng_t nwipe_isaac; extern nwipe_prng_t nwipe_isaac64; - extern nwipe_prng_t nwipe_aes_ctr_prng; extern nwipe_prng_t nwipe_xoroshiro256_prng; extern nwipe_prng_t nwipe_add_lagg_fibonacci_prng; extern nwipe_prng_t nwipe_aes_ctr_prng; @@ -1979,6 +1978,11 @@ void nwipe_gui_prng( void ) { nwipe_options.prng = &nwipe_xoroshiro256_prng; } + if( focus == 5 ) + { + nwipe_options.prng = &nwipe_aes_ctr_prng; + } + return; case KEY_BACKSPACE: diff --git a/src/options.c b/src/options.c index 5c7b6f5..e2042de 100644 --- a/src/options.c +++ b/src/options.c @@ -39,20 +39,25 @@ nwipe_options_t nwipe_options; */ void cpuid( uint32_t eax, uint32_t* eax_out, uint32_t* ebx_out, uint32_t* ecx_out, uint32_t* edx_out ) { -#if defined( _MSC_VER ) // Microsoft compiler - int registers[4]; - __cpuid( registers, eax ); - *eax_out = registers[0]; - *ebx_out = registers[1]; - *ecx_out = registers[2]; - *edx_out = registers[3]; -#elif defined( __GNUC__ ) // GCC and Clang +#if defined( __i386__ ) || defined( __x86_64__ ) /* only on x86 */ +#if defined( _MSC_VER ) /* MSVC */ + int r[4]; + __cpuid( r, eax ); + *eax_out = r[0]; + *ebx_out = r[1]; + *ecx_out = r[2]; + *edx_out = r[3]; +#elif defined( __GNUC__ ) /* GCC/Clang */ __asm__ __volatile__( "cpuid" : "=a"( *eax_out ), "=b"( *ebx_out ), "=c"( *ecx_out ), "=d"( *edx_out ) : "a"( eax ) ); #else #error "Unsupported compiler" #endif +#else /* not-x86 */ + (void) eax; + *eax_out = *ebx_out = *ecx_out = *edx_out = 0; /* CPUID = 0 */ +#endif } /* @@ -61,9 +66,13 @@ void cpuid( uint32_t eax, uint32_t* eax_out, uint32_t* ebx_out, uint32_t* ecx_ou */ int has_aes_ni( void ) { +#if defined( __i386__ ) || defined( __x86_64__ ) /* only for x86 */ uint32_t eax, ebx, ecx, edx; cpuid( 1, &eax, &ebx, &ecx, &edx ); - return ( ecx & ( 1 << 25 ) ) != 0; // Check if bit 25 in ECX is set + return ( ecx & ( 1u << 25 ) ) != 0; /* Bit 25 = AES-NI */ +#else /* ARM, RISC-V … */ + return 0; /* no AES-NI */ +#endif } int nwipe_options_parse( int argc, char** argv )