forked from wolfSSL/wolfssl
Merge pull request #5582 from SparkiDev/small_stack_cache_fix
Small Stack Cache: make work again
This commit is contained in:
@ -7319,15 +7319,15 @@ int ecc_mul2add(ecc_point* A, mp_int* kA,
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef WOLFSSL_SMALL_STACK
|
#ifdef WOLFSSL_SMALL_STACK_CACHE
|
||||||
#ifdef WOLFSSL_SMALL_STACK_CACHE
|
|
||||||
key = (ecc_key *)XMALLOC(sizeof(*key), heap, DYNAMIC_TYPE_ECC_BUFFER);
|
key = (ecc_key *)XMALLOC(sizeof(*key), heap, DYNAMIC_TYPE_ECC_BUFFER);
|
||||||
if (key == NULL) {
|
if (key == NULL) {
|
||||||
XFREE(tB, heap, DYNAMIC_TYPE_ECC_BUFFER);
|
XFREE(tB, heap, DYNAMIC_TYPE_ECC_BUFFER);
|
||||||
XFREE(tA, heap, DYNAMIC_TYPE_ECC_BUFFER);
|
XFREE(tA, heap, DYNAMIC_TYPE_ECC_BUFFER);
|
||||||
return GEN_MEM_ERR;
|
return GEN_MEM_ERR;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef WOLFSSL_SMALL_STACK
|
||||||
precomp = (ecc_point**)XMALLOC(sizeof(ecc_point*) * SHAMIR_PRECOMP_SZ, heap,
|
precomp = (ecc_point**)XMALLOC(sizeof(ecc_point*) * SHAMIR_PRECOMP_SZ, heap,
|
||||||
DYNAMIC_TYPE_ECC_BUFFER);
|
DYNAMIC_TYPE_ECC_BUFFER);
|
||||||
if (precomp == NULL) {
|
if (precomp == NULL) {
|
||||||
@ -7343,20 +7343,20 @@ int ecc_mul2add(ecc_point* A, mp_int* kA,
|
|||||||
key->t1 = (mp_int*)XMALLOC(sizeof(mp_int), heap, DYNAMIC_TYPE_ECC);
|
key->t1 = (mp_int*)XMALLOC(sizeof(mp_int), heap, DYNAMIC_TYPE_ECC);
|
||||||
key->t2 = (mp_int*)XMALLOC(sizeof(mp_int), heap, DYNAMIC_TYPE_ECC);
|
key->t2 = (mp_int*)XMALLOC(sizeof(mp_int), heap, DYNAMIC_TYPE_ECC);
|
||||||
#ifdef ALT_ECC_SIZE
|
#ifdef ALT_ECC_SIZE
|
||||||
key.x = (mp_int*)XMALLOC(sizeof(mp_int), heap, DYNAMIC_TYPE_ECC);
|
key->x = (mp_int*)XMALLOC(sizeof(mp_int), heap, DYNAMIC_TYPE_ECC);
|
||||||
key.y = (mp_int*)XMALLOC(sizeof(mp_int), heap, DYNAMIC_TYPE_ECC);
|
key->y = (mp_int*)XMALLOC(sizeof(mp_int), heap, DYNAMIC_TYPE_ECC);
|
||||||
key.z = (mp_int*)XMALLOC(sizeof(mp_int), heap, DYNAMIC_TYPE_ECC);
|
key->z = (mp_int*)XMALLOC(sizeof(mp_int), heap, DYNAMIC_TYPE_ECC);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (key->t1 == NULL || key->t2 == NULL
|
if (key->t1 == NULL || key->t2 == NULL
|
||||||
#ifdef ALT_ECC_SIZE
|
#ifdef ALT_ECC_SIZE
|
||||||
|| key.x == NULL || key.y == NULL || key.z == NULL
|
|| key->x == NULL || key->y == NULL || key->z == NULL
|
||||||
#endif
|
#endif
|
||||||
) {
|
) {
|
||||||
#ifdef ALT_ECC_SIZE
|
#ifdef ALT_ECC_SIZE
|
||||||
XFREE(key.z, heap, DYNAMIC_TYPE_ECC);
|
XFREE(key->z, heap, DYNAMIC_TYPE_ECC);
|
||||||
XFREE(key.y, heap, DYNAMIC_TYPE_ECC);
|
XFREE(key->y, heap, DYNAMIC_TYPE_ECC);
|
||||||
XFREE(key.x, heap, DYNAMIC_TYPE_ECC);
|
XFREE(key->x, heap, DYNAMIC_TYPE_ECC);
|
||||||
#endif
|
#endif
|
||||||
XFREE(key->t2, heap, DYNAMIC_TYPE_ECC);
|
XFREE(key->t2, heap, DYNAMIC_TYPE_ECC);
|
||||||
XFREE(key->t1, heap, DYNAMIC_TYPE_ECC);
|
XFREE(key->t1, heap, DYNAMIC_TYPE_ECC);
|
||||||
@ -7575,9 +7575,9 @@ int ecc_mul2add(ecc_point* A, mp_int* kA,
|
|||||||
ForceZero(tB, ECC_BUFSIZE);
|
ForceZero(tB, ECC_BUFSIZE);
|
||||||
#ifdef WOLFSSL_SMALL_STACK_CACHE
|
#ifdef WOLFSSL_SMALL_STACK_CACHE
|
||||||
#ifdef ALT_ECC_SIZE
|
#ifdef ALT_ECC_SIZE
|
||||||
XFREE(key.z, heap, DYNAMIC_TYPE_ECC);
|
XFREE(key->z, heap, DYNAMIC_TYPE_ECC);
|
||||||
XFREE(key.y, heap, DYNAMIC_TYPE_ECC);
|
XFREE(key->y, heap, DYNAMIC_TYPE_ECC);
|
||||||
XFREE(key.x, heap, DYNAMIC_TYPE_ECC);
|
XFREE(key->x, heap, DYNAMIC_TYPE_ECC);
|
||||||
#endif
|
#endif
|
||||||
XFREE(key->t2, heap, DYNAMIC_TYPE_ECC);
|
XFREE(key->t2, heap, DYNAMIC_TYPE_ECC);
|
||||||
XFREE(key->t1, heap, DYNAMIC_TYPE_ECC);
|
XFREE(key->t1, heap, DYNAMIC_TYPE_ECC);
|
||||||
|
@ -340,7 +340,8 @@ typedef struct ecc_set_type {
|
|||||||
* The ALT_ECC_SIZE option only applies to stack based fast math USE_FAST_MATH.
|
* The ALT_ECC_SIZE option only applies to stack based fast math USE_FAST_MATH.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef USE_FAST_MATH
|
#if !defined(USE_FAST_MATH) && !defined(WOLFSSL_SP_MATH_ALL) && \
|
||||||
|
!defined(WOLFSSL_SP_MATH)
|
||||||
#error USE_FAST_MATH must be defined to use ALT_ECC_SIZE
|
#error USE_FAST_MATH must be defined to use ALT_ECC_SIZE
|
||||||
#endif
|
#endif
|
||||||
#ifdef WOLFSSL_NO_MALLOC
|
#ifdef WOLFSSL_NO_MALLOC
|
||||||
|
Reference in New Issue
Block a user