summaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
authorjsing <>2023-07-24 10:21:29 +0000
committerjsing <>2023-07-24 10:21:29 +0000
commit8b06006d10486de29fa06b2d48e75fc2aaed17eb (patch)
tree0dbd9fa528deda0e3942a21625262815f38e590f /src/lib
parent16ea0c76b649e30b6efab9849a469e34ec1929b8 (diff)
downloadopenbsd-8b06006d10486de29fa06b2d48e75fc2aaed17eb.tar.gz
openbsd-8b06006d10486de29fa06b2d48e75fc2aaed17eb.tar.bz2
openbsd-8b06006d10486de29fa06b2d48e75fc2aaed17eb.zip
Mark read/write registers as non-overlapping for bn_qwmulw_{addqw_,}addw()
This does not cause an issue currently, however if called differently to their current usage, it can lead to an input being overwritten and incorrect results being generated.
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/libcrypto/bn/arch/aarch64/bn_arch.h6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/lib/libcrypto/bn/arch/aarch64/bn_arch.h b/src/lib/libcrypto/bn/arch/aarch64/bn_arch.h
index 66de3682d4..fe6f8a3aea 100644
--- a/src/lib/libcrypto/bn/arch/aarch64/bn_arch.h
+++ b/src/lib/libcrypto/bn/arch/aarch64/bn_arch.h
@@ -1,4 +1,4 @@
1/* $OpenBSD: bn_arch.h,v 1.12 2023/06/21 07:56:43 jsing Exp $ */ 1/* $OpenBSD: bn_arch.h,v 1.13 2023/07/24 10:21:29 jsing Exp $ */
2/* 2/*
3 * Copyright (c) 2023 Joel Sing <jsing@openbsd.org> 3 * Copyright (c) 2023 Joel Sing <jsing@openbsd.org>
4 * 4 *
@@ -241,7 +241,7 @@ bn_qwmulw_addw(BN_ULONG a3, BN_ULONG a2, BN_ULONG a1, BN_ULONG a0, BN_ULONG b,
241 "mul %[c], %[a3], %[b] \n" 241 "mul %[c], %[a3], %[b] \n"
242 "adcs %[r3], %[r3], %[c] \n" 242 "adcs %[r3], %[r3], %[c] \n"
243 "adc %[r4], %[r4], xzr \n" 243 "adc %[r4], %[r4], xzr \n"
244 : [c]"+r"(c), [r4]"=&r"(r4), [r3]"=&r"(r3), [r2]"=&r"(r2), 244 : [c]"+&r"(c), [r4]"=&r"(r4), [r3]"=&r"(r3), [r2]"=&r"(r2),
245 [r1]"=&r"(r1), [r0]"=&r"(r0) 245 [r1]"=&r"(r1), [r0]"=&r"(r0)
246 : [a3]"r"(a3), [a2]"r"(a2), [a1]"r"(a1), [a0]"r"(a0), [b]"r"(b) 246 : [a3]"r"(a3), [a2]"r"(a2), [a1]"r"(a1), [a0]"r"(a0), [b]"r"(b)
247 : "cc"); 247 : "cc");
@@ -282,7 +282,7 @@ bn_qwmulw_addqw_addw(BN_ULONG a3, BN_ULONG a2, BN_ULONG a1, BN_ULONG a0,
282 "adcs %[r2], %[r2], %[c2] \n" 282 "adcs %[r2], %[r2], %[c2] \n"
283 "adcs %[r3], %[r3], %[c3] \n" 283 "adcs %[r3], %[r3], %[c3] \n"
284 "adc %[r4], %[r4], xzr \n" 284 "adc %[r4], %[r4], xzr \n"
285 : [d]"+r"(d), [r4]"=&r"(r4), [r3]"=&r"(r3), [r2]"=&r"(r2), 285 : [d]"+&r"(d), [r4]"=&r"(r4), [r3]"=&r"(r3), [r2]"=&r"(r2),
286 [r1]"=&r"(r1), [r0]"=&r"(r0) 286 [r1]"=&r"(r1), [r0]"=&r"(r0)
287 : [a3]"r"(a3), [a2]"r"(a2), [a1]"r"(a1), [a0]"r"(a0), [b]"r"(b), 287 : [a3]"r"(a3), [a2]"r"(a2), [a1]"r"(a1), [a0]"r"(a0), [b]"r"(b),
288 [c3]"r"(c3), [c2]"r"(c2), [c1]"r"(c1), [c0]"r"(c0) 288 [c3]"r"(c3), [c2]"r"(c2), [c1]"r"(c1), [c0]"r"(c0)