AArch64 assembly pack: authenticate return addresses.
authorAndy Polyakov <appro@openssl.org>
Mon, 11 Feb 2019 14:33:43 +0000 (15:33 +0100)
committerRichard Levitte <levitte@openssl.org>
Wed, 13 Feb 2019 01:39:27 +0000 (02:39 +0100)
commit2cf7fd698ec1375421f91338ff8a44e7da5238b6
tree07ced36e48211297e64a044dbd2976105fbe1c7f
parentaf250b36eb537bc2b185e35e24f187380a98ebb4
AArch64 assembly pack: authenticate return addresses.

ARMv8.3 adds pointer authentication extension, which in this case allows
to ensure that, when offloaded to stack, return address is same at return
as at entry to the subroutine. The new instructions are nops on processors
that don't implement the extension, so that the vetification is backward
compatible.

Reviewed-by: Kurt Roeckx <kurt@roeckx.be>
Reviewed-by: Richard Levitte <levitte@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/8205)

(cherry picked from commit 9a18aae5f21efc59da8b697ad67d5d37b95ab322)
crypto/aes/asm/aesv8-armx.pl
crypto/aes/asm/vpaes-armv8.pl
crypto/bn/asm/armv8-mont.pl
crypto/chacha/asm/chacha-armv8.pl
crypto/ec/asm/ecp_nistz256-armv8.pl
crypto/poly1305/asm/poly1305-armv8.pl
crypto/sha/asm/keccak1600-armv8.pl
crypto/sha/asm/sha512-armv8.pl