summaryrefslogtreecommitdiff
path: root/mpi
diff options
context:
space:
mode:
authorJussi Kivilinna <jussi.kivilinna@iki.fi>2022-01-08 21:09:09 +0200
committerJussi Kivilinna <jussi.kivilinna@iki.fi>2022-01-11 20:10:12 +0200
commit34bcc102158a651781f4e7639e2654068a39db6d (patch)
treee96dbc6c4b2288e4ec299c6fcff3d55ff46c4259 /mpi
parent11ade08efbfbc36dbf3571f1026946269950bc40 (diff)
downloadlibgcrypt-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.S2
-rw-r--r--mpi/aarch64/mpih-mul1.S2
-rw-r--r--mpi/aarch64/mpih-mul2.S2
-rw-r--r--mpi/aarch64/mpih-mul3.S4
-rw-r--r--mpi/aarch64/mpih-sub1.S2
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);)