diff --git a/wolfcrypt/src/wolfmath.c b/wolfcrypt/src/wolfmath.c index 087df0268..ce36b602c 100644 --- a/wolfcrypt/src/wolfmath.c +++ b/wolfcrypt/src/wolfmath.c @@ -152,7 +152,7 @@ int mp_cond_copy(mp_int* a, int copy, mp_int* b) b->used ^= (a->used ^ b->used) & (mp_size_t)mask; #if (!defined(WOLFSSL_SP_MATH) && !defined(WOLFSSL_SP_MATH_ALL)) || \ defined(WOLFSSL_SP_INT_NEGATIVE) - b->sign ^= (a->sign ^ b->sign) & (mp_size_t)mask; + b->sign ^= (mp_sign_t)(a->sign ^ b->sign) & (mp_sign_t)mask; #endif } diff --git a/wolfssl/wolfcrypt/integer.h b/wolfssl/wolfcrypt/integer.h index 25f7dadef..927a1f6c2 100644 --- a/wolfssl/wolfcrypt/integer.h +++ b/wolfssl/wolfcrypt/integer.h @@ -223,6 +223,7 @@ typedef int mp_err; #endif #define mp_size_t int +#define mp_sign_t int /* the mp_int structure */ typedef struct mp_int { diff --git a/wolfssl/wolfcrypt/sp_int.h b/wolfssl/wolfcrypt/sp_int.h index d085e6edf..5cf0cf464 100644 --- a/wolfssl/wolfcrypt/sp_int.h +++ b/wolfssl/wolfcrypt/sp_int.h @@ -875,6 +875,10 @@ typedef unsigned int sp_size_t; /* Type for number of digits. */ #define mp_size_t sp_size_t +#ifdef WOLFSSL_SP_INT_NEGATIVE + typedef sp_uint8 sp_sign_t; + #define mp_sign_t sp_sign_t +#endif /** * SP integer. @@ -888,7 +892,7 @@ typedef struct sp_int { sp_size_t size; #ifdef WOLFSSL_SP_INT_NEGATIVE /** Indicates whether number is 0/positive or negative. */ - sp_uint8 sign; + sp_sign_t sign; #endif #ifdef HAVE_WOLF_BIGINT /** Unsigned binary (big endian) representation of number. */ diff --git a/wolfssl/wolfcrypt/tfm.h b/wolfssl/wolfcrypt/tfm.h index ca2037625..a9b0df2a9 100644 --- a/wolfssl/wolfcrypt/tfm.h +++ b/wolfssl/wolfcrypt/tfm.h @@ -380,6 +380,7 @@ while (0) #endif #define mp_size_t int +#define mp_sign_t int /* a FP type */ typedef struct fp_int {