@@ -2154,12 +2154,14 @@ static int _ecc_projective_add_point(ecc_point* P, ecc_point* Q, ecc_point* R,
21542154
21552155#ifndef WOLFSSL_SP_NO_256
21562156 if (modBits == 256) {
2157+ #ifdef SM2_SP_IMPL_AVAILABLE
21572158 #ifdef WOLFSSL_SM2
21582159 if (!mp_is_bit_set(modulus, 224)) {
21592160 return sp_ecc_proj_add_point_sm2_256(P->x, P->y, P->z, Q->x, Q->y,
21602161 Q->z, R->x, R->y, R->z);
21612162 }
21622163 #endif
2164+ #endif
21632165 return sp_ecc_proj_add_point_256(P->x, P->y, P->z, Q->x, Q->y, Q->z,
21642166 R->x, R->y, R->z);
21652167 }
@@ -2524,12 +2526,14 @@ static int _ecc_projective_dbl_point(ecc_point *P, ecc_point *R, mp_int* a,
25242526
25252527#ifndef WOLFSSL_SP_NO_256
25262528 if (modBits == 256) {
2529+ #ifdef SM2_SP_IMPL_AVAILABLE
25272530 #ifdef WOLFSSL_SM2
25282531 if (!mp_is_bit_set(modulus, 224)) {
25292532 return sp_ecc_proj_dbl_point_sm2_256(P->x, P->y, P->z, R->x, R->y,
25302533 R->z);
25312534 }
25322535 #endif
2536+ #endif
25332537 return sp_ecc_proj_dbl_point_256(P->x, P->y, P->z, R->x, R->y, R->z);
25342538 }
25352539#endif
@@ -2782,11 +2786,13 @@ int ecc_map_ex(ecc_point* P, mp_int* modulus, mp_digit mp, int ct)
27822786
27832787#ifndef WOLFSSL_SP_NO_256
27842788 if (mp_count_bits(modulus) == 256) {
2789+ #ifdef SM2_SP_IMPL_AVAILABLE
27852790 #ifdef WOLFSSL_SM2
27862791 if (!mp_is_bit_set(modulus, 224)) {
27872792 return sp_ecc_map_sm2_256(P->x, P->y, P->z);
27882793 }
27892794 #endif
2795+ #endif
27902796 return sp_ecc_map_256(P->x, P->y, P->z);
27912797 }
27922798#endif
@@ -3687,11 +3693,13 @@ int wc_ecc_mulmod_ex(const mp_int* k, ecc_point *G, ecc_point *R, mp_int* a,
36873693#ifdef WOLFSSL_HAVE_SP_ECC
36883694#ifndef WOLFSSL_SP_NO_256
36893695 if (mp_count_bits(modulus) == 256) {
3696+ #ifdef SM2_SP_IMPL_AVAILABLE
36903697 #ifdef WOLFSSL_SM2
36913698 if (!mp_is_bit_set(modulus, 224)) {
36923699 return sp_ecc_mulmod_sm2_256(k, G, R, map, heap);
36933700 }
36943701 #endif
3702+ #endif
36953703 return sp_ecc_mulmod_256(k, G, R, map, heap);
36963704 }
36973705#endif
@@ -4680,6 +4688,7 @@ int wc_ecc_shared_secret_gen_sync(ecc_key* private_key, ecc_point* point,
46804688 #endif /* !WC_ECC_NONBLOCK */
46814689 }
46824690 else
4691+ #ifdef SM2_SP_IMPL_AVAILABLE
46834692#ifdef WOLFSSL_SM2
46844693 if (private_key->idx != ECC_CUSTOM_IDX &&
46854694 ecc_sets[private_key->idx].id == ECC_SM2P256V1) {
@@ -4688,6 +4697,7 @@ int wc_ecc_shared_secret_gen_sync(ecc_key* private_key, ecc_point* point,
46884697 }
46894698 else
46904699#endif
4700+ #endif
46914701#endif /* ! WOLFSSL_SP_NO_256 */
46924702#ifdef WOLFSSL_SP_384
46934703 if (private_key->idx != ECC_CUSTOM_IDX &&
@@ -5272,12 +5282,14 @@ static int ecc_make_pub_ex(ecc_key* key, ecc_curve_spec* curve,
52725282 err = sp_ecc_mulmod_base_256(key->k, pub, 1, key->heap);
52735283 }
52745284 else
5285+ #ifdef SM2_SP_IMPL_AVAILABLE
52755286#ifdef WOLFSSL_SM2
52765287 if (key->idx != ECC_CUSTOM_IDX && ecc_sets[key->idx].id == ECC_SM2P256V1) {
52775288 err = sp_ecc_mulmod_base_sm2_256(&key->k, pub, 1, key->heap);
52785289 }
52795290 else
52805291#endif
5292+ #endif
52815293#endif /* WOLFSSL_SP_NO_256 */
52825294#ifdef WOLFSSL_SP_384
52835295 if (key->idx != ECC_CUSTOM_IDX && ecc_sets[key->idx].id == ECC_SECP384R1) {
@@ -5654,6 +5666,7 @@ static int _ecc_make_key_ex(WC_RNG* rng, int keysize, ecc_key* key,
56545666 }
56555667 }
56565668 else
5669+ #ifdef SM2_SP_IMPL_AVAILABLE
56575670#ifdef WOLFSSL_SM2
56585671 if (key->idx != ECC_CUSTOM_IDX && ecc_sets[key->idx].id == ECC_SM2P256V1) {
56595672 err = sp_ecc_make_key_sm2_256(rng, &key->k, &key->pubkey, key->heap);
@@ -5663,6 +5676,7 @@ static int _ecc_make_key_ex(WC_RNG* rng, int keysize, ecc_key* key,
56635676 }
56645677 else
56655678#endif
5679+ #endif
56665680#endif /* !WOLFSSL_SP_NO_256 */
56675681#ifdef WOLFSSL_SP_384
56685682 if (key->idx != ECC_CUSTOM_IDX && ecc_sets[key->idx].id == ECC_SECP384R1) {
@@ -6871,12 +6885,14 @@ static int ecc_sign_hash_sp(const byte* in, word32 inlen, WC_RNG* rng,
68716885 }
68726886 #endif
68736887 }
6888+ #ifdef SM2_SP_IMPL_AVAILABLE
68746889 #ifdef WOLFSSL_SM2
68756890 if (ecc_sets[key->idx].id == ECC_SM2P256V1) {
68766891 return sp_ecc_sign_sm2_256(in, inlen, rng, &key->k, r, s, sign_k,
68776892 key->heap);
68786893 }
68796894 #endif
6895+ #endif
68806896 #endif
68816897 #ifdef WOLFSSL_SP_384
68826898 if (ecc_sets[key->idx].id == ECC_SECP384R1) {
@@ -8447,6 +8463,7 @@ static int ecc_verify_hash_sp(mp_int *r, mp_int *s, const byte* hash,
84478463 }
84488464 #endif
84498465 }
8466+ #ifdef SM2_SP_IMPL_AVAILABLE
84508467 #ifdef WOLFSSL_SM2
84518468 if (ecc_sets[key->idx].id == ECC_SM2P256V1) {
84528469 #if defined(FP_ECC_CONTROL) && !defined(WOLFSSL_DSP_BUILD)
@@ -8463,6 +8480,7 @@ static int ecc_verify_hash_sp(mp_int *r, mp_int *s, const byte* hash,
84638480 }
84648481 #endif
84658482 #endif
8483+ #endif
84668484 #ifdef WOLFSSL_SP_384
84678485 if (ecc_sets[key->idx].id == ECC_SECP384R1) {
84688486 #ifdef WC_ECC_NONBLOCK
@@ -9083,13 +9101,15 @@ int wc_ecc_import_point_der_ex(const byte* in, word32 inLen,
90839101 err = sp_ecc_uncompress_256(point->x, pointType, point->y);
90849102 }
90859103 else
9104+ #ifdef SM2_SP_IMPL_AVAILABLE
90869105 #ifdef WOLFSSL_SM2
90879106 if (curve_idx != ECC_CUSTOM_IDX &&
90889107 ecc_sets[curve_idx->idx].id == ECC_SM2P256V1) {
90899108 sp_ecc_uncompress_sm2_256(point->x, pointType, point->y);
90909109 }
90919110 else
90929111 #endif
9112+ #endif
90939113 #endif
90949114 #ifdef WOLFSSL_SP_384
90959115 if (curve_idx != ECC_CUSTOM_IDX &&
@@ -9638,11 +9658,13 @@ static int _ecc_is_point(ecc_point* ecp, mp_int* a, mp_int* b, mp_int* prime)
96389658#ifdef WOLFSSL_HAVE_SP_ECC
96399659#ifndef WOLFSSL_SP_NO_256
96409660 if (mp_count_bits(prime) == 256) {
9661+ #ifdef SM2_SP_IMPL_AVAILABLE
96419662 #ifdef WOLFSSL_SM2
96429663 if (!mp_is_bit_set(prime, 224)) {
96439664 return sp_ecc_is_point_sm2_256(ecp->x, ecp->y);
96449665 }
96459666 #endif
9667+ #endif
96469668 return sp_ecc_is_point_256(ecp->x, ecp->y);
96479669 }
96489670#endif
@@ -9735,6 +9757,7 @@ static int ecc_check_privkey_gen(ecc_key* key, mp_int* a, mp_int* prime)
97359757 }
97369758 }
97379759 else
9760+ #ifdef SM2_SP_IMPL_AVAILABLE
97389761 #ifdef WOLFSSL_SM2
97399762 if (key->idx != ECC_CUSTOM_IDX && ecc_sets[key->idx].id == ECC_SM2P256V1) {
97409763 if (err == MP_OKAY) {
@@ -9744,6 +9767,7 @@ static int ecc_check_privkey_gen(ecc_key* key, mp_int* a, mp_int* prime)
97449767 else
97459768 #endif
97469769#endif
9770+ #endif
97479771#ifdef WOLFSSL_SP_384
97489772 if (key->idx != ECC_CUSTOM_IDX && ecc_sets[key->idx].id == ECC_SECP384R1) {
97499773 if (err == MP_OKAY) {
@@ -9976,6 +10000,7 @@ static int ecc_check_pubkey_order(ecc_key* key, ecc_point* pubkey, mp_int* a,
997610000 err = sp_ecc_mulmod_256(order, pubkey, inf, 1, key->heap);
997710001 }
997810002 else
10003+ #ifdef SM2_SP_IMPL_AVAILABLE
997910004 #ifdef WOLFSSL_SM2
998010005 if (key->idx != ECC_CUSTOM_IDX &&
998110006 ecc_sets[key->idx].id == ECC_SM2P256V1) {
@@ -9984,6 +10009,7 @@ static int ecc_check_pubkey_order(ecc_key* key, ecc_point* pubkey, mp_int* a,
998410009 else
998510010 #endif
998610011#endif
10012+ #endif
998710013#ifdef WOLFSSL_SP_384
998810014 if (key->idx != ECC_CUSTOM_IDX &&
998910015 ecc_sets[key->idx].id == ECC_SECP384R1) {
@@ -10088,13 +10114,15 @@ static int _ecc_validate_public_key(ecc_key* key, int partial, int priv)
1008810114 return sp_ecc_check_key_256(key->pubkey.x, key->pubkey.y,
1008910115 key->type == ECC_PRIVATEKEY ? key->k : NULL, key->heap);
1009010116 }
10117+ #ifdef SM2_SP_IMPL_AVAILABLE
1009110118#ifdef WOLFSSL_SM2
1009210119 if (key->idx != ECC_CUSTOM_IDX && ecc_sets[key->idx].id == ECC_SM2P256V1) {
1009310120 return sp_ecc_check_key_sm2_256(key->pubkey.x, key->pubkey.y
1009410121 key->type == ECC_PRIVATEKEY ? &key->k : NULL, key->heap);
1009510122 }
1009610123#endif
1009710124#endif
10125+ #endif
1009810126#ifdef WOLFSSL_SP_384
1009910127 if (key->idx != ECC_CUSTOM_IDX && ecc_sets[key->idx].id == ECC_SECP384R1) {
1010010128 return sp_ecc_check_key_384(key->pubkey.x, key->pubkey.y,
@@ -10471,12 +10499,14 @@ int wc_ecc_import_x963_ex(const byte* in, word32 inLen, ecc_key* key,
1047110499 key->pubkey.y);
1047210500 }
1047310501 else
10502+ #ifdef SM2_SP_IMPL_AVAILABLE
1047410503 #ifdef WOLFSSL_SM2
1047510504 if (key->dp->id == ECC_SM2P256V1) {
1047610505 sp_ecc_uncompress_sm2_256(key->pubkey.x, pointType, key->pubkey.y);
1047710506 }
1047810507 else
1047910508 #endif
10509+ #endif
1048010510 #endif
1048110511 #ifdef WOLFSSL_SP_384
1048210512 if (key->dp->id == ECC_SECP384R1) {
@@ -13026,12 +13056,14 @@ int wc_ecc_mulmod_ex(const mp_int* k, ecc_point *G, ecc_point *R, mp_int* a,
1302613056 if (mp_count_bits(modulus) == 256) {
1302713057 int ret;
1302813058 SAVE_VECTOR_REGISTERS(return _svr_ret);
13059+ #ifdef SM2_SP_IMPL_AVAILABLE
1302913060 #ifdef WOLFSSL_SM2
1303013061 if (!mp_is_bit_set(modulus, 224)) {
1303113062 ret = sp_ecc_mulmod_sm2_256(k, G, R, map, heap);
1303213063 }
1303313064 else
1303413065 #endif
13066+ #endif
1303513067 {
1303613068 ret = sp_ecc_mulmod_256(k, G, R, map, heap);
1303713069 }
@@ -13203,12 +13235,14 @@ int wc_ecc_mulmod_ex2(const mp_int* k, ecc_point *G, ecc_point *R, mp_int* a,
1320313235 if (mp_count_bits(modulus) == 256) {
1320413236 int ret;
1320513237 SAVE_VECTOR_REGISTERS(return _svr_ret);
13238+ #ifdef SM2_SP_IMPL_AVAILABLE
1320613239 #ifdef WOLFSSL_SM2
1320713240 if (!mp_is_bit_set(modulus, 224)) {
1320813241 ret = sp_ecc_mulmod_sm2_256(k, G, R, map, heap);
1320913242 }
1321013243 else
1321113244 #endif
13245+ #endif
1321213246 {
1321313247 ret = sp_ecc_mulmod_256(k, G, R, map, heap);
1321413248 }
0 commit comments