From 8779fdbb1d3be3f67d2c6e4127059274af065610 Mon Sep 17 00:00:00 2001 From: tb <> Date: Fri, 22 Nov 2024 16:27:46 +0000 Subject: Rewrite the crazy while loop into a for loop It's still horrible, but slightly less so... ok jsing --- src/lib/libcrypto/ec/ec_mult.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'src') 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 @@ -/* $OpenBSD: ec_mult.c,v 1.44 2024/11/22 16:17:36 tb Exp $ */ +/* $OpenBSD: ec_mult.c,v 1.45 2024/11/22 16:27:46 tb Exp $ */ /* * Originally written by Bodo Moeller and Nils Larsch for the OpenSSL project. */ @@ -124,8 +124,8 @@ ec_compute_wNAF(const BIGNUM *bn, signed char **out_wNAF, size_t *out_wNAF_len, sign = BN_is_negative(bn) ? -1 : 1; window = bn->d[0] & mask; - i = 0; - while (window != 0 || i + wbits + 1 < wNAF_len) { + + for (i = 0; i + wbits + 1 < wNAF_len || window != 0; i++) { digit = 0; if ((window & 1) != 0) { @@ -139,9 +139,9 @@ ec_compute_wNAF(const BIGNUM *bn, signed char **out_wNAF, size_t *out_wNAF_len, window -= digit; } - wNAF[i++] = sign * digit; + wNAF[i] = sign * digit; window >>= 1; - window += bit * BN_is_bit_set(bn, i + wbits); + window += bit * BN_is_bit_set(bn, i + wbits + 1); } wNAF_len = i; -- cgit v1.2.3-55-g6feb