Skip to content

Commit 2eee35e

Browse files
Merge pull request #5582 from SparkiDev/small_stack_cache_fix
Small Stack Cache: make work again
2 parents ba5aeb3 + e0a47ca commit 2eee35e

2 files changed

Lines changed: 15 additions & 14 deletions

File tree

wolfcrypt/src/ecc.c

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -7319,15 +7319,15 @@ int ecc_mul2add(ecc_point* A, mp_int* kA,
73197319
}
73207320
#endif
73217321

7322-
#ifdef WOLFSSL_SMALL_STACK
7323-
#ifdef WOLFSSL_SMALL_STACK_CACHE
7322+
#ifdef WOLFSSL_SMALL_STACK_CACHE
73247323
key = (ecc_key *)XMALLOC(sizeof(*key), heap, DYNAMIC_TYPE_ECC_BUFFER);
73257324
if (key == NULL) {
73267325
XFREE(tB, heap, DYNAMIC_TYPE_ECC_BUFFER);
73277326
XFREE(tA, heap, DYNAMIC_TYPE_ECC_BUFFER);
73287327
return GEN_MEM_ERR;
73297328
}
7330-
#endif
7329+
#endif
7330+
#ifdef WOLFSSL_SMALL_STACK
73317331
precomp = (ecc_point**)XMALLOC(sizeof(ecc_point*) * SHAMIR_PRECOMP_SZ, heap,
73327332
DYNAMIC_TYPE_ECC_BUFFER);
73337333
if (precomp == NULL) {
@@ -7343,20 +7343,20 @@ int ecc_mul2add(ecc_point* A, mp_int* kA,
73437343
key->t1 = (mp_int*)XMALLOC(sizeof(mp_int), heap, DYNAMIC_TYPE_ECC);
73447344
key->t2 = (mp_int*)XMALLOC(sizeof(mp_int), heap, DYNAMIC_TYPE_ECC);
73457345
#ifdef ALT_ECC_SIZE
7346-
key.x = (mp_int*)XMALLOC(sizeof(mp_int), heap, DYNAMIC_TYPE_ECC);
7347-
key.y = (mp_int*)XMALLOC(sizeof(mp_int), heap, DYNAMIC_TYPE_ECC);
7348-
key.z = (mp_int*)XMALLOC(sizeof(mp_int), heap, DYNAMIC_TYPE_ECC);
7346+
key->x = (mp_int*)XMALLOC(sizeof(mp_int), heap, DYNAMIC_TYPE_ECC);
7347+
key->y = (mp_int*)XMALLOC(sizeof(mp_int), heap, DYNAMIC_TYPE_ECC);
7348+
key->z = (mp_int*)XMALLOC(sizeof(mp_int), heap, DYNAMIC_TYPE_ECC);
73497349
#endif
73507350

73517351
if (key->t1 == NULL || key->t2 == NULL
73527352
#ifdef ALT_ECC_SIZE
7353-
|| key.x == NULL || key.y == NULL || key.z == NULL
7353+
|| key->x == NULL || key->y == NULL || key->z == NULL
73547354
#endif
73557355
) {
73567356
#ifdef ALT_ECC_SIZE
7357-
XFREE(key.z, heap, DYNAMIC_TYPE_ECC);
7358-
XFREE(key.y, heap, DYNAMIC_TYPE_ECC);
7359-
XFREE(key.x, heap, DYNAMIC_TYPE_ECC);
7357+
XFREE(key->z, heap, DYNAMIC_TYPE_ECC);
7358+
XFREE(key->y, heap, DYNAMIC_TYPE_ECC);
7359+
XFREE(key->x, heap, DYNAMIC_TYPE_ECC);
73607360
#endif
73617361
XFREE(key->t2, heap, DYNAMIC_TYPE_ECC);
73627362
XFREE(key->t1, heap, DYNAMIC_TYPE_ECC);
@@ -7575,9 +7575,9 @@ int ecc_mul2add(ecc_point* A, mp_int* kA,
75757575
ForceZero(tB, ECC_BUFSIZE);
75767576
#ifdef WOLFSSL_SMALL_STACK_CACHE
75777577
#ifdef ALT_ECC_SIZE
7578-
XFREE(key.z, heap, DYNAMIC_TYPE_ECC);
7579-
XFREE(key.y, heap, DYNAMIC_TYPE_ECC);
7580-
XFREE(key.x, heap, DYNAMIC_TYPE_ECC);
7578+
XFREE(key->z, heap, DYNAMIC_TYPE_ECC);
7579+
XFREE(key->y, heap, DYNAMIC_TYPE_ECC);
7580+
XFREE(key->x, heap, DYNAMIC_TYPE_ECC);
75817581
#endif
75827582
XFREE(key->t2, heap, DYNAMIC_TYPE_ECC);
75837583
XFREE(key->t1, heap, DYNAMIC_TYPE_ECC);

wolfssl/wolfcrypt/ecc.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -340,7 +340,8 @@ typedef struct ecc_set_type {
340340
* The ALT_ECC_SIZE option only applies to stack based fast math USE_FAST_MATH.
341341
*/
342342

343-
#ifndef USE_FAST_MATH
343+
#if !defined(USE_FAST_MATH) && !defined(WOLFSSL_SP_MATH_ALL) && \
344+
!defined(WOLFSSL_SP_MATH)
344345
#error USE_FAST_MATH must be defined to use ALT_ECC_SIZE
345346
#endif
346347
#ifdef WOLFSSL_NO_MALLOC

0 commit comments

Comments
 (0)