It seems that we have to break those out and use individual checks. Reason:
different CPUs may support some but not all of these features.

On Tue, May 17, 2016 at 10:29 AM, Jeffrey Walton <[email protected]> wrote:

> Hi Everyone,
>
> ARMv8 has optional Crypto extensions, and they are available in A-53,
> A-57, etc. The Crypto extension collectively refers to AES, SAH1, SHA224
> and SHA-256. To enable them, you compile with:
>
>     export CXXFLAGS="... -march=armv8-a+crypto -mcpu=cortex-a53"
>
> According to the ARM Cortex-A53 MPCore Processor (
> http://infocenter.arm.com/help/topic/com.arm.doc.ddi0500d/DDI0500D_cortex_a53_r0p2_trm.pdf),
> the constituent parts can be selectively disabled. That is, AES could be
> disabled, or SHA-1 could be disabled, etc.
>
> Testing for the features is not as easy as IA-32's CPUID because reading
> an ARM Machine Status Register (MSR) is a privileged operation. Attempting
> to read it results in a SIGILL. The best way I've found to determine
> features is runtime testing, and catching the SIGILL (Linux) and
> EXCEPTION_ILLEGAL_INSTRUCTION (Windows). Also see around line 260 of
> http://github.com/weidai11/cryptopp/blob/arm-neon/cpu.cpp#L259 .
>
> I have not encountered a condition where AES is enabled, but SHA1 is
> disabled. However, iOS comes close because both NEON and Crypto extensions
> are available, but CRC32 extensions are not available. Its unclear what
> Microsoft is doing in Store 10 and Phone 10 because their
> production-released compilers do not currently support ARM-64.
>
> My question is, should we collectively use "hasCrypto", or should we break
> them out and use "hasAES", "hasSHA1", etc?
>
> Jeff
>
> --
> --
> You received this message because you are subscribed to the "Crypto++
> Users" Google Group.
> To unsubscribe, send an email to
> [email protected].
> More information about Crypto++ and this group is available at
> http://www.cryptopp.com.
> ---
> You received this message because you are subscribed to the Google Groups
> "Crypto++ Users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> For more options, visit https://groups.google.com/d/optout.
>



-- 
Regards,
Mouse

-- 
-- 
You received this message because you are subscribed to the "Crypto++ Users" 
Google Group.
To unsubscribe, send an email to [email protected].
More information about Crypto++ and this group is available at 
http://www.cryptopp.com.
--- 
You received this message because you are subscribed to the Google Groups 
"Crypto++ Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to