I'm trying to understand the behavior of pointer authentication instructions using the ARM Foundation Platform. I'm confused that Foundation Platform is allegedly configured with both implementation-defined and QARMA5 algorithms (because ID_AA64ISAR_EL1=13112111) despite the fact the ARM ARM says these are exclusive options.
Have I misunderstood? If not, can you state what algorithm is supported and whether this is configurable in any way?
Thanks.
Can't speak for Arm, but on QEMU the IMP DEF algorithm they implement is XXH64. QEMU's doc about cpu-features says:
The architected QARMA algorithm has good cryptographic properties, but can be quite slow to emulate. The impdef algorithm used by QEMU is non-cryptographic but significantly faster.