diff options
author | Andy Polyakov <appro@openssl.org> | 2019-02-11 15:33:43 +0100 |
---|---|---|
committer | Richard Levitte <levitte@openssl.org> | 2019-02-12 19:00:42 +0100 |
commit | 9a18aae5f21efc59da8b697ad67d5d37b95ab322 (patch) | |
tree | 7b99425b58a70172894332ebf9255b16fd3572da /crypto/poly1305/asm | |
parent | a40f0f6475711f01d32c4cdc39e54311b7e9c876 (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)
Diffstat (limited to 'crypto/poly1305/asm')
-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 31b3110a25..1aded5a275 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 |