fix for no-ec

Reviewed-by: Matt Caswell <matt@openssl.org>
This commit is contained in:
Dr. Stephen Henson 2015-12-16 14:45:40 +00:00
parent 91b0d2c114
commit e4cf866322

View File

@ -4997,15 +4997,21 @@ EVP_PKEY *ssl_generate_pkey(EVP_PKEY *pm, int nid)
if (pm != NULL) { if (pm != NULL) {
pctx = EVP_PKEY_CTX_new(pm, NULL); pctx = EVP_PKEY_CTX_new(pm, NULL);
} else { } 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); pctx = EVP_PKEY_CTX_new_id(EVP_PKEY_EC, NULL);
} }
if (pctx == NULL) if (pctx == NULL)
goto err; goto err;
if (EVP_PKEY_keygen_init(pctx) <= 0) if (EVP_PKEY_keygen_init(pctx) <= 0)
goto err; goto err;
#ifndef OPENSSL_NO_EC
if (pm == NULL && EVP_PKEY_CTX_set_ec_paramgen_curve_nid(pctx, nid) <= 0) if (pm == NULL && EVP_PKEY_CTX_set_ec_paramgen_curve_nid(pctx, nid) <= 0)
goto err; goto err;
#endif
if (EVP_PKEY_keygen(pctx, &pkey) <= 0) { if (EVP_PKEY_keygen(pctx, &pkey) <= 0) {
EVP_PKEY_free(pkey); EVP_PKEY_free(pkey);