diff --git a/wolfcrypt/src/sp_int.c b/wolfcrypt/src/sp_int.c index cb62cbe35..7bbb82367 100644 --- a/wolfcrypt/src/sp_int.c +++ b/wolfcrypt/src/sp_int.c @@ -12110,7 +12110,7 @@ static int _sp_mont_red(sp_int* a, sp_int* m, sp_int_digit mp) a->dp[1] = (sp_int_digit)w; w >>= SP_WORD_SIZE; a->dp[2] = (sp_int_digit)w; - a->used = 2; + a->used = 3; /* mp is SP_WORD_SIZE */ bits = SP_WORD_SIZE; } diff --git a/wolfssl/wolfcrypt/sp_int.h b/wolfssl/wolfcrypt/sp_int.h index fd961976e..abf5a45c6 100644 --- a/wolfssl/wolfcrypt/sp_int.h +++ b/wolfssl/wolfcrypt/sp_int.h @@ -167,6 +167,8 @@ extern "C" { #define SP_WORD_SIZE 16 #undef WOLFSSL_SP_ASM #endif +#elif defined(WOLFSSL_SP_X86) + #define SP_WORD_SIZE 32 #elif defined(WOLFSSL_SP_ARM64_ASM) || defined(WOLFSSL_SP_ARM64) #define SP_WORD_SIZE 64 #elif defined(WOLFSSL_SP_ARM32_ASM) || defined(WOLFSSL_SP_ARM32)