forked from wolfSSL/wolfssl
Fix for issues with wolfSSL_OBJ_nid2sn
and wc_OBJ_sn2nid
and logic finding max item when WOLFSSL_CUSTOM_CURVES
and ECC_CACHE_CURVE
are defined. Improvements to wolfSSL_EC_get_builtin_curves
to avoid using "min" as variable name and eliminate using a local static.
This commit is contained in:
16
src/ssl.c
16
src/ssl.c
@ -31868,20 +31868,18 @@ int wolfSSL_EC_POINT_is_at_infinity(const WOLFSSL_EC_GROUP *group,
|
|||||||
|
|
||||||
size_t wolfSSL_EC_get_builtin_curves(WOLFSSL_EC_builtin_curve *r, size_t nitems)
|
size_t wolfSSL_EC_get_builtin_curves(WOLFSSL_EC_builtin_curve *r, size_t nitems)
|
||||||
{
|
{
|
||||||
static size_t ecc_sets_count = 0;
|
size_t ecc_sets_count;
|
||||||
size_t i, min;
|
size_t i, min_nitems;
|
||||||
|
|
||||||
if (ecc_sets_count == 0) {
|
for (i = 0; ecc_sets[i].size != 0 && ecc_sets[i].name != NULL; i++);
|
||||||
for (i = 0; ecc_sets[i].size != 0; i++);
|
ecc_sets_count = i;
|
||||||
ecc_sets_count = i;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (r == NULL || nitems == 0)
|
if (r == NULL || nitems == 0)
|
||||||
return ecc_sets_count;
|
return ecc_sets_count;
|
||||||
|
|
||||||
min = nitems < ecc_sets_count ? nitems : ecc_sets_count;
|
min_nitems = nitems < ecc_sets_count ? nitems : ecc_sets_count;
|
||||||
|
|
||||||
for (i = 0; i < min; i++) {
|
for (i = 0; i < min_nitems; i++) {
|
||||||
r[i].nid = ecc_sets[i].id;
|
r[i].nid = ecc_sets[i].id;
|
||||||
r[i].comment = ecc_sets[i].name;
|
r[i].comment = ecc_sets[i].name;
|
||||||
}
|
}
|
||||||
@ -36875,7 +36873,7 @@ err:
|
|||||||
WOLFSSL_ENTER("wolfSSL_OBJ_nid2sn");
|
WOLFSSL_ENTER("wolfSSL_OBJ_nid2sn");
|
||||||
|
|
||||||
/* find based on NID and return name */
|
/* find based on NID and return name */
|
||||||
for (i = 0; i < ecc_sets[i].size; i++) {
|
for (i = 0; ecc_sets[i].size != 0; i++) {
|
||||||
if (n == ecc_sets[i].id) {
|
if (n == ecc_sets[i].id) {
|
||||||
return ecc_sets[i].name;
|
return ecc_sets[i].name;
|
||||||
}
|
}
|
||||||
|
@ -4811,7 +4811,7 @@ WOLFSSL_LOCAL int wc_OBJ_sn2nid(const char *sn)
|
|||||||
if (XSTRNCMP(sn, "secp384r1", 10) == 0)
|
if (XSTRNCMP(sn, "secp384r1", 10) == 0)
|
||||||
sn = "SECP384R1";
|
sn = "SECP384R1";
|
||||||
/* find based on name and return NID */
|
/* find based on name and return NID */
|
||||||
for (i = 0; i < ecc_sets[i].size; i++) {
|
for (i = 0; ecc_sets[i].size != 0 && ecc_sets[i].name != NULL; i++) {
|
||||||
if (XSTRNCMP(sn, ecc_sets[i].name, ECC_MAXNAME) == 0) {
|
if (XSTRNCMP(sn, ecc_sets[i].name, ECC_MAXNAME) == 0) {
|
||||||
return ecc_sets[i].id;
|
return ecc_sets[i].id;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user