diff options
author | Andy Polyakov <appro@openssl.org> | 2019-02-11 15:33:43 +0100 |
---|---|---|
committer | Richard Levitte <levitte@openssl.org> | 2019-02-13 02:39:27 +0100 |
commit | 2cf7fd698ec1375421f91338ff8a44e7da5238b6 (patch) | |
tree | 07ced36e48211297e64a044dbd2976105fbe1c7f /crypto/poly1305 | |
parent | af250b36eb537bc2b185e35e24f187380a98ebb4 (diff) |
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)
Diffstat (limited to 'crypto/poly1305')
-rwxr-xr-x | crypto/poly1305/asm/poly1305-armv8.pl | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/crypto/poly1305/asm/poly1305-armv8.pl b/crypto/poly1305/asm/poly1305-armv8.pl index ac06457b65..21897fe1d7 100755 --- a/crypto/poly1305/asm/poly1305-armv8.pl +++ b/crypto/poly1305/asm/poly1305-armv8.pl @@ -291,6 +291,7 @@ poly1305_blocks_neon: cbz $is_base2_26,poly1305_blocks .Lblocks_neon: + .inst 0xd503233f // paciasp stp x29,x30,[sp,#-80]! add x29,sp,#0 @@ -859,6 +860,7 @@ poly1305_blocks_neon: st1 {$ACC4}[0],[$ctx] .Lno_data_neon: + .inst 0xd50323bf // autiasp ldr x29,[sp],#80 ret .size poly1305_blocks_neon,.-poly1305_blocks_neon |