Remove DH usage from tls_process_cke_dhe
[openssl.git] / ssl / statem / statem_srvr.c
index 9d0d8c9ed4333031ffd01d5fb83e9b8f8efb8900..b6baff28ea5940ca976eed24cdaa530a817a0a26 100644 (file)
@@ -2962,11 +2962,8 @@ static int tls_process_cke_rsa(SSL *s, PACKET *pkt)
 
 static int tls_process_cke_dhe(SSL *s, PACKET *pkt)
 {
 
 static int tls_process_cke_dhe(SSL *s, PACKET *pkt)
 {
-#ifndef OPENSSL_NO_DH
     EVP_PKEY *skey = NULL;
     EVP_PKEY *skey = NULL;
-    DH *cdh;
     unsigned int i;
     unsigned int i;
-    BIGNUM *pub_key;
     const unsigned char *data;
     EVP_PKEY *ckey = NULL;
     int ret = 0;
     const unsigned char *data;
     EVP_PKEY *ckey = NULL;
     int ret = 0;
@@ -2996,11 +2993,8 @@ static int tls_process_cke_dhe(SSL *s, PACKET *pkt)
         goto err;
     }
 
         goto err;
     }
 
-    cdh = EVP_PKEY_get0_DH(ckey);
-    pub_key = BN_bin2bn(data, i, NULL);
-    if (pub_key == NULL || cdh == NULL || !DH_set0_key(cdh, pub_key, NULL)) {
+    if (!EVP_PKEY_set1_encoded_public_key(ckey, data, i)) {
         SSLfatal(s, SSL_AD_INTERNAL_ERROR, ERR_R_INTERNAL_ERROR);
         SSLfatal(s, SSL_AD_INTERNAL_ERROR, ERR_R_INTERNAL_ERROR);
-        BN_free(pub_key);
         goto err;
     }
 
         goto err;
     }
 
@@ -3015,11 +3009,6 @@ static int tls_process_cke_dhe(SSL *s, PACKET *pkt)
  err:
     EVP_PKEY_free(ckey);
     return ret;
  err:
     EVP_PKEY_free(ckey);
     return ret;
-#else
-    /* Should never happen */
-    SSLfatal(s, SSL_AD_INTERNAL_ERROR, ERR_R_INTERNAL_ERROR);
-    return 0;
-#endif
 }
 
 static int tls_process_cke_ecdhe(SSL *s, PACKET *pkt)
 }
 
 static int tls_process_cke_ecdhe(SSL *s, PACKET *pkt)