]> git.ipfire.org Git - thirdparty/openssl.git/blobdiff - ssl/statem/statem_clnt.c
Replace tls1_ec_curve_id2nid.
[thirdparty/openssl.git] / ssl / statem / statem_clnt.c
index 5f17864f9845f1b167453ac125ad0180801e8b0d..a20bf005932f0cf38ad22048bd9502a474159a8f 100644 (file)
@@ -2041,8 +2041,7 @@ static int tls_process_ske_ecdhe(SSL *s, PACKET *pkt, EVP_PKEY **pkey, int *al)
 #ifndef OPENSSL_NO_EC
     PACKET encoded_pt;
     const unsigned char *ecparams;
-    int curve_nid;
-    unsigned int curve_flags;
+    const TLS_GROUP_INFO *ginf;
     EVP_PKEY_CTX *pctx = NULL;
 
     /*
@@ -2065,19 +2064,19 @@ static int tls_process_ske_ecdhe(SSL *s, PACKET *pkt, EVP_PKEY **pkey, int *al)
         return 0;
     }
 
-    curve_nid = tls1_ec_curve_id2nid(*(ecparams + 2), &curve_flags);
+    ginf = tls1_group_id_lookup(ecparams[2]);
 
-    if (curve_nid == 0) {
+    if (ginf == NULL) {
         *al = SSL_AD_INTERNAL_ERROR;
         SSLerr(SSL_F_TLS_PROCESS_SKE_ECDHE,
                SSL_R_UNABLE_TO_FIND_ECDH_PARAMETERS);
         return 0;
     }
 
-    if ((curve_flags & TLS_CURVE_TYPE) == TLS_CURVE_CUSTOM) {
+    if ((ginf->flags & TLS_CURVE_TYPE) == TLS_CURVE_CUSTOM) {
         EVP_PKEY *key = EVP_PKEY_new();
 
-        if (key == NULL || !EVP_PKEY_set_type(key, curve_nid)) {
+        if (key == NULL || !EVP_PKEY_set_type(key, ginf->nid)) {
             *al = SSL_AD_INTERNAL_ERROR;
             SSLerr(SSL_F_TLS_PROCESS_SKE_ECDHE, ERR_R_EVP_LIB);
             EVP_PKEY_free(key);
@@ -2089,7 +2088,7 @@ static int tls_process_ske_ecdhe(SSL *s, PACKET *pkt, EVP_PKEY **pkey, int *al)
         pctx = EVP_PKEY_CTX_new_id(EVP_PKEY_EC, NULL);
         if (pctx == NULL
             || EVP_PKEY_paramgen_init(pctx) <= 0
-            || EVP_PKEY_CTX_set_ec_paramgen_curve_nid(pctx, curve_nid) <= 0
+            || EVP_PKEY_CTX_set_ec_paramgen_curve_nid(pctx, ginf->nid) <= 0
             || EVP_PKEY_paramgen(pctx, &s->s3->peer_tmp) <= 0) {
             *al = SSL_AD_INTERNAL_ERROR;
             SSLerr(SSL_F_TLS_PROCESS_SKE_ECDHE, ERR_R_EVP_LIB);