fix for no-ec
authorDr. Stephen Henson <steve@openssl.org>
Wed, 16 Dec 2015 14:45:40 +0000 (14:45 +0000)
committerDr. Stephen Henson <steve@openssl.org>
Wed, 16 Dec 2015 15:22:33 +0000 (15:22 +0000)
Reviewed-by: Matt Caswell <matt@openssl.org>
ssl/s3_lib.c

index 465ed1ef653a61a2a125b76855bfe55cb5b2ede4..a61ca625f7078e6415698219af562e167eef8a00 100644 (file)
@@ -4997,15 +4997,21 @@ EVP_PKEY *ssl_generate_pkey(EVP_PKEY *pm, int nid)
     if (pm != NULL) {
         pctx = EVP_PKEY_CTX_new(pm, NULL);
     } else {
     if (pm != NULL) {
         pctx = EVP_PKEY_CTX_new(pm, NULL);
     } else {
-        /* Generate a new key for this curve */
+        /*
+         * Generate a new key for this curve.
+         * Should not be called if EC is disabled: if it is it will
+         * fail with an unknown algorithm error.
+         */
         pctx = EVP_PKEY_CTX_new_id(EVP_PKEY_EC, NULL);
     }
     if (pctx == NULL)
         goto err;
     if (EVP_PKEY_keygen_init(pctx) <= 0)
         goto err;
         pctx = EVP_PKEY_CTX_new_id(EVP_PKEY_EC, NULL);
     }
     if (pctx == NULL)
         goto err;
     if (EVP_PKEY_keygen_init(pctx) <= 0)
         goto err;
+#ifndef OPENSSL_NO_EC
     if (pm == NULL && EVP_PKEY_CTX_set_ec_paramgen_curve_nid(pctx, nid) <= 0)
         goto err;
     if (pm == NULL && EVP_PKEY_CTX_set_ec_paramgen_curve_nid(pctx, nid) <= 0)
         goto err;
+#endif
 
     if (EVP_PKEY_keygen(pctx, &pkey) <= 0) {
         EVP_PKEY_free(pkey);
 
     if (EVP_PKEY_keygen(pctx, &pkey) <= 0) {
         EVP_PKEY_free(pkey);