Skip to content

Commit 9c9465a

Browse files
Also account for selftest for mp_get_digit refactor.
1 parent 05aa4f5 commit 9c9465a

File tree

3 files changed

+13
-9
lines changed

3 files changed

+13
-9
lines changed

tests/api/test_wolfmath.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ int test_mp_get_digit_count(void)
4646

4747
ExpectIntEQ(mp_init(&a), 0);
4848

49-
#ifdef HAVE_FIPS
49+
#if defined(HAVE_FIPS) || defined(HAVE_SELFTEST)
5050
ExpectIntEQ(get_digit_count(NULL), 0);
5151
ExpectIntEQ(get_digit_count(&a), 0);
5252
#else
@@ -72,7 +72,7 @@ int test_mp_get_digit(void)
7272
XMEMSET(&a, 0, sizeof(mp_int));
7373

7474
ExpectIntEQ(mp_init(&a), MP_OKAY);
75-
#ifdef HAVE_FIPS
75+
#if defined(HAVE_FIPS) || defined(HAVE_SELFTEST)
7676
ExpectIntEQ(get_digit(NULL, n), 0);
7777
ExpectIntEQ(get_digit(&a, n), 0);
7878
#else
@@ -99,7 +99,7 @@ int test_mp_get_rand_digit(void)
9999

100100
ExpectIntEQ(wc_InitRng(&rng), 0);
101101

102-
#ifdef HAVE_FIPS
102+
#if defined(HAVE_FIPS) || defined(HAVE_SELFTEST)
103103
ExpectIntEQ(get_rand_digit(&rng, &d), 0);
104104
ExpectIntEQ(get_rand_digit(NULL, NULL), WC_NO_ERR_TRACE(BAD_FUNC_ARG));
105105
ExpectIntEQ(get_rand_digit(NULL, &d), WC_NO_ERR_TRACE(BAD_FUNC_ARG));

wolfcrypt/src/wolfmath.c

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ void mp_reverse(unsigned char *s, int len)
8585
}
8686
}
8787

88-
#ifdef HAVE_FIPS
88+
#if defined(HAVE_FIPS) || defined(HAVE_SELFTEST)
8989
int get_digit_count(const mp_int* a)
9090
#else
9191
int mp_get_digit_count(const mp_int* a)
@@ -97,7 +97,7 @@ int mp_get_digit_count(const mp_int* a)
9797
return (int)a->used;
9898
}
9999

100-
#ifdef HAVE_FIPS
100+
#if defined(HAVE_FIPS) || defined(HAVE_SELFTEST)
101101
mp_digit get_digit(const mp_int* a, int n)
102102
#else
103103
mp_digit mp_get_digit(const mp_int* a, int n)
@@ -146,14 +146,14 @@ int mp_cond_copy(mp_int* a, int copy, mp_int* b)
146146
* mp_get_digit() returns 0 when index greater than available digit.
147147
*/
148148
for (i = 0; i < a->used; i++) {
149-
#ifdef HAVE_FIPS
149+
#if defined(HAVE_FIPS) || defined(HAVE_SELFTEST)
150150
b->dp[i] ^= (get_digit(a, (int)i) ^ get_digit(b, (int)i)) & mask;
151151
#else
152152
b->dp[i] ^= (mp_get_digit(a, (int)i) ^ mp_get_digit(b, (int)i)) & mask;
153153
#endif
154154
}
155155
for (; i < b->used; i++) {
156-
#ifdef HAVE_FIPS
156+
#if defined(HAVE_FIPS) || defined(HAVE_SELFTEST)
157157
b->dp[i] ^= (get_digit(a, (int)i) ^ get_digit(b, (int)i)) & mask;
158158
#else
159159
b->dp[i] ^= (mp_get_digit(a, (int)i) ^ mp_get_digit(b, (int)i)) & mask;
@@ -172,7 +172,7 @@ int mp_cond_copy(mp_int* a, int copy, mp_int* b)
172172

173173

174174
#ifndef WC_NO_RNG
175-
#ifdef HAVE_FIPS
175+
#if defined(HAVE_FIPS) || defined(HAVE_SELFTEST)
176176
int get_rand_digit(WC_RNG* rng, mp_digit* d)
177177
#else
178178
int mp_get_rand_digit(WC_RNG* rng, mp_digit* d)
@@ -225,7 +225,11 @@ int mp_rand(mp_int* a, int digits, WC_RNG* rng)
225225
#endif
226226
/* ensure top digit is not zero */
227227
while ((ret == MP_OKAY) && (a->dp[a->used - 1] == 0)) {
228+
#if defined(HAVE_FIPS) || defined(HAVE_SELFTEST)
229+
ret = get_rand_digit(rng, &a->dp[a->used - 1]);
230+
#else
228231
ret = mp_get_rand_digit(rng, &a->dp[a->used - 1]);
232+
#endif
229233
#ifdef USE_INTEGER_HEAP_MATH
230234
a->dp[a->used - 1] &= MP_MASK;
231235
#endif

wolfssl/wolfcrypt/wolfmath.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ This library provides big integer math functions.
8383

8484
#if !defined(NO_BIG_INT)
8585
/* common math functions */
86-
#ifdef HAVE_FIPS
86+
#if defined(HAVE_FIPS) || defined(HAVE_SELFTEST)
8787
MP_API int get_digit_count(const mp_int* a);
8888
MP_API mp_digit get_digit(const mp_int* a, int n);
8989
MP_API int get_rand_digit(WC_RNG* rng, mp_digit* d);

0 commit comments

Comments
 (0)