X-Git-Url: https://git.openssl.org/gitweb/?p=openssl.git;a=blobdiff_plain;f=apps%2Fpkeyutl.c;h=c084525cd57fc2dfc8de2ee3ea4fb7cfb09be01d;hp=b3452d31ca7920a7d15025eba6b22fad7959fd63;hb=ed86f884ba10c93a0beb53492c5db463e31a6884;hpb=cc838ee2d66f7295bf7a7e6695aab1080d6791e9 diff --git a/apps/pkeyutl.c b/apps/pkeyutl.c index b3452d31ca..c084525cd5 100644 --- a/apps/pkeyutl.c +++ b/apps/pkeyutl.c @@ -526,14 +526,16 @@ static EVP_PKEY_CTX *init_ctx(const char *kdfalg, int *pkeysize, } ctx = EVP_PKEY_CTX_new_id(kdfnid, impl); } else { - EC_KEY *eckey = NULL; - const EC_GROUP *group = NULL; - int nid; - if (pkey == NULL) goto end; + +#ifndef OPENSSL_NO_EC /* SM2 needs a special treatment */ if (EVP_PKEY_id(pkey) == EVP_PKEY_EC) { + EC_KEY *eckey = NULL; + const EC_GROUP *group = NULL; + int nid; + if ((eckey = EVP_PKEY_get0_EC_KEY(pkey)) == NULL || (group = EC_KEY_get0_group(eckey)) == NULL || (nid = EC_GROUP_get_curve_name(group)) == 0) @@ -541,6 +543,7 @@ static EVP_PKEY_CTX *init_ctx(const char *kdfalg, int *pkeysize, if (nid == NID_sm2) EVP_PKEY_set_alias_type(pkey, EVP_PKEY_SM2); } +#endif *pkeysize = EVP_PKEY_size(pkey); ctx = EVP_PKEY_CTX_new(pkey, impl); if (ppkey != NULL)