SP ECC: calc vfy point not check mod_inv return

Not all implementations return an error though.
This commit is contained in:
Sean Parkinson
2021-07-06 11:30:26 +10:00
parent 8f7e09d9b5
commit 3c06dd6fa8
7 changed files with 90 additions and 97 deletions

View File

@@ -36941,14 +36941,13 @@ static int sp_256_calc_vfy_point_8(sp_point_256* p1, sp_point_256* p2,
int err; int err;
#ifndef WOLFSSL_SP_SMALL #ifndef WOLFSSL_SP_SMALL
{ err = sp_256_mod_inv_8(s, s, p256_order);
sp_256_mod_inv_8(s, s, p256_order); if (err == MP_OKAY)
}
#endif /* !WOLFSSL_SP_SMALL */ #endif /* !WOLFSSL_SP_SMALL */
{ {
sp_256_mul_8(s, s, p256_norm_order); sp_256_mul_8(s, s, p256_norm_order);
}
err = sp_256_mod_8(s, s, p256_order); err = sp_256_mod_8(s, s, p256_order);
}
if (err == MP_OKAY) { if (err == MP_OKAY) {
sp_256_norm_8(s); sp_256_norm_8(s);
#ifdef WOLFSSL_SP_SMALL #ifdef WOLFSSL_SP_SMALL
@@ -36957,16 +36956,16 @@ static int sp_256_calc_vfy_point_8(sp_point_256* p1, sp_point_256* p2,
sp_256_mont_mul_order_8(u1, u1, s); sp_256_mont_mul_order_8(u1, u1, s);
sp_256_mont_mul_order_8(u2, u2, s); sp_256_mont_mul_order_8(u2, u2, s);
} }
#else #else
{ {
sp_256_mont_mul_order_8(u1, u1, s); sp_256_mont_mul_order_8(u1, u1, s);
sp_256_mont_mul_order_8(u2, u2, s); sp_256_mont_mul_order_8(u2, u2, s);
} }
#endif /* WOLFSSL_SP_SMALL */ #endif /* WOLFSSL_SP_SMALL */
{
err = sp_256_ecc_mulmod_base_8(p1, u1, 0, 0, heap); err = sp_256_ecc_mulmod_base_8(p1, u1, 0, 0, heap);
} }
}
if ((err == MP_OKAY) && sp_256_iszero_8(p1->z)) { if ((err == MP_OKAY) && sp_256_iszero_8(p1->z)) {
p1->infinity = 1; p1->infinity = 1;
} }
@@ -46226,14 +46225,13 @@ static int sp_384_calc_vfy_point_12(sp_point_384* p1, sp_point_384* p2,
int err; int err;
#ifndef WOLFSSL_SP_SMALL #ifndef WOLFSSL_SP_SMALL
{ err = sp_384_mod_inv_12(s, s, p384_order);
sp_384_mod_inv_12(s, s, p384_order); if (err == MP_OKAY)
}
#endif /* !WOLFSSL_SP_SMALL */ #endif /* !WOLFSSL_SP_SMALL */
{ {
sp_384_mul_12(s, s, p384_norm_order); sp_384_mul_12(s, s, p384_norm_order);
}
err = sp_384_mod_12(s, s, p384_order); err = sp_384_mod_12(s, s, p384_order);
}
if (err == MP_OKAY) { if (err == MP_OKAY) {
sp_384_norm_12(s); sp_384_norm_12(s);
#ifdef WOLFSSL_SP_SMALL #ifdef WOLFSSL_SP_SMALL
@@ -46242,16 +46240,16 @@ static int sp_384_calc_vfy_point_12(sp_point_384* p1, sp_point_384* p2,
sp_384_mont_mul_order_12(u1, u1, s); sp_384_mont_mul_order_12(u1, u1, s);
sp_384_mont_mul_order_12(u2, u2, s); sp_384_mont_mul_order_12(u2, u2, s);
} }
#else #else
{ {
sp_384_mont_mul_order_12(u1, u1, s); sp_384_mont_mul_order_12(u1, u1, s);
sp_384_mont_mul_order_12(u2, u2, s); sp_384_mont_mul_order_12(u2, u2, s);
} }
#endif /* WOLFSSL_SP_SMALL */ #endif /* WOLFSSL_SP_SMALL */
{
err = sp_384_ecc_mulmod_base_12(p1, u1, 0, 0, heap); err = sp_384_ecc_mulmod_base_12(p1, u1, 0, 0, heap);
} }
}
if ((err == MP_OKAY) && sp_384_iszero_12(p1->z)) { if ((err == MP_OKAY) && sp_384_iszero_12(p1->z)) {
p1->infinity = 1; p1->infinity = 1;
} }

View File

@@ -38496,14 +38496,13 @@ static int sp_256_calc_vfy_point_4(sp_point_256* p1, sp_point_256* p2,
int err; int err;
#ifndef WOLFSSL_SP_SMALL #ifndef WOLFSSL_SP_SMALL
{ err = sp_256_mod_inv_4(s, s, p256_order);
sp_256_mod_inv_4(s, s, p256_order); if (err == MP_OKAY)
}
#endif /* !WOLFSSL_SP_SMALL */ #endif /* !WOLFSSL_SP_SMALL */
{ {
sp_256_mul_4(s, s, p256_norm_order); sp_256_mul_4(s, s, p256_norm_order);
}
err = sp_256_mod_4(s, s, p256_order); err = sp_256_mod_4(s, s, p256_order);
}
if (err == MP_OKAY) { if (err == MP_OKAY) {
sp_256_norm_4(s); sp_256_norm_4(s);
#ifdef WOLFSSL_SP_SMALL #ifdef WOLFSSL_SP_SMALL
@@ -38512,16 +38511,16 @@ static int sp_256_calc_vfy_point_4(sp_point_256* p1, sp_point_256* p2,
sp_256_mont_mul_order_4(u1, u1, s); sp_256_mont_mul_order_4(u1, u1, s);
sp_256_mont_mul_order_4(u2, u2, s); sp_256_mont_mul_order_4(u2, u2, s);
} }
#else #else
{ {
sp_256_mont_mul_order_4(u1, u1, s); sp_256_mont_mul_order_4(u1, u1, s);
sp_256_mont_mul_order_4(u2, u2, s); sp_256_mont_mul_order_4(u2, u2, s);
} }
#endif /* WOLFSSL_SP_SMALL */ #endif /* WOLFSSL_SP_SMALL */
{
err = sp_256_ecc_mulmod_base_4(p1, u1, 0, 0, heap); err = sp_256_ecc_mulmod_base_4(p1, u1, 0, 0, heap);
} }
}
if ((err == MP_OKAY) && sp_256_iszero_4(p1->z)) { if ((err == MP_OKAY) && sp_256_iszero_4(p1->z)) {
p1->infinity = 1; p1->infinity = 1;
} }
@@ -64140,14 +64139,13 @@ static int sp_384_calc_vfy_point_6(sp_point_384* p1, sp_point_384* p2,
int err; int err;
#ifndef WOLFSSL_SP_SMALL #ifndef WOLFSSL_SP_SMALL
{ err = sp_384_mod_inv_6(s, s, p384_order);
sp_384_mod_inv_6(s, s, p384_order); if (err == MP_OKAY)
}
#endif /* !WOLFSSL_SP_SMALL */ #endif /* !WOLFSSL_SP_SMALL */
{ {
sp_384_mul_6(s, s, p384_norm_order); sp_384_mul_6(s, s, p384_norm_order);
}
err = sp_384_mod_6(s, s, p384_order); err = sp_384_mod_6(s, s, p384_order);
}
if (err == MP_OKAY) { if (err == MP_OKAY) {
sp_384_norm_6(s); sp_384_norm_6(s);
#ifdef WOLFSSL_SP_SMALL #ifdef WOLFSSL_SP_SMALL
@@ -64156,16 +64154,16 @@ static int sp_384_calc_vfy_point_6(sp_point_384* p1, sp_point_384* p2,
sp_384_mont_mul_order_6(u1, u1, s); sp_384_mont_mul_order_6(u1, u1, s);
sp_384_mont_mul_order_6(u2, u2, s); sp_384_mont_mul_order_6(u2, u2, s);
} }
#else #else
{ {
sp_384_mont_mul_order_6(u1, u1, s); sp_384_mont_mul_order_6(u1, u1, s);
sp_384_mont_mul_order_6(u2, u2, s); sp_384_mont_mul_order_6(u2, u2, s);
} }
#endif /* WOLFSSL_SP_SMALL */ #endif /* WOLFSSL_SP_SMALL */
{
err = sp_384_ecc_mulmod_base_6(p1, u1, 0, 0, heap); err = sp_384_ecc_mulmod_base_6(p1, u1, 0, 0, heap);
} }
}
if ((err == MP_OKAY) && sp_384_iszero_6(p1->z)) { if ((err == MP_OKAY) && sp_384_iszero_6(p1->z)) {
p1->infinity = 1; p1->infinity = 1;
} }

View File

@@ -41367,14 +41367,13 @@ static int sp_256_calc_vfy_point_8(sp_point_256* p1, sp_point_256* p2,
int err; int err;
#ifndef WOLFSSL_SP_SMALL #ifndef WOLFSSL_SP_SMALL
{ err = sp_256_mod_inv_8(s, s, p256_order);
sp_256_mod_inv_8(s, s, p256_order); if (err == MP_OKAY)
}
#endif /* !WOLFSSL_SP_SMALL */ #endif /* !WOLFSSL_SP_SMALL */
{ {
sp_256_mul_8(s, s, p256_norm_order); sp_256_mul_8(s, s, p256_norm_order);
}
err = sp_256_mod_8(s, s, p256_order); err = sp_256_mod_8(s, s, p256_order);
}
if (err == MP_OKAY) { if (err == MP_OKAY) {
sp_256_norm_8(s); sp_256_norm_8(s);
#ifdef WOLFSSL_SP_SMALL #ifdef WOLFSSL_SP_SMALL
@@ -41383,16 +41382,16 @@ static int sp_256_calc_vfy_point_8(sp_point_256* p1, sp_point_256* p2,
sp_256_mont_mul_order_8(u1, u1, s); sp_256_mont_mul_order_8(u1, u1, s);
sp_256_mont_mul_order_8(u2, u2, s); sp_256_mont_mul_order_8(u2, u2, s);
} }
#else #else
{ {
sp_256_mont_mul_order_8(u1, u1, s); sp_256_mont_mul_order_8(u1, u1, s);
sp_256_mont_mul_order_8(u2, u2, s); sp_256_mont_mul_order_8(u2, u2, s);
} }
#endif /* WOLFSSL_SP_SMALL */ #endif /* WOLFSSL_SP_SMALL */
{
err = sp_256_ecc_mulmod_base_8(p1, u1, 0, 0, heap); err = sp_256_ecc_mulmod_base_8(p1, u1, 0, 0, heap);
} }
}
if ((err == MP_OKAY) && sp_256_iszero_8(p1->z)) { if ((err == MP_OKAY) && sp_256_iszero_8(p1->z)) {
p1->infinity = 1; p1->infinity = 1;
} }
@@ -51773,14 +51772,13 @@ static int sp_384_calc_vfy_point_12(sp_point_384* p1, sp_point_384* p2,
int err; int err;
#ifndef WOLFSSL_SP_SMALL #ifndef WOLFSSL_SP_SMALL
{ err = sp_384_mod_inv_12(s, s, p384_order);
sp_384_mod_inv_12(s, s, p384_order); if (err == MP_OKAY)
}
#endif /* !WOLFSSL_SP_SMALL */ #endif /* !WOLFSSL_SP_SMALL */
{ {
sp_384_mul_12(s, s, p384_norm_order); sp_384_mul_12(s, s, p384_norm_order);
}
err = sp_384_mod_12(s, s, p384_order); err = sp_384_mod_12(s, s, p384_order);
}
if (err == MP_OKAY) { if (err == MP_OKAY) {
sp_384_norm_12(s); sp_384_norm_12(s);
#ifdef WOLFSSL_SP_SMALL #ifdef WOLFSSL_SP_SMALL
@@ -51789,16 +51787,16 @@ static int sp_384_calc_vfy_point_12(sp_point_384* p1, sp_point_384* p2,
sp_384_mont_mul_order_12(u1, u1, s); sp_384_mont_mul_order_12(u1, u1, s);
sp_384_mont_mul_order_12(u2, u2, s); sp_384_mont_mul_order_12(u2, u2, s);
} }
#else #else
{ {
sp_384_mont_mul_order_12(u1, u1, s); sp_384_mont_mul_order_12(u1, u1, s);
sp_384_mont_mul_order_12(u2, u2, s); sp_384_mont_mul_order_12(u2, u2, s);
} }
#endif /* WOLFSSL_SP_SMALL */ #endif /* WOLFSSL_SP_SMALL */
{
err = sp_384_ecc_mulmod_base_12(p1, u1, 0, 0, heap); err = sp_384_ecc_mulmod_base_12(p1, u1, 0, 0, heap);
} }
}
if ((err == MP_OKAY) && sp_384_iszero_12(p1->z)) { if ((err == MP_OKAY) && sp_384_iszero_12(p1->z)) {
p1->infinity = 1; p1->infinity = 1;
} }

View File

@@ -25952,14 +25952,13 @@ static int sp_256_calc_vfy_point_9(sp_point_256* p1, sp_point_256* p2,
int err; int err;
#ifndef WOLFSSL_SP_SMALL #ifndef WOLFSSL_SP_SMALL
{ err = sp_256_mod_inv_9(s, s, p256_order);
sp_256_mod_inv_9(s, s, p256_order); if (err == MP_OKAY)
}
#endif /* !WOLFSSL_SP_SMALL */ #endif /* !WOLFSSL_SP_SMALL */
{ {
sp_256_mul_9(s, s, p256_norm_order); sp_256_mul_9(s, s, p256_norm_order);
}
err = sp_256_mod_9(s, s, p256_order); err = sp_256_mod_9(s, s, p256_order);
}
if (err == MP_OKAY) { if (err == MP_OKAY) {
sp_256_norm_9(s); sp_256_norm_9(s);
#ifdef WOLFSSL_SP_SMALL #ifdef WOLFSSL_SP_SMALL
@@ -25968,16 +25967,16 @@ static int sp_256_calc_vfy_point_9(sp_point_256* p1, sp_point_256* p2,
sp_256_mont_mul_order_9(u1, u1, s); sp_256_mont_mul_order_9(u1, u1, s);
sp_256_mont_mul_order_9(u2, u2, s); sp_256_mont_mul_order_9(u2, u2, s);
} }
#else #else
{ {
sp_256_mont_mul_order_9(u1, u1, s); sp_256_mont_mul_order_9(u1, u1, s);
sp_256_mont_mul_order_9(u2, u2, s); sp_256_mont_mul_order_9(u2, u2, s);
} }
#endif /* WOLFSSL_SP_SMALL */ #endif /* WOLFSSL_SP_SMALL */
{
err = sp_256_ecc_mulmod_base_9(p1, u1, 0, 0, heap); err = sp_256_ecc_mulmod_base_9(p1, u1, 0, 0, heap);
} }
}
if ((err == MP_OKAY) && sp_256_iszero_9(p1->z)) { if ((err == MP_OKAY) && sp_256_iszero_9(p1->z)) {
p1->infinity = 1; p1->infinity = 1;
} }
@@ -33743,14 +33742,13 @@ static int sp_384_calc_vfy_point_15(sp_point_384* p1, sp_point_384* p2,
int err; int err;
#ifndef WOLFSSL_SP_SMALL #ifndef WOLFSSL_SP_SMALL
{ err = sp_384_mod_inv_15(s, s, p384_order);
sp_384_mod_inv_15(s, s, p384_order); if (err == MP_OKAY)
}
#endif /* !WOLFSSL_SP_SMALL */ #endif /* !WOLFSSL_SP_SMALL */
{ {
sp_384_mul_15(s, s, p384_norm_order); sp_384_mul_15(s, s, p384_norm_order);
}
err = sp_384_mod_15(s, s, p384_order); err = sp_384_mod_15(s, s, p384_order);
}
if (err == MP_OKAY) { if (err == MP_OKAY) {
sp_384_norm_15(s); sp_384_norm_15(s);
#ifdef WOLFSSL_SP_SMALL #ifdef WOLFSSL_SP_SMALL
@@ -33759,16 +33757,16 @@ static int sp_384_calc_vfy_point_15(sp_point_384* p1, sp_point_384* p2,
sp_384_mont_mul_order_15(u1, u1, s); sp_384_mont_mul_order_15(u1, u1, s);
sp_384_mont_mul_order_15(u2, u2, s); sp_384_mont_mul_order_15(u2, u2, s);
} }
#else #else
{ {
sp_384_mont_mul_order_15(u1, u1, s); sp_384_mont_mul_order_15(u1, u1, s);
sp_384_mont_mul_order_15(u2, u2, s); sp_384_mont_mul_order_15(u2, u2, s);
} }
#endif /* WOLFSSL_SP_SMALL */ #endif /* WOLFSSL_SP_SMALL */
{
err = sp_384_ecc_mulmod_base_15(p1, u1, 0, 0, heap); err = sp_384_ecc_mulmod_base_15(p1, u1, 0, 0, heap);
} }
}
if ((err == MP_OKAY) && sp_384_iszero_15(p1->z)) { if ((err == MP_OKAY) && sp_384_iszero_15(p1->z)) {
p1->infinity = 1; p1->infinity = 1;
} }

View File

@@ -27144,14 +27144,13 @@ static int sp_256_calc_vfy_point_5(sp_point_256* p1, sp_point_256* p2,
int err; int err;
#ifndef WOLFSSL_SP_SMALL #ifndef WOLFSSL_SP_SMALL
{ err = sp_256_mod_inv_5(s, s, p256_order);
sp_256_mod_inv_5(s, s, p256_order); if (err == MP_OKAY)
}
#endif /* !WOLFSSL_SP_SMALL */ #endif /* !WOLFSSL_SP_SMALL */
{ {
sp_256_mul_5(s, s, p256_norm_order); sp_256_mul_5(s, s, p256_norm_order);
}
err = sp_256_mod_5(s, s, p256_order); err = sp_256_mod_5(s, s, p256_order);
}
if (err == MP_OKAY) { if (err == MP_OKAY) {
sp_256_norm_5(s); sp_256_norm_5(s);
#ifdef WOLFSSL_SP_SMALL #ifdef WOLFSSL_SP_SMALL
@@ -27160,16 +27159,16 @@ static int sp_256_calc_vfy_point_5(sp_point_256* p1, sp_point_256* p2,
sp_256_mont_mul_order_5(u1, u1, s); sp_256_mont_mul_order_5(u1, u1, s);
sp_256_mont_mul_order_5(u2, u2, s); sp_256_mont_mul_order_5(u2, u2, s);
} }
#else #else
{ {
sp_256_mont_mul_order_5(u1, u1, s); sp_256_mont_mul_order_5(u1, u1, s);
sp_256_mont_mul_order_5(u2, u2, s); sp_256_mont_mul_order_5(u2, u2, s);
} }
#endif /* WOLFSSL_SP_SMALL */ #endif /* WOLFSSL_SP_SMALL */
{
err = sp_256_ecc_mulmod_base_5(p1, u1, 0, 0, heap); err = sp_256_ecc_mulmod_base_5(p1, u1, 0, 0, heap);
} }
}
if ((err == MP_OKAY) && sp_256_iszero_5(p1->z)) { if ((err == MP_OKAY) && sp_256_iszero_5(p1->z)) {
p1->infinity = 1; p1->infinity = 1;
} }
@@ -34366,14 +34365,13 @@ static int sp_384_calc_vfy_point_7(sp_point_384* p1, sp_point_384* p2,
int err; int err;
#ifndef WOLFSSL_SP_SMALL #ifndef WOLFSSL_SP_SMALL
{ err = sp_384_mod_inv_7(s, s, p384_order);
sp_384_mod_inv_7(s, s, p384_order); if (err == MP_OKAY)
}
#endif /* !WOLFSSL_SP_SMALL */ #endif /* !WOLFSSL_SP_SMALL */
{ {
sp_384_mul_7(s, s, p384_norm_order); sp_384_mul_7(s, s, p384_norm_order);
}
err = sp_384_mod_7(s, s, p384_order); err = sp_384_mod_7(s, s, p384_order);
}
if (err == MP_OKAY) { if (err == MP_OKAY) {
sp_384_norm_7(s); sp_384_norm_7(s);
#ifdef WOLFSSL_SP_SMALL #ifdef WOLFSSL_SP_SMALL
@@ -34382,16 +34380,16 @@ static int sp_384_calc_vfy_point_7(sp_point_384* p1, sp_point_384* p2,
sp_384_mont_mul_order_7(u1, u1, s); sp_384_mont_mul_order_7(u1, u1, s);
sp_384_mont_mul_order_7(u2, u2, s); sp_384_mont_mul_order_7(u2, u2, s);
} }
#else #else
{ {
sp_384_mont_mul_order_7(u1, u1, s); sp_384_mont_mul_order_7(u1, u1, s);
sp_384_mont_mul_order_7(u2, u2, s); sp_384_mont_mul_order_7(u2, u2, s);
} }
#endif /* WOLFSSL_SP_SMALL */ #endif /* WOLFSSL_SP_SMALL */
{
err = sp_384_ecc_mulmod_base_7(p1, u1, 0, 0, heap); err = sp_384_ecc_mulmod_base_7(p1, u1, 0, 0, heap);
} }
}
if ((err == MP_OKAY) && sp_384_iszero_7(p1->z)) { if ((err == MP_OKAY) && sp_384_iszero_7(p1->z)) {
p1->infinity = 1; p1->infinity = 1;
} }

View File

@@ -22285,14 +22285,13 @@ static int sp_256_calc_vfy_point_8(sp_point_256* p1, sp_point_256* p2,
int err; int err;
#ifndef WOLFSSL_SP_SMALL #ifndef WOLFSSL_SP_SMALL
{ err = sp_256_mod_inv_8(s, s, p256_order);
sp_256_mod_inv_8(s, s, p256_order); if (err == MP_OKAY)
}
#endif /* !WOLFSSL_SP_SMALL */ #endif /* !WOLFSSL_SP_SMALL */
{ {
sp_256_mul_8(s, s, p256_norm_order); sp_256_mul_8(s, s, p256_norm_order);
}
err = sp_256_mod_8(s, s, p256_order); err = sp_256_mod_8(s, s, p256_order);
}
if (err == MP_OKAY) { if (err == MP_OKAY) {
sp_256_norm_8(s); sp_256_norm_8(s);
#ifdef WOLFSSL_SP_SMALL #ifdef WOLFSSL_SP_SMALL
@@ -22301,16 +22300,16 @@ static int sp_256_calc_vfy_point_8(sp_point_256* p1, sp_point_256* p2,
sp_256_mont_mul_order_8(u1, u1, s); sp_256_mont_mul_order_8(u1, u1, s);
sp_256_mont_mul_order_8(u2, u2, s); sp_256_mont_mul_order_8(u2, u2, s);
} }
#else #else
{ {
sp_256_mont_mul_order_8(u1, u1, s); sp_256_mont_mul_order_8(u1, u1, s);
sp_256_mont_mul_order_8(u2, u2, s); sp_256_mont_mul_order_8(u2, u2, s);
} }
#endif /* WOLFSSL_SP_SMALL */ #endif /* WOLFSSL_SP_SMALL */
{
err = sp_256_ecc_mulmod_base_8(p1, u1, 0, 0, heap); err = sp_256_ecc_mulmod_base_8(p1, u1, 0, 0, heap);
} }
}
if ((err == MP_OKAY) && sp_256_iszero_8(p1->z)) { if ((err == MP_OKAY) && sp_256_iszero_8(p1->z)) {
p1->infinity = 1; p1->infinity = 1;
} }
@@ -29516,14 +29515,13 @@ static int sp_384_calc_vfy_point_12(sp_point_384* p1, sp_point_384* p2,
int err; int err;
#ifndef WOLFSSL_SP_SMALL #ifndef WOLFSSL_SP_SMALL
{ err = sp_384_mod_inv_12(s, s, p384_order);
sp_384_mod_inv_12(s, s, p384_order); if (err == MP_OKAY)
}
#endif /* !WOLFSSL_SP_SMALL */ #endif /* !WOLFSSL_SP_SMALL */
{ {
sp_384_mul_12(s, s, p384_norm_order); sp_384_mul_12(s, s, p384_norm_order);
}
err = sp_384_mod_12(s, s, p384_order); err = sp_384_mod_12(s, s, p384_order);
}
if (err == MP_OKAY) { if (err == MP_OKAY) {
sp_384_norm_12(s); sp_384_norm_12(s);
#ifdef WOLFSSL_SP_SMALL #ifdef WOLFSSL_SP_SMALL
@@ -29532,16 +29530,16 @@ static int sp_384_calc_vfy_point_12(sp_point_384* p1, sp_point_384* p2,
sp_384_mont_mul_order_12(u1, u1, s); sp_384_mont_mul_order_12(u1, u1, s);
sp_384_mont_mul_order_12(u2, u2, s); sp_384_mont_mul_order_12(u2, u2, s);
} }
#else #else
{ {
sp_384_mont_mul_order_12(u1, u1, s); sp_384_mont_mul_order_12(u1, u1, s);
sp_384_mont_mul_order_12(u2, u2, s); sp_384_mont_mul_order_12(u2, u2, s);
} }
#endif /* WOLFSSL_SP_SMALL */ #endif /* WOLFSSL_SP_SMALL */
{
err = sp_384_ecc_mulmod_base_12(p1, u1, 0, 0, heap); err = sp_384_ecc_mulmod_base_12(p1, u1, 0, 0, heap);
} }
}
if ((err == MP_OKAY) && sp_384_iszero_12(p1->z)) { if ((err == MP_OKAY) && sp_384_iszero_12(p1->z)) {
p1->infinity = 1; p1->infinity = 1;
} }

View File

@@ -23945,6 +23945,7 @@ static int sp_256_calc_vfy_point_4(sp_point_256* p1, sp_point_256* p2,
sp_256_mod_inv_4(s, s, p256_order); sp_256_mod_inv_4(s, s, p256_order);
} }
#endif /* !WOLFSSL_SP_SMALL */ #endif /* !WOLFSSL_SP_SMALL */
{
#ifdef HAVE_INTEL_AVX2 #ifdef HAVE_INTEL_AVX2
if (IS_INTEL_BMI2(cpuid_flags) && IS_INTEL_ADX(cpuid_flags)) { if (IS_INTEL_BMI2(cpuid_flags) && IS_INTEL_ADX(cpuid_flags)) {
sp_256_mul_avx2_4(s, s, p256_norm_order); sp_256_mul_avx2_4(s, s, p256_norm_order);
@@ -23955,6 +23956,7 @@ static int sp_256_calc_vfy_point_4(sp_point_256* p1, sp_point_256* p2,
sp_256_mul_4(s, s, p256_norm_order); sp_256_mul_4(s, s, p256_norm_order);
} }
err = sp_256_mod_4(s, s, p256_order); err = sp_256_mod_4(s, s, p256_order);
}
if (err == MP_OKAY) { if (err == MP_OKAY) {
sp_256_norm_4(s); sp_256_norm_4(s);
#ifdef WOLFSSL_SP_SMALL #ifdef WOLFSSL_SP_SMALL
@@ -23971,7 +23973,6 @@ static int sp_256_calc_vfy_point_4(sp_point_256* p1, sp_point_256* p2,
sp_256_mont_mul_order_4(u1, u1, s); sp_256_mont_mul_order_4(u1, u1, s);
sp_256_mont_mul_order_4(u2, u2, s); sp_256_mont_mul_order_4(u2, u2, s);
} }
#else #else
#ifdef HAVE_INTEL_AVX2 #ifdef HAVE_INTEL_AVX2
if (IS_INTEL_BMI2(cpuid_flags) && IS_INTEL_ADX(cpuid_flags)) { if (IS_INTEL_BMI2(cpuid_flags) && IS_INTEL_ADX(cpuid_flags)) {
@@ -23984,15 +23985,17 @@ static int sp_256_calc_vfy_point_4(sp_point_256* p1, sp_point_256* p2,
sp_256_mont_mul_order_4(u1, u1, s); sp_256_mont_mul_order_4(u1, u1, s);
sp_256_mont_mul_order_4(u2, u2, s); sp_256_mont_mul_order_4(u2, u2, s);
} }
#endif /* WOLFSSL_SP_SMALL */ #endif /* WOLFSSL_SP_SMALL */
#ifdef HAVE_INTEL_AVX2 #ifdef HAVE_INTEL_AVX2
if (IS_INTEL_BMI2(cpuid_flags) && IS_INTEL_ADX(cpuid_flags)) if (IS_INTEL_BMI2(cpuid_flags) && IS_INTEL_ADX(cpuid_flags)) {
err = sp_256_ecc_mulmod_base_avx2_4(p1, u1, 0, 0, heap); err = sp_256_ecc_mulmod_base_avx2_4(p1, u1, 0, 0, heap);
}
else else
#endif #endif
{
err = sp_256_ecc_mulmod_base_4(p1, u1, 0, 0, heap); err = sp_256_ecc_mulmod_base_4(p1, u1, 0, 0, heap);
} }
}
if ((err == MP_OKAY) && sp_256_iszero_4(p1->z)) { if ((err == MP_OKAY) && sp_256_iszero_4(p1->z)) {
p1->infinity = 1; p1->infinity = 1;
} }
@@ -48523,10 +48526,10 @@ static int sp_384_calc_vfy_point_6(sp_point_384* p1, sp_point_384* p2,
#endif #endif
#ifndef WOLFSSL_SP_SMALL #ifndef WOLFSSL_SP_SMALL
{ err = sp_384_mod_inv_6(s, s, p384_order);
sp_384_mod_inv_6(s, s, p384_order); if (err == MP_OKAY)
}
#endif /* !WOLFSSL_SP_SMALL */ #endif /* !WOLFSSL_SP_SMALL */
{
#ifdef HAVE_INTEL_AVX2 #ifdef HAVE_INTEL_AVX2
if (IS_INTEL_BMI2(cpuid_flags) && IS_INTEL_ADX(cpuid_flags)) { if (IS_INTEL_BMI2(cpuid_flags) && IS_INTEL_ADX(cpuid_flags)) {
sp_384_mul_avx2_6(s, s, p384_norm_order); sp_384_mul_avx2_6(s, s, p384_norm_order);
@@ -48537,6 +48540,7 @@ static int sp_384_calc_vfy_point_6(sp_point_384* p1, sp_point_384* p2,
sp_384_mul_6(s, s, p384_norm_order); sp_384_mul_6(s, s, p384_norm_order);
} }
err = sp_384_mod_6(s, s, p384_order); err = sp_384_mod_6(s, s, p384_order);
}
if (err == MP_OKAY) { if (err == MP_OKAY) {
sp_384_norm_6(s); sp_384_norm_6(s);
#ifdef WOLFSSL_SP_SMALL #ifdef WOLFSSL_SP_SMALL
@@ -48553,7 +48557,6 @@ static int sp_384_calc_vfy_point_6(sp_point_384* p1, sp_point_384* p2,
sp_384_mont_mul_order_6(u1, u1, s); sp_384_mont_mul_order_6(u1, u1, s);
sp_384_mont_mul_order_6(u2, u2, s); sp_384_mont_mul_order_6(u2, u2, s);
} }
#else #else
#ifdef HAVE_INTEL_AVX2 #ifdef HAVE_INTEL_AVX2
if (IS_INTEL_BMI2(cpuid_flags) && IS_INTEL_ADX(cpuid_flags)) { if (IS_INTEL_BMI2(cpuid_flags) && IS_INTEL_ADX(cpuid_flags)) {
@@ -48566,15 +48569,17 @@ static int sp_384_calc_vfy_point_6(sp_point_384* p1, sp_point_384* p2,
sp_384_mont_mul_order_6(u1, u1, s); sp_384_mont_mul_order_6(u1, u1, s);
sp_384_mont_mul_order_6(u2, u2, s); sp_384_mont_mul_order_6(u2, u2, s);
} }
#endif /* WOLFSSL_SP_SMALL */ #endif /* WOLFSSL_SP_SMALL */
#ifdef HAVE_INTEL_AVX2 #ifdef HAVE_INTEL_AVX2
if (IS_INTEL_BMI2(cpuid_flags) && IS_INTEL_ADX(cpuid_flags)) if (IS_INTEL_BMI2(cpuid_flags) && IS_INTEL_ADX(cpuid_flags)) {
err = sp_384_ecc_mulmod_base_avx2_6(p1, u1, 0, 0, heap); err = sp_384_ecc_mulmod_base_avx2_6(p1, u1, 0, 0, heap);
}
else else
#endif #endif
{
err = sp_384_ecc_mulmod_base_6(p1, u1, 0, 0, heap); err = sp_384_ecc_mulmod_base_6(p1, u1, 0, 0, heap);
} }
}
if ((err == MP_OKAY) && sp_384_iszero_6(p1->z)) { if ((err == MP_OKAY) && sp_384_iszero_6(p1->z)) {
p1->infinity = 1; p1->infinity = 1;
} }