summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authortb <>2024-11-22 16:27:46 +0000
committertb <>2024-11-22 16:27:46 +0000
commit8779fdbb1d3be3f67d2c6e4127059274af065610 (patch)
treeda50d68f2b9e4638f966250e377418fc99145c98 /src
parent3407b244274030ec9f0d4dab8a3526efa35e316a (diff)
downloadopenbsd-8779fdbb1d3be3f67d2c6e4127059274af065610.tar.gz
openbsd-8779fdbb1d3be3f67d2c6e4127059274af065610.tar.bz2
openbsd-8779fdbb1d3be3f67d2c6e4127059274af065610.zip
Rewrite the crazy while loop into a for loop
It's still horrible, but slightly less so... ok jsing
Diffstat (limited to 'src')
-rw-r--r--src/lib/libcrypto/ec/ec_mult.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/lib/libcrypto/ec/ec_mult.c b/src/lib/libcrypto/ec/ec_mult.c
index c119410e4a..546a74c590 100644
--- a/src/lib/libcrypto/ec/ec_mult.c
+++ b/src/lib/libcrypto/ec/ec_mult.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: ec_mult.c,v 1.44 2024/11/22 16:17:36 tb Exp $ */ 1/* $OpenBSD: ec_mult.c,v 1.45 2024/11/22 16:27:46 tb Exp $ */
2/* 2/*
3 * Originally written by Bodo Moeller and Nils Larsch for the OpenSSL project. 3 * Originally written by Bodo Moeller and Nils Larsch for the OpenSSL project.
4 */ 4 */
@@ -124,8 +124,8 @@ ec_compute_wNAF(const BIGNUM *bn, signed char **out_wNAF, size_t *out_wNAF_len,
124 sign = BN_is_negative(bn) ? -1 : 1; 124 sign = BN_is_negative(bn) ? -1 : 1;
125 125
126 window = bn->d[0] & mask; 126 window = bn->d[0] & mask;
127 i = 0; 127
128 while (window != 0 || i + wbits + 1 < wNAF_len) { 128 for (i = 0; i + wbits + 1 < wNAF_len || window != 0; i++) {
129 digit = 0; 129 digit = 0;
130 130
131 if ((window & 1) != 0) { 131 if ((window & 1) != 0) {
@@ -139,9 +139,9 @@ ec_compute_wNAF(const BIGNUM *bn, signed char **out_wNAF, size_t *out_wNAF_len,
139 window -= digit; 139 window -= digit;
140 } 140 }
141 141
142 wNAF[i++] = sign * digit; 142 wNAF[i] = sign * digit;
143 window >>= 1; 143 window >>= 1;
144 window += bit * BN_is_bit_set(bn, i + wbits); 144 window += bit * BN_is_bit_set(bn, i + wbits + 1);
145 } 145 }
146 146
147 wNAF_len = i; 147 wNAF_len = i;