Skip to content

Commit d80f05b

Browse files
authored
Merge pull request #7624 from gasbytes/stack-on-calcdx
update CalcDX with small-stack support
2 parents 29df901 + 589353f commit d80f05b

1 file changed

Lines changed: 15 additions & 5 deletions

File tree

wolfcrypt/src/rsa.c

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5156,17 +5156,27 @@ int wc_RsaSetNonBlockTime(RsaKey* key, word32 maxBlockUs, word32 cpuMHz)
51565156
*/
51575157
static int CalcDX(mp_int* y, mp_int* x, mp_int* d)
51585158
{
5159-
mp_int m;
51605159
int err;
5160+
#ifndef WOLFSSL_SMALL_STACK
5161+
mp_int m[1];
5162+
#else
5163+
mp_int* m = (mp_int*)XMALLOC(sizeof(mp_int), NULL, DYNAMIC_TYPE_WOLF_BIGINT);
5164+
if (m == NULL)
5165+
return MEMORY_E;
5166+
#endif
51615167

5162-
err = mp_init(&m);
5168+
err = mp_init(m);
51635169
if (err == MP_OKAY) {
5164-
err = mp_sub_d(x, 1, &m);
5170+
err = mp_sub_d(x, 1, m);
51655171
if (err == MP_OKAY)
5166-
err = mp_mod(d, &m, y);
5167-
mp_forcezero(&m);
5172+
err = mp_mod(d, m, y);
5173+
mp_forcezero(m);
51685174
}
51695175

5176+
#ifdef WOLFSSL_SMALL_STACK
5177+
XFREE(m, NULL, DYNAMIC_TYPE_WOLF_BIGINT);
5178+
#endif
5179+
51705180
return err;
51715181
}
51725182
#endif

0 commit comments

Comments
 (0)