diff options
author | Jussi Kivilinna <jussi.kivilinna@iki.fi> | 2022-01-08 21:09:09 +0200 |
---|---|---|
committer | Jussi Kivilinna <jussi.kivilinna@iki.fi> | 2022-01-11 20:10:12 +0200 |
commit | 34bcc102158a651781f4e7639e2654068a39db6d (patch) | |
tree | e96dbc6c4b2288e4ec299c6fcff3d55ff46c4259 /mpi | |
parent | 11ade08efbfbc36dbf3571f1026946269950bc40 (diff) | |
download | libgcrypt-34bcc102158a651781f4e7639e2654068a39db6d.tar.gz |
Add straight-line speculation hardening for aarch64 assembly
* cipher/asm-common-aarch64.h (ret_spec_stop): New.
* cipher/asm-poly1305-aarch64.h: Use 'ret_spec_stop' for 'ret'
instruction.
* cipher/camellia-aarch64.S: Likewise.
* cipher/chacha20-aarch64.S: Likewise.
* cipher/cipher-gcm-armv8-aarch64-ce.S: Likewise.
* cipher/crc-armv8-aarch64-ce.S: Likewise.
* cipher/rijndael-aarch64.S: Likewise.
* cipher/rijndael-armv8-aarch64-ce.S: Likewise.
* cipher/sha1-armv8-aarch64-ce.S: Likewise.
* cipher/sha256-armv8-aarch64-ce.S: Likewise.
* cipher/sm3-aarch64.S: Likewise.
* cipher/twofish-aarch64.S: Likewise.
* mpi/aarch64/mpih-add1.S: Likewise.
* mpi/aarch64/mpih-mul1.S: Likewise.
* mpi/aarch64/mpih-mul2.S: Likewise.
* mpi/aarch64/mpih-mul3.S: Likewise.
* mpi/aarch64/mpih-sub1.S: Likewise.
--
Signed-off-by: Jussi Kivilinna <jussi.kivilinna@iki.fi>
Diffstat (limited to 'mpi')
-rw-r--r-- | mpi/aarch64/mpih-add1.S | 2 | ||||
-rw-r--r-- | mpi/aarch64/mpih-mul1.S | 2 | ||||
-rw-r--r-- | mpi/aarch64/mpih-mul2.S | 2 | ||||
-rw-r--r-- | mpi/aarch64/mpih-mul3.S | 4 | ||||
-rw-r--r-- | mpi/aarch64/mpih-sub1.S | 2 |
5 files changed, 6 insertions, 6 deletions
diff --git a/mpi/aarch64/mpih-add1.S b/mpi/aarch64/mpih-add1.S index cc356bce..24859b17 100644 --- a/mpi/aarch64/mpih-add1.S +++ b/mpi/aarch64/mpih-add1.S @@ -69,6 +69,6 @@ C_SYMBOL_NAME(_gcry_mpih_add_n): .Lend: adc x0, xzr, xzr; - ret; + ret_spec_stop; CFI_ENDPROC() ELF(.size C_SYMBOL_NAME(_gcry_mpih_add_n),.-C_SYMBOL_NAME(_gcry_mpih_add_n);) diff --git a/mpi/aarch64/mpih-mul1.S b/mpi/aarch64/mpih-mul1.S index 0db54444..f34c13c5 100644 --- a/mpi/aarch64/mpih-mul1.S +++ b/mpi/aarch64/mpih-mul1.S @@ -94,6 +94,6 @@ C_SYMBOL_NAME(_gcry_mpih_mul_1): .Lend: mov x0, x4; - ret; + ret_spec_stop; CFI_ENDPROC() ELF(.size C_SYMBOL_NAME(_gcry_mpih_mul_1),.-C_SYMBOL_NAME(_gcry_mpih_mul_1);) diff --git a/mpi/aarch64/mpih-mul2.S b/mpi/aarch64/mpih-mul2.S index b4cc6eeb..1880999d 100644 --- a/mpi/aarch64/mpih-mul2.S +++ b/mpi/aarch64/mpih-mul2.S @@ -106,6 +106,6 @@ C_SYMBOL_NAME(_gcry_mpih_addmul_1): .Lend: mov x0, x6; - ret; + ret_spec_stop; CFI_ENDPROC() ELF(.size C_SYMBOL_NAME(_gcry_mpih_addmul_1),.-C_SYMBOL_NAME(_gcry_mpih_addmul_1);) diff --git a/mpi/aarch64/mpih-mul3.S b/mpi/aarch64/mpih-mul3.S index 47a189b6..e5faeddc 100644 --- a/mpi/aarch64/mpih-mul3.S +++ b/mpi/aarch64/mpih-mul3.S @@ -115,10 +115,10 @@ C_SYMBOL_NAME(_gcry_mpih_submul_1): cbnz w2, .Large_loop; mov x0, x7; - ret; + ret_spec_stop; .Loop_end: cinc x0, x7, cc; - ret; + ret_spec_stop; CFI_ENDPROC() ELF(.size C_SYMBOL_NAME(_gcry_mpih_submul_1),.-C_SYMBOL_NAME(_gcry_mpih_submul_1);) diff --git a/mpi/aarch64/mpih-sub1.S b/mpi/aarch64/mpih-sub1.S index 16b6c004..46908286 100644 --- a/mpi/aarch64/mpih-sub1.S +++ b/mpi/aarch64/mpih-sub1.S @@ -69,6 +69,6 @@ C_SYMBOL_NAME(_gcry_mpih_sub_n): .Lend: cset x0, cc; - ret; + ret_spec_stop; CFI_ENDPROC() ELF(.size C_SYMBOL_NAME(_gcry_mpih_sub_n),.-C_SYMBOL_NAME(_gcry_mpih_sub_n);) |