Projects
openEuler:Mainline
compat-openssl11
_service:tar_scm:Backport-Fix-no-ec-no-sm2-and-...
Sign Up
Log In
Username
Password
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File _service:tar_scm:Backport-Fix-no-ec-no-sm2-and-no-sm3.patch of Package compat-openssl11
From 380cf570be1ded495141e16ceab7afb7f7c57ab7 Mon Sep 17 00:00:00 2001 From: Matt Caswell <matt@openssl.org> Date: Thu, 28 Feb 2019 13:47:26 +0000 Subject: [PATCH 02/15] Fix no-ec, no-sm2 and no-sm3 Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/8372) --- apps/pkeyutl.c | 11 +++++++---- test/recipes/20-test_pkeyutl.t | 9 +++++++-- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/apps/pkeyutl.c b/apps/pkeyutl.c index bca0464..1d3d57b 100644 --- a/apps/pkeyutl.c +++ b/apps/pkeyutl.c @@ -473,14 +473,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) @@ -488,6 +490,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) diff --git a/test/recipes/20-test_pkeyutl.t b/test/recipes/20-test_pkeyutl.t index a051138..1457530 100644 --- a/test/recipes/20-test_pkeyutl.t +++ b/test/recipes/20-test_pkeyutl.t @@ -37,7 +37,12 @@ sub verify '-digest', 'sm3', '-pkeyopt', 'sm2_id:someid']))); } -ok(sign, "Sign a piece of data using SM2"); -ok(verify, "Verify an SM2 signature against a piece of data"); +SKIP: { + skip "Skipping tests that require EC, SM2 or SM3", 2 + if disabled("ec") || disabled("sm2") || disabled("sm3"); + + ok(sign, "Sign a piece of data using SM2"); + ok(verify, "Verify an SM2 signature against a piece of data"); +} unlink 'signature.sm2'; -- 2.20.1 (Apple Git-117)
Locations
Projects
Search
Status Monitor
Help
Open Build Service
OBS Manuals
API Documentation
OBS Portal
Reporting a Bug
Contact
Mailing List
Forums
Chat (IRC)
Twitter
Open Build Service (OBS)
is an
openSUSE project
.
浙ICP备2022010568号-2