You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
104 lines
3.5 KiB
104 lines
3.5 KiB
From 68f23e3725d9639f5b27d868fee291cabb516677 Mon Sep 17 00:00:00 2001 |
|
From: Dmitry Belyavskiy <beldmit@gmail.com> |
|
Date: Fri, 22 Apr 2022 18:16:56 +0200 |
|
Subject: [PATCH 1/2] Ensure we initialized the locale before |
|
evp_pkey_name2type |
|
|
|
Fixes #18158 |
|
--- |
|
crypto/evp/pmeth_lib.c | 2 ++ |
|
1 file changed, 2 insertions(+) |
|
|
|
diff --git a/crypto/evp/pmeth_lib.c b/crypto/evp/pmeth_lib.c |
|
index 2b9c6c2351da..92d25de44532 100644 |
|
--- a/crypto/evp/pmeth_lib.c |
|
+++ b/crypto/evp/pmeth_lib.c |
|
@@ -27,6 +27,7 @@ |
|
#ifndef FIPS_MODULE |
|
# include "crypto/asn1.h" |
|
#endif |
|
+#include "crypto/ctype.h" |
|
#include "crypto/evp.h" |
|
#include "crypto/dh.h" |
|
#include "crypto/ec.h" |
|
@@ -199,6 +200,7 @@ static EVP_PKEY_CTX *int_ctx_new(OSSL_LIB_CTX *libctx, |
|
} |
|
#ifndef FIPS_MODULE |
|
if (keytype != NULL) { |
|
+ ossl_init_casecmp(); |
|
id = evp_pkey_name2type(keytype); |
|
if (id == NID_undef) |
|
id = -1; |
|
|
|
From 51c7b2d9c30b72aeb7e8eb69799dc039d5b23e58 Mon Sep 17 00:00:00 2001 |
|
From: Dmitry Belyavskiy <beldmit@gmail.com> |
|
Date: Fri, 22 Apr 2022 19:26:08 +0200 |
|
Subject: [PATCH 2/2] Testing the EVP_PKEY_CTX_new_from_name without |
|
preliminary init |
|
|
|
--- |
|
test/build.info | 6 +++++- |
|
test/evp_pkey_ctx_new_from_name.c | 14 ++++++++++++++ |
|
test/recipes/02-test_localetest.t | 4 +++- |
|
3 files changed, 22 insertions(+), 2 deletions(-) |
|
create mode 100644 test/evp_pkey_ctx_new_from_name.c |
|
|
|
diff --git a/test/build.info b/test/build.info |
|
index 14a84f00a258..ee059973d31a 100644 |
|
--- a/test/build.info |
|
+++ b/test/build.info |
|
@@ -37,7 +37,7 @@ IF[{- !$disabled{tests} -}] |
|
sanitytest rsa_complex exdatatest bntest \ |
|
ecstresstest gmdifftest pbelutest \ |
|
destest mdc2test sha_test \ |
|
- exptest pbetest localetest \ |
|
+ exptest pbetest localetest evp_pkey_ctx_new_from_name\ |
|
evp_pkey_provided_test evp_test evp_extra_test evp_extra_test2 \ |
|
evp_fetch_prov_test evp_libctx_test ossl_store_test \ |
|
v3nametest v3ext \ |
|
@@ -139,6 +139,10 @@ IF[{- !$disabled{tests} -}] |
|
INCLUDE[localetest]=../include ../apps/include |
|
DEPEND[localetest]=../libcrypto libtestutil.a |
|
|
|
+ SOURCE[evp_pkey_ctx_new_from_name]=evp_pkey_ctx_new_from_name.c |
|
+ INCLUDE[evp_pkey_ctx_new_from_name]=../include ../apps/include |
|
+ DEPEND[evp_pkey_ctx_new_from_name]=../libcrypto |
|
+ |
|
SOURCE[pbetest]=pbetest.c |
|
INCLUDE[pbetest]=../include ../apps/include |
|
DEPEND[pbetest]=../libcrypto libtestutil.a |
|
diff --git a/test/evp_pkey_ctx_new_from_name.c b/test/evp_pkey_ctx_new_from_name.c |
|
new file mode 100644 |
|
index 000000000000..24063ea05ea5 |
|
--- /dev/null |
|
+++ b/test/evp_pkey_ctx_new_from_name.c |
|
@@ -0,0 +1,14 @@ |
|
+#include <stdio.h> |
|
+#include <openssl/ec.h> |
|
+#include <openssl/evp.h> |
|
+#include <openssl/err.h> |
|
+ |
|
+int main(int argc, char *argv[]) |
|
+{ |
|
+ EVP_PKEY_CTX *pctx = NULL; |
|
+ |
|
+ pctx = EVP_PKEY_CTX_new_from_name(NULL, "NO_SUCH_ALGORITHM", NULL); |
|
+ EVP_PKEY_CTX_free(pctx); |
|
+ |
|
+ return 0; |
|
+} |
|
diff --git a/test/recipes/02-test_localetest.t b/test/recipes/02-test_localetest.t |
|
index 1bccd57d4c63..77fba7d819ab 100644 |
|
--- a/test/recipes/02-test_localetest.t |
|
+++ b/test/recipes/02-test_localetest.t |
|
@@ -15,7 +15,9 @@ setup("locale tests"); |
|
plan skip_all => "Locale tests not available on Windows or VMS" |
|
if $^O =~ /^(VMS|MSWin32)$/; |
|
|
|
-plan tests => 2; |
|
+plan tests => 3; |
|
+ |
|
+ok(run(test(["evp_pkey_ctx_new_from_name"])), "running evp_pkey_ctx_new_from_name without explicit context init"); |
|
|
|
$ENV{LANG} = "C"; |
|
ok(run(test(["localetest"])), "running localetest");
|
|
|