diff options
author | tb <> | 2024-11-22 16:27:46 +0000 |
---|---|---|
committer | tb <> | 2024-11-22 16:27:46 +0000 |
commit | 8779fdbb1d3be3f67d2c6e4127059274af065610 (patch) | |
tree | da50d68f2b9e4638f966250e377418fc99145c98 /src | |
parent | 3407b244274030ec9f0d4dab8a3526efa35e316a (diff) | |
download | openbsd-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.c | 10 |
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; |