forked from wolfSSL/wolfssl
Merge pull request #6889 from SparkiDev/sm2_priv_import_range
ECC SM2 import private key: check less than order-1
This commit is contained in:
@@ -10883,6 +10883,13 @@ int wc_ecc_import_private_key_ex(const byte* priv, word32 privSz,
|
|||||||
if (ret == 0) {
|
if (ret == 0) {
|
||||||
ret = mp_read_radix(order, key->dp->order, MP_RADIX_HEX);
|
ret = mp_read_radix(order, key->dp->order, MP_RADIX_HEX);
|
||||||
}
|
}
|
||||||
|
#ifdef WOLFSSL_SM2
|
||||||
|
/* SM2 curve: private key must be less than order-1. */
|
||||||
|
if ((ret == 0) && (key->idx != ECC_CUSTOM_IDX) &&
|
||||||
|
(ecc_sets[key->idx].id == ECC_SM2P256V1)) {
|
||||||
|
ret = mp_sub_d(order, 1, order);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
if ((ret == 0) && (mp_cmp(key->k, order) != MP_LT)) {
|
if ((ret == 0) && (mp_cmp(key->k, order) != MP_LT)) {
|
||||||
ret = ECC_PRIV_KEY_E;
|
ret = ECC_PRIV_KEY_E;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user