Loading apps/ecparam.c +23 −8 Original line number Diff line number Diff line Loading @@ -352,19 +352,33 @@ bad: if (list_curves) { int counter=0; EC_builtin_curve *curves = NULL; size_t crv_len = 0; size_t n = 0; size_t len; for (;;) crv_len = EC_get_builtin_curves(NULL, 0); curves = OPENSSL_malloc(sizeof(EC_builtin_curve) * crv_len); if (curves == NULL) goto end; if (!EC_get_builtin_curves(curves, crv_len)) { OPENSSL_free(curves); goto end; } for (n = 0; n < crv_len; n++) { const char *comment; const char *sname; int len, nid = ec_group_index2nid(counter++); if (!nid) break; comment = EC_GROUP_get0_comment(nid); sname = OBJ_nid2sn(nid); comment = curves[n].comment; sname = OBJ_nid2sn(curves[n].nid); if (comment == NULL) comment = ""; comment = "CURVE DESCRIPTION NOT AVAILABLE"; if (sname == NULL) sname = ""; Loading @@ -375,6 +389,7 @@ bad: BIO_printf(out, "%s\n", comment); } OPENSSL_free(curves); ret = 0; goto end; } Loading crypto/ec/ec.h +10 −6 Original line number Diff line number Diff line Loading @@ -184,12 +184,16 @@ EC_GROUP *EC_GROUP_new_curve_GF2m(const BIGNUM *p, const BIGNUM *a, const BIGNUM /* EC_GROUP_new_by_nid() creates a EC_GROUP structure specified by a NID */ EC_GROUP *EC_GROUP_new_by_nid(int nid); /* EC_GROUP_get0_comment() returns a pointer to the 'comment' field of * ec_curve_data_st structure */ const char *EC_GROUP_get0_comment(int nid); /* internal function : ec_group_index2nid() returns the NID of curve * with the given index i from the internal curve list */ int ec_group_index2nid(int i); /* handling of internal curves */ typedef struct { int nid; const char *comment; } EC_builtin_curve; /* EC_builtin_curves(EC_builtin_curve *r, size_t size) returns number * of all available curves or zero if a error occurred. * In case r ist not zero nitems EC_builtin_curve structures * are filled with the data of the first nitems internal groups */ size_t EC_get_builtin_curves(EC_builtin_curve *r, size_t nitems); /* EC_POINT functions */ Loading crypto/ec/ec_curve.c +13 −12 Original line number Diff line number Diff line Loading @@ -1207,19 +1207,20 @@ EC_GROUP *EC_GROUP_new_by_nid(int nid) return ret; } const char *EC_GROUP_get0_comment(int nid) size_t EC_get_builtin_curves(EC_builtin_curve *r, size_t nitems) { size_t i; size_t i, min; for (i=0; i<curve_list_length; i++) if (curve_list[i].nid == nid) return curve_list[i].data->comment; return NULL; } if (r == NULL || nitems == 0) return curve_list_length; min = nitems < curve_list_length ? nitems : curve_list_length; int ec_group_index2nid(int i) for (i = 0; i < min; i++) { if (i >= curve_list_length || i < 0) return 0; return curve_list[i].nid; r[i].nid = curve_list[i].nid; r[i].comment = curve_list[i].data->comment; } return curve_list_length; } util/libeay.num +3 −2 Original line number Diff line number Diff line Loading @@ -3003,9 +3003,10 @@ ENGINE_register_all_ECDH 3436 EXIST::FUNCTION: ECDH_DATA_new_method 3437 EXIST::FUNCTION:ECDH ENGINE_set_default_ECDH 3438 EXIST::FUNCTION: ENGINE_register_ECDH 3439 EXIST::FUNCTION: EC_GROUP_get0_comment 3440 EXIST::FUNCTION:EC ec_group_index2nid 3441 EXIST::FUNCTION:EC EC_GROUP_get0_comment 3440 NOEXIST::FUNCTION: ec_group_index2nid 3441 NOEXIST::FUNCTION: EC_GROUP_get_basis_type 3442 EXIST::FUNCTION:EC X509_REQ_print_ex 3443 EXIST::FUNCTION:BIO EC_GROUP_get_pentanomial_basis 3444 EXIST::FUNCTION:EC EC_GROUP_get_trinomial_basis 3445 EXIST::FUNCTION:EC EC_get_builtin_curves 3446 EXIST::FUNCTION:EC Loading
apps/ecparam.c +23 −8 Original line number Diff line number Diff line Loading @@ -352,19 +352,33 @@ bad: if (list_curves) { int counter=0; EC_builtin_curve *curves = NULL; size_t crv_len = 0; size_t n = 0; size_t len; for (;;) crv_len = EC_get_builtin_curves(NULL, 0); curves = OPENSSL_malloc(sizeof(EC_builtin_curve) * crv_len); if (curves == NULL) goto end; if (!EC_get_builtin_curves(curves, crv_len)) { OPENSSL_free(curves); goto end; } for (n = 0; n < crv_len; n++) { const char *comment; const char *sname; int len, nid = ec_group_index2nid(counter++); if (!nid) break; comment = EC_GROUP_get0_comment(nid); sname = OBJ_nid2sn(nid); comment = curves[n].comment; sname = OBJ_nid2sn(curves[n].nid); if (comment == NULL) comment = ""; comment = "CURVE DESCRIPTION NOT AVAILABLE"; if (sname == NULL) sname = ""; Loading @@ -375,6 +389,7 @@ bad: BIO_printf(out, "%s\n", comment); } OPENSSL_free(curves); ret = 0; goto end; } Loading
crypto/ec/ec.h +10 −6 Original line number Diff line number Diff line Loading @@ -184,12 +184,16 @@ EC_GROUP *EC_GROUP_new_curve_GF2m(const BIGNUM *p, const BIGNUM *a, const BIGNUM /* EC_GROUP_new_by_nid() creates a EC_GROUP structure specified by a NID */ EC_GROUP *EC_GROUP_new_by_nid(int nid); /* EC_GROUP_get0_comment() returns a pointer to the 'comment' field of * ec_curve_data_st structure */ const char *EC_GROUP_get0_comment(int nid); /* internal function : ec_group_index2nid() returns the NID of curve * with the given index i from the internal curve list */ int ec_group_index2nid(int i); /* handling of internal curves */ typedef struct { int nid; const char *comment; } EC_builtin_curve; /* EC_builtin_curves(EC_builtin_curve *r, size_t size) returns number * of all available curves or zero if a error occurred. * In case r ist not zero nitems EC_builtin_curve structures * are filled with the data of the first nitems internal groups */ size_t EC_get_builtin_curves(EC_builtin_curve *r, size_t nitems); /* EC_POINT functions */ Loading
crypto/ec/ec_curve.c +13 −12 Original line number Diff line number Diff line Loading @@ -1207,19 +1207,20 @@ EC_GROUP *EC_GROUP_new_by_nid(int nid) return ret; } const char *EC_GROUP_get0_comment(int nid) size_t EC_get_builtin_curves(EC_builtin_curve *r, size_t nitems) { size_t i; size_t i, min; for (i=0; i<curve_list_length; i++) if (curve_list[i].nid == nid) return curve_list[i].data->comment; return NULL; } if (r == NULL || nitems == 0) return curve_list_length; min = nitems < curve_list_length ? nitems : curve_list_length; int ec_group_index2nid(int i) for (i = 0; i < min; i++) { if (i >= curve_list_length || i < 0) return 0; return curve_list[i].nid; r[i].nid = curve_list[i].nid; r[i].comment = curve_list[i].data->comment; } return curve_list_length; }
util/libeay.num +3 −2 Original line number Diff line number Diff line Loading @@ -3003,9 +3003,10 @@ ENGINE_register_all_ECDH 3436 EXIST::FUNCTION: ECDH_DATA_new_method 3437 EXIST::FUNCTION:ECDH ENGINE_set_default_ECDH 3438 EXIST::FUNCTION: ENGINE_register_ECDH 3439 EXIST::FUNCTION: EC_GROUP_get0_comment 3440 EXIST::FUNCTION:EC ec_group_index2nid 3441 EXIST::FUNCTION:EC EC_GROUP_get0_comment 3440 NOEXIST::FUNCTION: ec_group_index2nid 3441 NOEXIST::FUNCTION: EC_GROUP_get_basis_type 3442 EXIST::FUNCTION:EC X509_REQ_print_ex 3443 EXIST::FUNCTION:BIO EC_GROUP_get_pentanomial_basis 3444 EXIST::FUNCTION:EC EC_GROUP_get_trinomial_basis 3445 EXIST::FUNCTION:EC EC_get_builtin_curves 3446 EXIST::FUNCTION:EC