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.
Actually I see now that ID_AA64ISAR_EL1=0011111110211102 so an IMPLEMENTATION DEFINED algorithm is supported for both cases. What is this algorithm?
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.