Rebase to OpenSSL 3.5.5
Resolves: RHEL-122599 Resolves: RHEL-141987 Resolves: RHEL-142009 Resolves: RHEL-142022 Resolves: RHEL-142026 Resolves: RHEL-142030 Resolves: RHEL-142034 Resolves: RHEL-142038 Resolves: RHEL-142042 Resolves: RHEL-142046 Resolves: RHEL-142050 Resolves: RHEL-142054
This commit is contained in:
parent
4cf5738ac1
commit
c6600b8177
1
.gitignore
vendored
1
.gitignore
vendored
@ -64,3 +64,4 @@ openssl-1.0.0a-usa.tar.bz2
|
||||
/openssl-3.2.2.tar.gz
|
||||
/openssl-3.5.0.tar.gz
|
||||
/openssl-3.5.1.tar.gz
|
||||
/openssl-3.5.5.tar.gz
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
From bc8c037733c26d4c4a2a3dfd1e383be9855449b3 Mon Sep 17 00:00:00 2001
|
||||
From ad6ba90718f814f1db71e86a4156098eb2bbeef5 Mon Sep 17 00:00:00 2001
|
||||
From: rpm-build <rpm-build>
|
||||
Date: Wed, 6 Mar 2024 19:17:14 +0100
|
||||
Subject: [PATCH 01/53] RH: Aarch64 and ppc64le use lib64
|
||||
Subject: [PATCH 01/57] RH: Aarch64 and ppc64le use lib64
|
||||
|
||||
Patch-name: 0001-Aarch64-and-ppc64le-use-lib64.patch
|
||||
Patch-id: 1
|
||||
@ -34,5 +34,5 @@ index cba57b4127..3e327017ef 100644
|
||||
"linux-arm64ilp32" => { # https://wiki.linaro.org/Platform/arm64-ilp32
|
||||
inherit_from => [ "linux-generic32" ],
|
||||
--
|
||||
2.50.0
|
||||
2.52.0
|
||||
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
From 99e084a168125827163da87f3f1de3f05db99be1 Mon Sep 17 00:00:00 2001
|
||||
From a10a60403c197128ea6d8076b5111c64594a5026 Mon Sep 17 00:00:00 2001
|
||||
From: Simo Sorce <simo@redhat.com>
|
||||
Date: Thu, 6 Mar 2025 08:40:29 -0500
|
||||
Subject: [PATCH 02/53] Add a separate config file to use for rpm installs
|
||||
Subject: [PATCH 02/57] Add a separate config file to use for rpm installs
|
||||
|
||||
In RHEL/Fedora systems we want to use a slightly different set
|
||||
of defaults, but we do not want to change the standard config file
|
||||
@ -452,5 +452,5 @@ index 0000000000..fe2346eb2b
|
||||
+cmd = rr
|
||||
+oldcert = $insta::certout # insta.cert.pem
|
||||
--
|
||||
2.50.0
|
||||
2.52.0
|
||||
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
From 371ef9d39cb5a54d7f22ef1abd6340dbadf88fcd Mon Sep 17 00:00:00 2001
|
||||
From 44f15e373a78a1fb01edf15e7530cea4c8a1b79b Mon Sep 17 00:00:00 2001
|
||||
From: rpm-build <rpm-build>
|
||||
Date: Wed, 6 Mar 2024 19:17:14 +0100
|
||||
Subject: [PATCH 03/53] RH: Do not install html docs
|
||||
Subject: [PATCH 03/57] RH: Do not install html docs
|
||||
|
||||
Patch-name: 0003-Do-not-install-html-docs.patch
|
||||
Patch-id: 3
|
||||
@ -13,10 +13,10 @@ From-dist-git-commit: 4334bc837fbc64d14890fdc51679a80770d498ce
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/Configurations/unix-Makefile.tmpl b/Configurations/unix-Makefile.tmpl
|
||||
index a6f666957e..b1d8b00755 100644
|
||||
index 78be4a3199..962d1330bb 100644
|
||||
--- a/Configurations/unix-Makefile.tmpl
|
||||
+++ b/Configurations/unix-Makefile.tmpl
|
||||
@@ -658,7 +658,7 @@ install_sw: install_dev install_engines install_modules install_runtime ## Insta
|
||||
@@ -669,7 +669,7 @@ install_sw: install_dev install_engines install_modules install_runtime ## Insta
|
||||
|
||||
uninstall_sw: uninstall_runtime uninstall_modules uninstall_engines uninstall_dev ## Uninstall the software and libraries
|
||||
|
||||
@ -26,5 +26,5 @@ index a6f666957e..b1d8b00755 100644
|
||||
uninstall_docs: uninstall_man_docs uninstall_html_docs ## Uninstall manpages and HTML documentation
|
||||
$(RM) -r "$(DESTDIR)$(DOCDIR)"
|
||||
--
|
||||
2.50.0
|
||||
2.52.0
|
||||
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
From 79787a5bb85fed3c6998bfe3aebcdff9ffa56edf Mon Sep 17 00:00:00 2001
|
||||
From 3e60b46747eae0aec3171f13da6be706bcac6b48 Mon Sep 17 00:00:00 2001
|
||||
From: rpm-build <rpm-build>
|
||||
Date: Wed, 6 Mar 2024 19:17:14 +0100
|
||||
Subject: [PATCH 04/53] RH: apps ca fix md option help text.patch - DROP?
|
||||
Subject: [PATCH 04/57] RH: apps ca fix md option help text.patch - DROP?
|
||||
|
||||
Patch-name: 0005-apps-ca-fix-md-option-help-text.patch
|
||||
Patch-id: 5
|
||||
@ -13,18 +13,18 @@ From-dist-git-commit: 4334bc837fbc64d14890fdc51679a80770d498ce
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/apps/ca.c b/apps/ca.c
|
||||
index 6d1d1c0a6e..a7553ba609 100644
|
||||
index 02b00c7c03..7f77e069ab 100644
|
||||
--- a/apps/ca.c
|
||||
+++ b/apps/ca.c
|
||||
@@ -216,7 +216,7 @@ const OPTIONS ca_options[] = {
|
||||
{"noemailDN", OPT_NOEMAILDN, '-', "Don't add the EMAIL field to the DN"},
|
||||
@@ -261,7 +261,7 @@ const OPTIONS ca_options[] = {
|
||||
{ "noemailDN", OPT_NOEMAILDN, '-', "Don't add the EMAIL field to the DN" },
|
||||
|
||||
OPT_SECTION("Signing"),
|
||||
- {"md", OPT_MD, 's', "Digest to use, such as sha256"},
|
||||
+ {"md", OPT_MD, 's', "Digest to use, such as sha256; see openssl help for list"},
|
||||
{"keyfile", OPT_KEYFILE, 's', "The CA private key"},
|
||||
{"keyform", OPT_KEYFORM, 'f',
|
||||
"Private key file format (ENGINE, other values ignored)"},
|
||||
- { "md", OPT_MD, 's', "Digest to use, such as sha256" },
|
||||
+ { "md", OPT_MD, 's', "Digest to use, such as sha256; see openssl help for list" },
|
||||
{ "keyfile", OPT_KEYFILE, 's', "The CA private key" },
|
||||
{ "keyform", OPT_KEYFORM, 'f',
|
||||
"Private key file format (ENGINE, other values ignored)" },
|
||||
--
|
||||
2.50.0
|
||||
2.52.0
|
||||
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
From c99e322d8f8ea6835f2d8aff4ca33d36410c4233 Mon Sep 17 00:00:00 2001
|
||||
From 04f1fc282cd5f5e7a9fbf2d82a62a9810d2e4acc Mon Sep 17 00:00:00 2001
|
||||
From: rpm-build <rpm-build>
|
||||
Date: Wed, 6 Mar 2024 19:17:14 +0100
|
||||
Subject: [PATCH 05/53] RH: Disable signature verification with bad digests -
|
||||
Subject: [PATCH 05/57] RH: Disable signature verification with bad digests -
|
||||
REVIEW
|
||||
|
||||
Patch-name: 0006-Disable-signature-verification-with-totally-unsafe-h.patch
|
||||
@ -14,10 +14,10 @@ From-dist-git-commit: 4334bc837fbc64d14890fdc51679a80770d498ce
|
||||
1 file changed, 5 insertions(+)
|
||||
|
||||
diff --git a/crypto/asn1/a_verify.c b/crypto/asn1/a_verify.c
|
||||
index f6cac80962..fbc6ce6e30 100644
|
||||
index 55f86ee83f..95483afc00 100644
|
||||
--- a/crypto/asn1/a_verify.c
|
||||
+++ b/crypto/asn1/a_verify.c
|
||||
@@ -151,6 +151,11 @@ int ASN1_item_verify_ctx(const ASN1_ITEM *it, const X509_ALGOR *alg,
|
||||
@@ -152,6 +152,11 @@ int ASN1_item_verify_ctx(const ASN1_ITEM *it, const X509_ALGOR *alg,
|
||||
ERR_raise(ERR_LIB_ASN1, ERR_R_EVP_LIB);
|
||||
if (ret <= 1)
|
||||
goto err;
|
||||
@ -30,5 +30,5 @@ index f6cac80962..fbc6ce6e30 100644
|
||||
const EVP_MD *type = NULL;
|
||||
|
||||
--
|
||||
2.50.0
|
||||
2.52.0
|
||||
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
From f54b7469e2525ea5f03113fad7169bd23fbcab50 Mon Sep 17 00:00:00 2001
|
||||
From ced223dc078708514c65b1903c783062ec568bb7 Mon Sep 17 00:00:00 2001
|
||||
From: rpm-build <rpm-build>
|
||||
Date: Wed, 6 Mar 2024 19:17:14 +0100
|
||||
Subject: [PATCH 06/53] RH: Add support for PROFILE SYSTEM system default
|
||||
Subject: [PATCH 06/57] RH: Add support for PROFILE SYSTEM system default
|
||||
cipher
|
||||
|
||||
Patch-name: 0007-Add-support-for-PROFILE-SYSTEM-system-default-cipher.patch
|
||||
@ -14,16 +14,16 @@ From-dist-git-commit: 4334bc837fbc64d14890fdc51679a80770d498ce
|
||||
Configure | 11 +++-
|
||||
doc/man1/openssl-ciphers.pod.in | 9 ++++
|
||||
include/openssl/ssl.h.in | 5 ++
|
||||
ssl/ssl_ciph.c | 83 +++++++++++++++++++++++++++----
|
||||
ssl/ssl_ciph.c | 85 ++++++++++++++++++++++++++-----
|
||||
ssl/ssl_lib.c | 4 +-
|
||||
test/cipherlist_test.c | 2 +
|
||||
7 files changed, 105 insertions(+), 14 deletions(-)
|
||||
7 files changed, 106 insertions(+), 15 deletions(-)
|
||||
|
||||
diff --git a/Configurations/unix-Makefile.tmpl b/Configurations/unix-Makefile.tmpl
|
||||
index b1d8b00755..91fd703afa 100644
|
||||
index 962d1330bb..1920d38655 100644
|
||||
--- a/Configurations/unix-Makefile.tmpl
|
||||
+++ b/Configurations/unix-Makefile.tmpl
|
||||
@@ -344,6 +344,10 @@ MANDIR=$(INSTALLTOP)/share/man
|
||||
@@ -355,6 +355,10 @@ MANDIR=$(INSTALLTOP)/share/man
|
||||
DOCDIR=$(INSTALLTOP)/share/doc/$(BASENAME)
|
||||
HTMLDIR=$(DOCDIR)/html
|
||||
|
||||
@ -34,7 +34,7 @@ index b1d8b00755..91fd703afa 100644
|
||||
# MANSUFFIX is for the benefit of anyone who may want to have a suffix
|
||||
# appended after the manpage file section number. "ssl" is popular,
|
||||
# resulting in files such as config.5ssl rather than config.5.
|
||||
@@ -367,6 +371,7 @@ CC=$(CROSS_COMPILE){- $config{CC} -}
|
||||
@@ -378,6 +382,7 @@ CC=$(CROSS_COMPILE){- $config{CC} -}
|
||||
CXX={- $config{CXX} ? "\$(CROSS_COMPILE)$config{CXX}" : '' -}
|
||||
CPPFLAGS={- our $cppflags1 = join(" ",
|
||||
(map { "-D".$_} @{$config{CPPDEFINES}}),
|
||||
@ -106,10 +106,10 @@ index 69195bcdcb..a6e0ede570 100644
|
||||
|
||||
"High" encryption cipher suites. This currently means those with key lengths
|
||||
diff --git a/include/openssl/ssl.h.in b/include/openssl/ssl.h.in
|
||||
index 383c5bc411..d1b00e8454 100644
|
||||
index bdcc68529b..82410670f4 100644
|
||||
--- a/include/openssl/ssl.h.in
|
||||
+++ b/include/openssl/ssl.h.in
|
||||
@@ -209,6 +209,11 @@ extern "C" {
|
||||
@@ -211,6 +211,11 @@ extern "C" {
|
||||
* throwing out anonymous and unencrypted ciphersuites! (The latter are not
|
||||
* actually enabled by ALL, but "ALL:RSA" would enable some of them.)
|
||||
*/
|
||||
@ -120,9 +120,9 @@ index 383c5bc411..d1b00e8454 100644
|
||||
+# endif
|
||||
|
||||
/* Used in SSL_set_shutdown()/SSL_get_shutdown(); */
|
||||
# define SSL_SENT_SHUTDOWN 1
|
||||
#define SSL_SENT_SHUTDOWN 1
|
||||
diff --git a/ssl/ssl_ciph.c b/ssl/ssl_ciph.c
|
||||
index 6127cb7a4b..19420d6c6a 100644
|
||||
index 7dccec6260..15be7e8067 100644
|
||||
--- a/ssl/ssl_ciph.c
|
||||
+++ b/ssl/ssl_ciph.c
|
||||
@@ -9,6 +9,7 @@
|
||||
@ -133,7 +133,7 @@ index 6127cb7a4b..19420d6c6a 100644
|
||||
#include <stdio.h>
|
||||
#include <ctype.h>
|
||||
#include <openssl/objects.h>
|
||||
@@ -1421,6 +1422,49 @@ int SSL_set_ciphersuites(SSL *s, const char *str)
|
||||
@@ -1404,6 +1405,49 @@ int SSL_set_ciphersuites(SSL *s, const char *str)
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -181,9 +181,9 @@ index 6127cb7a4b..19420d6c6a 100644
|
||||
+#endif
|
||||
+
|
||||
STACK_OF(SSL_CIPHER) *ssl_create_cipher_list(SSL_CTX *ctx,
|
||||
STACK_OF(SSL_CIPHER) *tls13_ciphersuites,
|
||||
STACK_OF(SSL_CIPHER) **cipher_list,
|
||||
@@ -1435,15 +1479,25 @@ STACK_OF(SSL_CIPHER) *ssl_create_cipher_list(SSL_CTX *ctx,
|
||||
STACK_OF(SSL_CIPHER) *tls13_ciphersuites,
|
||||
STACK_OF(SSL_CIPHER) **cipher_list,
|
||||
@@ -1418,15 +1462,25 @@ STACK_OF(SSL_CIPHER) *ssl_create_cipher_list(SSL_CTX *ctx,
|
||||
CIPHER_ORDER *co_list = NULL, *head = NULL, *tail = NULL, *curr;
|
||||
const SSL_CIPHER **ca_list = NULL;
|
||||
const SSL_METHOD *ssl_method = ctx->method;
|
||||
@ -211,16 +211,16 @@ index 6127cb7a4b..19420d6c6a 100644
|
||||
|
||||
/*
|
||||
* To reduce the work to do we only want to process the compiled
|
||||
@@ -1465,7 +1519,7 @@ STACK_OF(SSL_CIPHER) *ssl_create_cipher_list(SSL_CTX *ctx,
|
||||
@@ -1448,7 +1502,7 @@ STACK_OF(SSL_CIPHER) *ssl_create_cipher_list(SSL_CTX *ctx,
|
||||
if (num_of_ciphers > 0) {
|
||||
co_list = OPENSSL_malloc(sizeof(*co_list) * num_of_ciphers);
|
||||
if (co_list == NULL)
|
||||
- return NULL; /* Failure */
|
||||
- return NULL; /* Failure */
|
||||
+ goto err;
|
||||
}
|
||||
|
||||
ssl_cipher_collect_ciphers(ssl_method, num_of_ciphers,
|
||||
@@ -1531,8 +1585,7 @@ STACK_OF(SSL_CIPHER) *ssl_create_cipher_list(SSL_CTX *ctx,
|
||||
@@ -1514,8 +1568,7 @@ STACK_OF(SSL_CIPHER) *ssl_create_cipher_list(SSL_CTX *ctx,
|
||||
* in force within each class
|
||||
*/
|
||||
if (!ssl_cipher_strength_sort(&head, &tail)) {
|
||||
@ -230,27 +230,29 @@ index 6127cb7a4b..19420d6c6a 100644
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -1576,8 +1629,7 @@ STACK_OF(SSL_CIPHER) *ssl_create_cipher_list(SSL_CTX *ctx,
|
||||
@@ -1559,8 +1612,7 @@ STACK_OF(SSL_CIPHER) *ssl_create_cipher_list(SSL_CTX *ctx,
|
||||
num_of_alias_max = num_of_ciphers + num_of_group_aliases + 1;
|
||||
ca_list = OPENSSL_malloc(sizeof(*ca_list) * num_of_alias_max);
|
||||
if (ca_list == NULL) {
|
||||
- OPENSSL_free(co_list);
|
||||
- return NULL; /* Failure */
|
||||
- return NULL; /* Failure */
|
||||
+ goto err;
|
||||
}
|
||||
ssl_cipher_collect_aliases(ca_list, num_of_group_aliases,
|
||||
disabled_mkey, disabled_auth, disabled_enc,
|
||||
@@ -1603,8 +1655,7 @@ STACK_OF(SSL_CIPHER) *ssl_create_cipher_list(SSL_CTX *ctx,
|
||||
OPENSSL_free(ca_list); /* Not needed anymore */
|
||||
disabled_mkey, disabled_auth, disabled_enc,
|
||||
@@ -1585,9 +1637,8 @@ STACK_OF(SSL_CIPHER) *ssl_create_cipher_list(SSL_CTX *ctx,
|
||||
|
||||
if (!ok) { /* Rule processing failure */
|
||||
OPENSSL_free(ca_list); /* Not needed anymore */
|
||||
|
||||
- if (!ok) { /* Rule processing failure */
|
||||
- OPENSSL_free(co_list);
|
||||
- return NULL;
|
||||
+ if (!ok) { /* Rule processing failure */
|
||||
+ goto err;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -1612,10 +1663,13 @@ STACK_OF(SSL_CIPHER) *ssl_create_cipher_list(SSL_CTX *ctx,
|
||||
@@ -1595,10 +1646,13 @@ STACK_OF(SSL_CIPHER) *ssl_create_cipher_list(SSL_CTX *ctx,
|
||||
* if we cannot get one.
|
||||
*/
|
||||
if ((cipherstack = sk_SSL_CIPHER_new_null()) == NULL) {
|
||||
@ -266,7 +268,7 @@ index 6127cb7a4b..19420d6c6a 100644
|
||||
/* Add TLSv1.3 ciphers first - we always prefer those if possible */
|
||||
for (i = 0; i < sk_SSL_CIPHER_num(tls13_ciphersuites); i++) {
|
||||
const SSL_CIPHER *sslc = sk_SSL_CIPHER_value(tls13_ciphersuites, i);
|
||||
@@ -1667,6 +1721,13 @@ STACK_OF(SSL_CIPHER) *ssl_create_cipher_list(SSL_CTX *ctx,
|
||||
@@ -1653,6 +1707,13 @@ STACK_OF(SSL_CIPHER) *ssl_create_cipher_list(SSL_CTX *ctx,
|
||||
*cipher_list = cipherstack;
|
||||
|
||||
return cipherstack;
|
||||
@ -281,32 +283,32 @@ index 6127cb7a4b..19420d6c6a 100644
|
||||
|
||||
char *SSL_CIPHER_description(const SSL_CIPHER *cipher, char *buf, int len)
|
||||
diff --git a/ssl/ssl_lib.c b/ssl/ssl_lib.c
|
||||
index 9696a4c55f..4bd3318407 100644
|
||||
index ac77faa677..677b05ba64 100644
|
||||
--- a/ssl/ssl_lib.c
|
||||
+++ b/ssl/ssl_lib.c
|
||||
@@ -686,7 +686,7 @@ int SSL_CTX_set_ssl_version(SSL_CTX *ctx, const SSL_METHOD *meth)
|
||||
ctx->tls13_ciphersuites,
|
||||
&(ctx->cipher_list),
|
||||
&(ctx->cipher_list_by_id),
|
||||
- OSSL_default_cipher_list(), ctx->cert);
|
||||
+ SSL_SYSTEM_DEFAULT_CIPHER_LIST, ctx->cert);
|
||||
@@ -678,7 +678,7 @@ int SSL_CTX_set_ssl_version(SSL_CTX *ctx, const SSL_METHOD *meth)
|
||||
ctx->tls13_ciphersuites,
|
||||
&(ctx->cipher_list),
|
||||
&(ctx->cipher_list_by_id),
|
||||
- OSSL_default_cipher_list(), ctx->cert);
|
||||
+ SSL_SYSTEM_DEFAULT_CIPHER_LIST, ctx->cert);
|
||||
if ((sk == NULL) || (sk_SSL_CIPHER_num(sk) <= 0)) {
|
||||
ERR_raise(ERR_LIB_SSL, SSL_R_SSL_LIBRARY_HAS_NO_CIPHERS);
|
||||
return 0;
|
||||
@@ -4136,7 +4136,7 @@ SSL_CTX *SSL_CTX_new_ex(OSSL_LIB_CTX *libctx, const char *propq,
|
||||
@@ -4102,7 +4102,7 @@ SSL_CTX *SSL_CTX_new_ex(OSSL_LIB_CTX *libctx, const char *propq,
|
||||
if (!ssl_create_cipher_list(ret,
|
||||
ret->tls13_ciphersuites,
|
||||
&ret->cipher_list, &ret->cipher_list_by_id,
|
||||
- OSSL_default_cipher_list(), ret->cert)
|
||||
+ SSL_SYSTEM_DEFAULT_CIPHER_LIST, ret->cert)
|
||||
ret->tls13_ciphersuites,
|
||||
&ret->cipher_list, &ret->cipher_list_by_id,
|
||||
- OSSL_default_cipher_list(), ret->cert)
|
||||
+ SSL_SYSTEM_DEFAULT_CIPHER_LIST, ret->cert)
|
||||
|| sk_SSL_CIPHER_num(ret->cipher_list) <= 0) {
|
||||
ERR_raise(ERR_LIB_SSL, SSL_R_LIBRARY_HAS_NO_CIPHERS);
|
||||
goto err;
|
||||
diff --git a/test/cipherlist_test.c b/test/cipherlist_test.c
|
||||
index c46e431b00..19d05e860b 100644
|
||||
index 9874e6bad6..76b6befbad 100644
|
||||
--- a/test/cipherlist_test.c
|
||||
+++ b/test/cipherlist_test.c
|
||||
@@ -261,7 +261,9 @@ end:
|
||||
@@ -260,7 +260,9 @@ end:
|
||||
|
||||
int setup_tests(void)
|
||||
{
|
||||
@ -317,5 +319,5 @@ index c46e431b00..19d05e860b 100644
|
||||
ADD_TEST(test_default_cipherlist_clear);
|
||||
ADD_TEST(test_stdname_cipherlist);
|
||||
--
|
||||
2.50.0
|
||||
2.52.0
|
||||
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
From 6a1b39542597be9a28f94dad23a8e93285368653 Mon Sep 17 00:00:00 2001
|
||||
From 60f55f072544cb998c42da41ee33ced2b4428b9f Mon Sep 17 00:00:00 2001
|
||||
From: rpm-build <rpm-build>
|
||||
Date: Wed, 6 Mar 2024 19:17:15 +0100
|
||||
Subject: [PATCH 07/53] RH: Add FIPS_mode compatibility macro
|
||||
Subject: [PATCH 07/57] RH: Add FIPS_mode compatibility macro
|
||||
|
||||
Patch-name: 0008-Add-FIPS_mode-compatibility-macro.patch
|
||||
Patch-id: 8
|
||||
@ -47,10 +47,10 @@ index 0000000000..4162cbf88e
|
||||
+# endif
|
||||
+#endif
|
||||
diff --git a/test/property_test.c b/test/property_test.c
|
||||
index 18f8cc8740..6864b1a3c1 100644
|
||||
index d470731e50..0b044ec853 100644
|
||||
--- a/test/property_test.c
|
||||
+++ b/test/property_test.c
|
||||
@@ -687,6 +687,19 @@ static int test_property_list_to_string(int i)
|
||||
@@ -703,6 +703,19 @@ err:
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -70,14 +70,14 @@ index 18f8cc8740..6864b1a3c1 100644
|
||||
int setup_tests(void)
|
||||
{
|
||||
ADD_TEST(test_property_string);
|
||||
@@ -700,6 +713,7 @@ int setup_tests(void)
|
||||
@@ -716,6 +729,7 @@ int setup_tests(void)
|
||||
ADD_TEST(test_property);
|
||||
ADD_TEST(test_query_cache_stochastic);
|
||||
ADD_TEST(test_fips_mode);
|
||||
+ ADD_TEST(test_downstream_FIPS_mode);
|
||||
ADD_ALL_TESTS(test_property_list_to_string, OSSL_NELEM(to_string_tests));
|
||||
ADD_TEST(test_property_list_to_string_bounds);
|
||||
return 1;
|
||||
}
|
||||
--
|
||||
2.50.0
|
||||
2.52.0
|
||||
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
From 15d44a4f1365532f8ebdf24a69c9da7220d5c704 Mon Sep 17 00:00:00 2001
|
||||
From 5aa108caf01f482d35aba7acae6b5a8fa1577410 Mon Sep 17 00:00:00 2001
|
||||
From: rpm-build <rpm-build>
|
||||
Date: Wed, 6 Mar 2024 19:17:15 +0100
|
||||
Subject: [PATCH 08/53] RH: Add Kernel FIPS mode flag support - FIXSTYLE
|
||||
Subject: [PATCH 08/57] RH: Add Kernel FIPS mode flag support - FIXSTYLE
|
||||
|
||||
Patch-name: 0009-Add-Kernel-FIPS-mode-flag-support.patch
|
||||
Patch-id: 9
|
||||
@ -10,11 +10,11 @@ Patch-status: |
|
||||
From-dist-git-commit: 4334bc837fbc64d14890fdc51679a80770d498ce
|
||||
---
|
||||
crypto/context.c | 35 +++++++++++++++++++++++++++++++++++
|
||||
include/internal/provider.h | 3 +++
|
||||
2 files changed, 38 insertions(+)
|
||||
include/internal/provider.h | 5 ++++-
|
||||
2 files changed, 39 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/crypto/context.c b/crypto/context.c
|
||||
index f15bc3d755..614c8a2c88 100644
|
||||
index 1ae88e42aa..62e60f3620 100644
|
||||
--- a/crypto/context.c
|
||||
+++ b/crypto/context.c
|
||||
@@ -7,6 +7,7 @@
|
||||
@ -64,7 +64,7 @@ index f15bc3d755..614c8a2c88 100644
|
||||
struct ossl_lib_ctx_st {
|
||||
CRYPTO_RWLOCK *lock;
|
||||
OSSL_EX_DATA_GLOBAL global;
|
||||
@@ -393,6 +426,8 @@ static int default_context_inited = 0;
|
||||
@@ -391,6 +424,8 @@ static int default_context_inited = 0;
|
||||
|
||||
DEFINE_RUN_ONCE_STATIC(default_context_do_init)
|
||||
{
|
||||
@ -74,19 +74,21 @@ index f15bc3d755..614c8a2c88 100644
|
||||
goto err;
|
||||
|
||||
diff --git a/include/internal/provider.h b/include/internal/provider.h
|
||||
index 7d94346155..c0f1d00da9 100644
|
||||
index 1b4050a81f..eb7f409af0 100644
|
||||
--- a/include/internal/provider.h
|
||||
+++ b/include/internal/provider.h
|
||||
@@ -114,6 +114,9 @@ int ossl_provider_init_as_child(OSSL_LIB_CTX *ctx,
|
||||
const OSSL_DISPATCH *in);
|
||||
@@ -114,7 +114,10 @@ int ossl_provider_init_as_child(OSSL_LIB_CTX *ctx,
|
||||
const OSSL_DISPATCH *in);
|
||||
void ossl_provider_deinit_child(OSSL_LIB_CTX *ctx);
|
||||
|
||||
-#ifdef __cplusplus
|
||||
+/* FIPS flag access */
|
||||
+int ossl_get_kernel_fips_flag(void);
|
||||
+
|
||||
# ifdef __cplusplus
|
||||
+# ifdef __cplusplus
|
||||
}
|
||||
# endif
|
||||
#endif
|
||||
|
||||
--
|
||||
2.50.0
|
||||
2.52.0
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -1,7 +1,7 @@
|
||||
From 6a2b78bca595435fcbf72d7b2c8bec004d555016 Mon Sep 17 00:00:00 2001
|
||||
From a925f827ebbd25236c7449e179cfcd716af60379 Mon Sep 17 00:00:00 2001
|
||||
From: rpm-build <rpm-build>
|
||||
Date: Wed, 6 Mar 2024 19:17:15 +0100
|
||||
Subject: [PATCH 10/53] RH: Disable explicit ec curves
|
||||
Subject: [PATCH 10/57] RH: Disable explicit ec curves
|
||||
|
||||
Patch-name: 0012-Disable-explicit-ec.patch
|
||||
Patch-id: 12
|
||||
@ -10,18 +10,18 @@ Patch-status: |
|
||||
# # https://bugzilla.redhat.com/show_bug.cgi?id=2066412
|
||||
From-dist-git-commit: 4334bc837fbc64d14890fdc51679a80770d498ce
|
||||
---
|
||||
crypto/ec/ec_asn1.c | 11 ++++++++++
|
||||
crypto/ec/ec_lib.c | 8 ++++++-
|
||||
test/ectest.c | 22 ++++++++++---------
|
||||
test/endecode_test.c | 20 ++++++++---------
|
||||
.../30-test_evp_data/evppkey_ecdsa.txt | 12 ----------
|
||||
5 files changed, 40 insertions(+), 33 deletions(-)
|
||||
crypto/ec/ec_asn1.c | 11 +++++++
|
||||
crypto/ec/ec_lib.c | 8 ++++-
|
||||
test/ectest.c | 22 +++++++-------
|
||||
test/endecode_test.c | 30 +++++++++----------
|
||||
.../30-test_evp_data/evppkey_ecdsa.txt | 12 --------
|
||||
5 files changed, 45 insertions(+), 38 deletions(-)
|
||||
|
||||
diff --git a/crypto/ec/ec_asn1.c b/crypto/ec/ec_asn1.c
|
||||
index 643d2d8d7b..5895606176 100644
|
||||
index bfd0242c6f..bb462121b5 100644
|
||||
--- a/crypto/ec/ec_asn1.c
|
||||
+++ b/crypto/ec/ec_asn1.c
|
||||
@@ -901,6 +901,12 @@ EC_GROUP *d2i_ECPKParameters(EC_GROUP **a, const unsigned char **in, long len)
|
||||
@@ -889,6 +889,12 @@ EC_GROUP *d2i_ECPKParameters(EC_GROUP **a, const unsigned char **in, long len)
|
||||
if (params->type == ECPKPARAMETERS_TYPE_EXPLICIT)
|
||||
group->decoded_from_explicit_params = 1;
|
||||
|
||||
@ -34,7 +34,7 @@ index 643d2d8d7b..5895606176 100644
|
||||
if (a) {
|
||||
EC_GROUP_free(*a);
|
||||
*a = group;
|
||||
@@ -960,6 +966,11 @@ EC_KEY *d2i_ECPrivateKey(EC_KEY **a, const unsigned char **in, long len)
|
||||
@@ -948,6 +954,11 @@ EC_KEY *d2i_ECPrivateKey(EC_KEY **a, const unsigned char **in, long len)
|
||||
goto err;
|
||||
}
|
||||
|
||||
@ -47,10 +47,10 @@ index 643d2d8d7b..5895606176 100644
|
||||
|
||||
if (priv_key->privateKey) {
|
||||
diff --git a/crypto/ec/ec_lib.c b/crypto/ec/ec_lib.c
|
||||
index b55677fb1f..1df40018ac 100644
|
||||
index 13dcd29b11..de21cb2f10 100644
|
||||
--- a/crypto/ec/ec_lib.c
|
||||
+++ b/crypto/ec/ec_lib.c
|
||||
@@ -1554,7 +1554,7 @@ EC_GROUP *EC_GROUP_new_from_params(const OSSL_PARAM params[],
|
||||
@@ -1551,7 +1551,7 @@ EC_GROUP *EC_GROUP_new_from_params(const OSSL_PARAM params[],
|
||||
int is_prime_field = 1;
|
||||
BN_CTX *bnctx = NULL;
|
||||
const unsigned char *buf = NULL;
|
||||
@ -59,7 +59,7 @@ index b55677fb1f..1df40018ac 100644
|
||||
#endif
|
||||
|
||||
/* This is the simple named group case */
|
||||
@@ -1728,6 +1728,11 @@ EC_GROUP *EC_GROUP_new_from_params(const OSSL_PARAM params[],
|
||||
@@ -1726,6 +1726,11 @@ EC_GROUP *EC_GROUP_new_from_params(const OSSL_PARAM params[],
|
||||
goto err;
|
||||
}
|
||||
if (named_group == group) {
|
||||
@ -71,7 +71,7 @@ index b55677fb1f..1df40018ac 100644
|
||||
/*
|
||||
* If we did not find a named group then the encoding should be explicit
|
||||
* if it was specified
|
||||
@@ -1743,6 +1748,7 @@ EC_GROUP *EC_GROUP_new_from_params(const OSSL_PARAM params[],
|
||||
@@ -1741,6 +1746,7 @@ EC_GROUP *EC_GROUP_new_from_params(const OSSL_PARAM params[],
|
||||
goto err;
|
||||
}
|
||||
EC_GROUP_set_asn1_flag(group, OPENSSL_EC_EXPLICIT_CURVE);
|
||||
@ -80,16 +80,17 @@ index b55677fb1f..1df40018ac 100644
|
||||
EC_GROUP_free(group);
|
||||
group = named_group;
|
||||
diff --git a/test/ectest.c b/test/ectest.c
|
||||
index b852381924..6eac5de4fa 100644
|
||||
index f243f6fb3c..d8246524f3 100644
|
||||
--- a/test/ectest.c
|
||||
+++ b/test/ectest.c
|
||||
@@ -2413,10 +2413,11 @@ static int do_test_custom_explicit_fromdata(EC_GROUP *group, BN_CTX *ctx,
|
||||
@@ -2791,11 +2791,12 @@ static int do_test_custom_explicit_fromdata(EC_GROUP *group, BN_CTX *ctx,
|
||||
if (!TEST_ptr(params = OSSL_PARAM_BLD_to_param(bld))
|
||||
|| !TEST_ptr(pctx = EVP_PKEY_CTX_new_from_name(NULL, "EC", NULL))
|
||||
|| !TEST_int_gt(EVP_PKEY_fromdata_init(pctx), 0)
|
||||
- || !TEST_int_gt(EVP_PKEY_fromdata(pctx, &pkeyparam,
|
||||
+ || !TEST_int_le(EVP_PKEY_fromdata(pctx, &pkeyparam,
|
||||
EVP_PKEY_KEY_PARAMETERS, params), 0))
|
||||
EVP_PKEY_KEY_PARAMETERS, params),
|
||||
0))
|
||||
goto err;
|
||||
-
|
||||
+/* As creating the key should fail, the rest of the test is pointless */
|
||||
@ -97,54 +98,54 @@ index b852381924..6eac5de4fa 100644
|
||||
/*- Check that all the set values are retrievable -*/
|
||||
|
||||
/* There should be no match to a group name since the generator changed */
|
||||
@@ -2545,6 +2546,7 @@ static int do_test_custom_explicit_fromdata(EC_GROUP *group, BN_CTX *ctx,
|
||||
@@ -2924,6 +2925,7 @@ static int do_test_custom_explicit_fromdata(EC_GROUP *group, BN_CTX *ctx,
|
||||
#endif
|
||||
)
|
||||
)
|
||||
goto err;
|
||||
+#endif
|
||||
ret = 1;
|
||||
err:
|
||||
BN_free(order_out);
|
||||
@@ -2826,21 +2828,21 @@ static int custom_params_test(int id)
|
||||
@@ -3217,21 +3219,21 @@ static int custom_params_test(int id)
|
||||
|
||||
/* Compute keyexchange in both directions */
|
||||
if (!TEST_ptr(pctx1 = EVP_PKEY_CTX_new(pkey1, NULL))
|
||||
- || !TEST_int_eq(EVP_PKEY_derive_init(pctx1), 1)
|
||||
- || !TEST_int_eq(EVP_PKEY_derive_set_peer(pctx1, pkey2), 1)
|
||||
+ || !TEST_int_le(EVP_PKEY_derive_init(pctx1), 0)
|
||||
+/* || !TEST_int_eq(EVP_PKEY_derive_set_peer(pctx1, pkey2), 1)
|
||||
|| !TEST_int_eq(EVP_PKEY_derive(pctx1, NULL, &sslen), 1)
|
||||
|| !TEST_int_gt(bsize, sslen)
|
||||
- || !TEST_int_eq(EVP_PKEY_derive(pctx1, buf1, &sslen), 1))
|
||||
+ || !TEST_int_eq(EVP_PKEY_derive(pctx1, buf1, &sslen), 1)*/)
|
||||
- || !TEST_int_eq(EVP_PKEY_derive_init(pctx1), 1)
|
||||
- || !TEST_int_eq(EVP_PKEY_derive_set_peer(pctx1, pkey2), 1)
|
||||
+ || !TEST_int_le(EVP_PKEY_derive_init(pctx1), 0)
|
||||
+/* || !TEST_int_eq(EVP_PKEY_derive_set_peer(pctx1, pkey2), 1)
|
||||
|| !TEST_int_eq(EVP_PKEY_derive(pctx1, NULL, &sslen), 1)
|
||||
|| !TEST_int_gt(bsize, sslen)
|
||||
- || !TEST_int_eq(EVP_PKEY_derive(pctx1, buf1, &sslen), 1))
|
||||
+ || !TEST_int_eq(EVP_PKEY_derive(pctx1, buf1, &sslen), 1)*/)
|
||||
goto err;
|
||||
if (!TEST_ptr(pctx2 = EVP_PKEY_CTX_new(pkey2, NULL))
|
||||
- || !TEST_int_eq(EVP_PKEY_derive_init(pctx2), 1)
|
||||
- || !TEST_int_eq(EVP_PKEY_derive_set_peer(pctx2, pkey1), 1)
|
||||
+ || !TEST_int_le(EVP_PKEY_derive_init(pctx2), 1)
|
||||
+/* || !TEST_int_eq(EVP_PKEY_derive_set_peer(pctx2, pkey1), 1)
|
||||
|| !TEST_int_eq(EVP_PKEY_derive(pctx2, NULL, &t), 1)
|
||||
|| !TEST_int_gt(bsize, t)
|
||||
|| !TEST_int_le(sslen, t)
|
||||
- || !TEST_int_eq(EVP_PKEY_derive(pctx2, buf2, &t), 1))
|
||||
+ || !TEST_int_eq(EVP_PKEY_derive(pctx2, buf2, &t), 1) */)
|
||||
- || !TEST_int_eq(EVP_PKEY_derive_init(pctx2), 1)
|
||||
- || !TEST_int_eq(EVP_PKEY_derive_set_peer(pctx2, pkey1), 1)
|
||||
+ || !TEST_int_le(EVP_PKEY_derive_init(pctx2), 1)
|
||||
+/* || !TEST_int_eq(EVP_PKEY_derive_set_peer(pctx2, pkey1), 1)
|
||||
|| !TEST_int_eq(EVP_PKEY_derive(pctx2, NULL, &t), 1)
|
||||
|| !TEST_int_gt(bsize, t)
|
||||
|| !TEST_int_le(sslen, t)
|
||||
- || !TEST_int_eq(EVP_PKEY_derive(pctx2, buf2, &t), 1))
|
||||
+ || !TEST_int_eq(EVP_PKEY_derive(pctx2, buf2, &t), 1) */)
|
||||
goto err;
|
||||
-
|
||||
+#if 0
|
||||
/* Both sides should expect the same shared secret */
|
||||
if (!TEST_mem_eq(buf1, sslen, buf2, t))
|
||||
goto err;
|
||||
@@ -2893,7 +2895,7 @@ static int custom_params_test(int id)
|
||||
/* compare with previous result */
|
||||
|| !TEST_mem_eq(buf1, t, buf2, sslen))
|
||||
@@ -3286,7 +3288,7 @@ static int custom_params_test(int id)
|
||||
/* compare with previous result */
|
||||
|| !TEST_mem_eq(buf1, t, buf2, sslen))
|
||||
goto err;
|
||||
-
|
||||
+#endif
|
||||
ret = 1;
|
||||
|
||||
err:
|
||||
err:
|
||||
diff --git a/test/endecode_test.c b/test/endecode_test.c
|
||||
index 028deb4ed1..85c84f6592 100644
|
||||
index 3f8ed7f392..c3b55af3e7 100644
|
||||
--- a/test/endecode_test.c
|
||||
+++ b/test/endecode_test.c
|
||||
@@ -63,7 +63,7 @@ static BN_CTX *bnctx = NULL;
|
||||
@ -154,51 +155,59 @@ index 028deb4ed1..85c84f6592 100644
|
||||
-static OSSL_PARAM *ec_explicit_prime_params_explicit = NULL;
|
||||
+/*static OSSL_PARAM *ec_explicit_prime_params_explicit = NULL;*/
|
||||
|
||||
# ifndef OPENSSL_NO_EC2M
|
||||
#ifndef OPENSSL_NO_EC2M
|
||||
static OSSL_PARAM_BLD *bld_tri_nc = NULL;
|
||||
@@ -1027,9 +1027,9 @@ IMPLEMENT_TEST_SUITE_LEGACY(EC, "EC")
|
||||
@@ -1013,10 +1013,10 @@ IMPLEMENT_TEST_SUITE_LEGACY(EC, "EC")
|
||||
DOMAIN_KEYS(ECExplicitPrimeNamedCurve);
|
||||
IMPLEMENT_TEST_SUITE(ECExplicitPrimeNamedCurve, "EC", 1)
|
||||
IMPLEMENT_TEST_SUITE_LEGACY(ECExplicitPrimeNamedCurve, "EC")
|
||||
-DOMAIN_KEYS(ECExplicitPrime2G);
|
||||
-IMPLEMENT_TEST_SUITE(ECExplicitPrime2G, "EC", 0)
|
||||
-IMPLEMENT_TEST_SUITE_LEGACY(ECExplicitPrime2G, "EC")
|
||||
-#ifndef OPENSSL_NO_EC2M
|
||||
+/*DOMAIN_KEYS(ECExplicitPrime2G);*/
|
||||
+/*IMPLEMENT_TEST_SUITE(ECExplicitPrime2G, "EC", 0)*/
|
||||
+/*IMPLEMENT_TEST_SUITE_LEGACY(ECExplicitPrime2G, "EC")*/
|
||||
# ifndef OPENSSL_NO_EC2M
|
||||
+# ifndef OPENSSL_NO_EC2M
|
||||
DOMAIN_KEYS(ECExplicitTriNamedCurve);
|
||||
IMPLEMENT_TEST_SUITE(ECExplicitTriNamedCurve, "EC", 1)
|
||||
@@ -1445,7 +1445,7 @@ int setup_tests(void)
|
||||
IMPLEMENT_TEST_SUITE_LEGACY(ECExplicitTriNamedCurve, "EC")
|
||||
@@ -1458,8 +1458,8 @@ int setup_tests(void)
|
||||
|| !create_ec_explicit_prime_params_namedcurve(bld_prime_nc)
|
||||
|| !create_ec_explicit_prime_params(bld_prime)
|
||||
|| !TEST_ptr(ec_explicit_prime_params_nc = OSSL_PARAM_BLD_to_param(bld_prime_nc))
|
||||
- || !TEST_ptr(ec_explicit_prime_params_explicit = OSSL_PARAM_BLD_to_param(bld_prime))
|
||||
+/* || !TEST_ptr(ec_explicit_prime_params_explicit = OSSL_PARAM_BLD_to_param(bld_prime))*/
|
||||
# ifndef OPENSSL_NO_EC2M
|
||||
-#ifndef OPENSSL_NO_EC2M
|
||||
+/* || !TEST_ptr(ec_explicit_prime_params_explicit = OSSL_PARAM_BLD_to_param(bld_prime))*/
|
||||
+# ifndef OPENSSL_NO_EC2M
|
||||
|| !TEST_ptr(bld_tri_nc = OSSL_PARAM_BLD_new())
|
||||
|| !TEST_ptr(bld_tri = OSSL_PARAM_BLD_new())
|
||||
@@ -1473,7 +1473,7 @@ int setup_tests(void)
|
||||
|| !create_ec_explicit_trinomial_params_namedcurve(bld_tri_nc)
|
||||
@@ -1486,8 +1486,8 @@ int setup_tests(void)
|
||||
TEST_info("Generating EC keys...");
|
||||
MAKE_DOMAIN_KEYS(EC, "EC", EC_params);
|
||||
MAKE_DOMAIN_KEYS(ECExplicitPrimeNamedCurve, "EC", ec_explicit_prime_params_nc);
|
||||
- MAKE_DOMAIN_KEYS(ECExplicitPrime2G, "EC", ec_explicit_prime_params_explicit);
|
||||
+/* MAKE_DOMAIN_KEYS(ECExplicitPrime2G, "EC", ec_explicit_prime_params_explicit);*/
|
||||
# ifndef OPENSSL_NO_EC2M
|
||||
-#ifndef OPENSSL_NO_EC2M
|
||||
+/* MAKE_DOMAIN_KEYS(ECExplicitPrime2G, "EC", ec_explicit_prime_params_explicit);*/
|
||||
+# ifndef OPENSSL_NO_EC2M
|
||||
MAKE_DOMAIN_KEYS(ECExplicitTriNamedCurve, "EC", ec_explicit_tri_params_nc);
|
||||
MAKE_DOMAIN_KEYS(ECExplicitTri2G, "EC", ec_explicit_tri_params_explicit);
|
||||
@@ -1553,8 +1553,8 @@ int setup_tests(void)
|
||||
#endif
|
||||
@@ -1566,9 +1566,9 @@ int setup_tests(void)
|
||||
ADD_TEST_SUITE_LEGACY(EC);
|
||||
ADD_TEST_SUITE(ECExplicitPrimeNamedCurve);
|
||||
ADD_TEST_SUITE_LEGACY(ECExplicitPrimeNamedCurve);
|
||||
- ADD_TEST_SUITE(ECExplicitPrime2G);
|
||||
- ADD_TEST_SUITE_LEGACY(ECExplicitPrime2G);
|
||||
+/* ADD_TEST_SUITE(ECExplicitPrime2G);*/
|
||||
+/* ADD_TEST_SUITE_LEGACY(ECExplicitPrime2G);*/
|
||||
# ifndef OPENSSL_NO_EC2M
|
||||
-#ifndef OPENSSL_NO_EC2M
|
||||
+/* ADD_TEST_SUITE(ECExplicitPrime2G);*/
|
||||
+/* ADD_TEST_SUITE_LEGACY(ECExplicitPrime2G);*/
|
||||
+# ifndef OPENSSL_NO_EC2M
|
||||
ADD_TEST_SUITE(ECExplicitTriNamedCurve);
|
||||
ADD_TEST_SUITE_LEGACY(ECExplicitTriNamedCurve);
|
||||
@@ -1631,7 +1631,7 @@ void cleanup_tests(void)
|
||||
ADD_TEST_SUITE(ECExplicitTri2G);
|
||||
@@ -1644,7 +1644,7 @@ void cleanup_tests(void)
|
||||
{
|
||||
#ifndef OPENSSL_NO_EC
|
||||
OSSL_PARAM_free(ec_explicit_prime_params_nc);
|
||||
@ -206,18 +215,20 @@ index 028deb4ed1..85c84f6592 100644
|
||||
+/* OSSL_PARAM_free(ec_explicit_prime_params_explicit);*/
|
||||
OSSL_PARAM_BLD_free(bld_prime_nc);
|
||||
OSSL_PARAM_BLD_free(bld_prime);
|
||||
# ifndef OPENSSL_NO_EC2M
|
||||
@@ -1653,7 +1653,7 @@ void cleanup_tests(void)
|
||||
#ifndef OPENSSL_NO_EC2M
|
||||
@@ -1666,8 +1666,8 @@ void cleanup_tests(void)
|
||||
#ifndef OPENSSL_NO_EC
|
||||
FREE_DOMAIN_KEYS(EC);
|
||||
FREE_DOMAIN_KEYS(ECExplicitPrimeNamedCurve);
|
||||
- FREE_DOMAIN_KEYS(ECExplicitPrime2G);
|
||||
+/* FREE_DOMAIN_KEYS(ECExplicitPrime2G);*/
|
||||
# ifndef OPENSSL_NO_EC2M
|
||||
-#ifndef OPENSSL_NO_EC2M
|
||||
+/* FREE_DOMAIN_KEYS(ECExplicitPrime2G);*/
|
||||
+# ifndef OPENSSL_NO_EC2M
|
||||
FREE_DOMAIN_KEYS(ECExplicitTriNamedCurve);
|
||||
FREE_DOMAIN_KEYS(ECExplicitTri2G);
|
||||
#endif
|
||||
diff --git a/test/recipes/30-test_evp_data/evppkey_ecdsa.txt b/test/recipes/30-test_evp_data/evppkey_ecdsa.txt
|
||||
index 54b143bead..06ec905be0 100644
|
||||
index 07dc4b4298..4c47fa68c2 100644
|
||||
--- a/test/recipes/30-test_evp_data/evppkey_ecdsa.txt
|
||||
+++ b/test/recipes/30-test_evp_data/evppkey_ecdsa.txt
|
||||
@@ -133,18 +133,6 @@ AAAA//////////+85vqtpxeehPO5ysL8YyVRAgEBBG0wawIBAQQgiUTxtr5vLVjj
|
||||
@ -240,5 +251,5 @@ index 54b143bead..06ec905be0 100644
|
||||
-----BEGIN PRIVATE KEY-----
|
||||
MGMCAQAwEAYHKoZIzj0CAQYFK4EEAA8ETDBKAgEBBBUDnQW0mLiHVha/jqFznX/K
|
||||
--
|
||||
2.50.0
|
||||
2.52.0
|
||||
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
From 60e56b8d5d031a7169aa4ad07b13bca15faf345b Mon Sep 17 00:00:00 2001
|
||||
From 2afc42b7faa263387234aa747d676efd140a7c8a Mon Sep 17 00:00:00 2001
|
||||
From: rpm-build <rpm-build>
|
||||
Date: Wed, 6 Mar 2024 19:17:15 +0100
|
||||
Subject: [PATCH 11/53] RH: skipped tests EC curves
|
||||
Subject: [PATCH 11/57] RH: skipped tests EC curves
|
||||
|
||||
Patch-name: 0013-skipped-tests-EC-curves.patch
|
||||
Patch-id: 13
|
||||
@ -16,10 +16,10 @@ From-dist-git-commit: 4334bc837fbc64d14890fdc51679a80770d498ce
|
||||
4 files changed, 3 insertions(+), 15 deletions(-)
|
||||
|
||||
diff --git a/test/recipes/15-test_ec.t b/test/recipes/15-test_ec.t
|
||||
index c953fad9f1..906769a12e 100644
|
||||
index 9bf946e81b..d6521876e5 100644
|
||||
--- a/test/recipes/15-test_ec.t
|
||||
+++ b/test/recipes/15-test_ec.t
|
||||
@@ -94,7 +94,7 @@ SKIP: {
|
||||
@@ -104,7 +104,7 @@ SKIP: {
|
||||
|
||||
subtest 'Check loading of fips and non-fips keys' => sub {
|
||||
plan skip_all => "FIPS is disabled"
|
||||
@ -78,5 +78,5 @@ index f722800e27..26a01786bb 100644
|
||||
my @basic_cmd = ("cmp_vfy_test",
|
||||
data_file("server.crt"), data_file("client.crt"),
|
||||
--
|
||||
2.50.0
|
||||
2.52.0
|
||||
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
From e15f0731f753c279a555c6d5d588dbac8dd3f1e4 Mon Sep 17 00:00:00 2001
|
||||
From 48b4a63db033730ef98eb9968e45ba66688598c9 Mon Sep 17 00:00:00 2001
|
||||
From: Dmitry Belyavskiy <dbelyavs@redhat.com>
|
||||
Date: Thu, 7 Mar 2024 17:37:09 +0100
|
||||
Subject: [PATCH 12/53] RH: skip quic pairwise
|
||||
Subject: [PATCH 12/57] RH: skip quic pairwise
|
||||
|
||||
Patch-name: 0115-skip-quic-pairwise.patch
|
||||
Patch-id: 115
|
||||
@ -14,10 +14,10 @@ Patch-status: |
|
||||
3 files changed, 12 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/test/quicapitest.c b/test/quicapitest.c
|
||||
index b98a940553..3d946ae93c 100644
|
||||
index 6b9ee8e69a..96cd735819 100644
|
||||
--- a/test/quicapitest.c
|
||||
+++ b/test/quicapitest.c
|
||||
@@ -2937,7 +2937,9 @@ int setup_tests(void)
|
||||
@@ -3015,7 +3015,9 @@ int setup_tests(void)
|
||||
ADD_TEST(test_cipher_find);
|
||||
ADD_TEST(test_version);
|
||||
#if defined(DO_SSL_TRACE_TEST)
|
||||
@ -29,10 +29,10 @@ index b98a940553..3d946ae93c 100644
|
||||
ADD_TEST(test_quic_forbidden_apis_ctx);
|
||||
ADD_TEST(test_quic_forbidden_apis);
|
||||
diff --git a/test/recipes/01-test_symbol_presence.t b/test/recipes/01-test_symbol_presence.t
|
||||
index 222b1886ae..7e2f65cccb 100644
|
||||
index 6c8de64b0b..79a5584099 100644
|
||||
--- a/test/recipes/01-test_symbol_presence.t
|
||||
+++ b/test/recipes/01-test_symbol_presence.t
|
||||
@@ -185,6 +185,7 @@ foreach (sort keys %stlibname) {
|
||||
@@ -187,6 +187,7 @@ foreach (sort keys %stlibname) {
|
||||
}
|
||||
}
|
||||
my @duplicates = sort grep { $symbols{$_} > 1 } keys %symbols;
|
||||
@ -82,5 +82,5 @@ index eaf0dbbb42..21864ad319 100644
|
||||
"-pairwise", "dsa", "-dsaparam", data_file("dsaparam.pem")])),
|
||||
"fips provider dsa keygen pairwise failure test");
|
||||
--
|
||||
2.50.0
|
||||
2.52.0
|
||||
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
From 293b5d1bca91e400a9042cc181d17b7facbed71c Mon Sep 17 00:00:00 2001
|
||||
From 9a41889c1a026e203f936e0c3b511e6d4ddc4cf2 Mon Sep 17 00:00:00 2001
|
||||
From: rpm-build <rpm-build>
|
||||
Date: Wed, 6 Mar 2024 19:17:17 +0100
|
||||
Subject: [PATCH 13/53] RH: version aliasing
|
||||
Subject: [PATCH 13/57] RH: version aliasing
|
||||
|
||||
Patch-name: 0116-version-aliasing.patch
|
||||
Patch-id: 116
|
||||
@ -17,7 +17,7 @@ From-dist-git-commit: 4334bc837fbc64d14890fdc51679a80770d498ce
|
||||
4 files changed, 15 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/crypto/evp/digest.c b/crypto/evp/digest.c
|
||||
index 6fc201bcfe..3c80b9dfe1 100644
|
||||
index 4b1c95c4ab..8a6e87c11a 100644
|
||||
--- a/crypto/evp/digest.c
|
||||
+++ b/crypto/evp/digest.c
|
||||
@@ -572,7 +572,12 @@ int EVP_DigestSqueeze(EVP_MD_CTX *ctx, unsigned char *md, size_t size)
|
||||
@ -35,10 +35,10 @@ index 6fc201bcfe..3c80b9dfe1 100644
|
||||
EVP_MD_CTX *out = EVP_MD_CTX_new();
|
||||
|
||||
diff --git a/crypto/evp/evp_enc.c b/crypto/evp/evp_enc.c
|
||||
index eee00a0780..7c51786515 100644
|
||||
index 5584e06d7e..d5ff34a4e2 100644
|
||||
--- a/crypto/evp/evp_enc.c
|
||||
+++ b/crypto/evp/evp_enc.c
|
||||
@@ -1762,7 +1762,12 @@ int EVP_CIPHER_CTX_rand_key(EVP_CIPHER_CTX *ctx, unsigned char *key)
|
||||
@@ -1756,7 +1756,12 @@ int EVP_CIPHER_CTX_rand_key(EVP_CIPHER_CTX *ctx, unsigned char *key)
|
||||
#endif /* FIPS_MODULE */
|
||||
}
|
||||
|
||||
@ -53,10 +53,10 @@ index eee00a0780..7c51786515 100644
|
||||
EVP_CIPHER_CTX *out = EVP_CIPHER_CTX_new();
|
||||
|
||||
diff --git a/test/recipes/01-test_symbol_presence.t b/test/recipes/01-test_symbol_presence.t
|
||||
index 7e2f65cccb..cc947d4821 100644
|
||||
index 79a5584099..a70ebef431 100644
|
||||
--- a/test/recipes/01-test_symbol_presence.t
|
||||
+++ b/test/recipes/01-test_symbol_presence.t
|
||||
@@ -131,6 +131,7 @@ foreach (sort keys %stlibname) {
|
||||
@@ -133,6 +133,7 @@ foreach (sort keys %stlibname) {
|
||||
s| .*||;
|
||||
# Drop OpenSSL dynamic version information if there is any
|
||||
s|\@\@.+$||;
|
||||
@ -79,5 +79,5 @@ index ceb4948839..eab3987a6b 100644
|
||||
BN_signed_bn2bin 5568 3_2_0 EXIST::FUNCTION:
|
||||
BN_signed_lebin2bn 5569 3_2_0 EXIST::FUNCTION:
|
||||
--
|
||||
2.50.0
|
||||
2.52.0
|
||||
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
From f267ed139ac29efc6d464827024eafb805f06ea2 Mon Sep 17 00:00:00 2001
|
||||
From 51d485de6b9e2a714610daa886bde82b45016c0a Mon Sep 17 00:00:00 2001
|
||||
From: Simo Sorce <simo@redhat.com>
|
||||
Date: Thu, 13 Feb 2025 16:09:09 -0500
|
||||
Subject: [PATCH 14/53] RH: Export two symbols for OPENSSL_str[n]casecmp
|
||||
Subject: [PATCH 14/57] RH: Export two symbols for OPENSSL_str[n]casecmp
|
||||
|
||||
We accidentally exported the symbols with the incorrect verison number
|
||||
in an early version of RHEL-9 so we need to keep the wrong symbols for
|
||||
@ -17,7 +17,7 @@ with upstream.
|
||||
mode change 100644 => 100755 test/recipes/01-test_symbol_presence.t
|
||||
|
||||
diff --git a/crypto/evp/digest.c b/crypto/evp/digest.c
|
||||
index 3c80b9dfe1..8ee9db73dd 100644
|
||||
index 8a6e87c11a..638dac8844 100644
|
||||
--- a/crypto/evp/digest.c
|
||||
+++ b/crypto/evp/digest.c
|
||||
@@ -573,7 +573,7 @@ int EVP_DigestSqueeze(EVP_MD_CTX *ctx, unsigned char *md, size_t size)
|
||||
@ -30,10 +30,10 @@ index 3c80b9dfe1..8ee9db73dd 100644
|
||||
symver ("EVP_MD_CTX_dup@OPENSSL_3.2.0")))
|
||||
#endif
|
||||
diff --git a/crypto/evp/evp_enc.c b/crypto/evp/evp_enc.c
|
||||
index 7c51786515..619cf4f385 100644
|
||||
index d5ff34a4e2..b4edd825cd 100644
|
||||
--- a/crypto/evp/evp_enc.c
|
||||
+++ b/crypto/evp/evp_enc.c
|
||||
@@ -1763,7 +1763,7 @@ int EVP_CIPHER_CTX_rand_key(EVP_CIPHER_CTX *ctx, unsigned char *key)
|
||||
@@ -1757,7 +1757,7 @@ int EVP_CIPHER_CTX_rand_key(EVP_CIPHER_CTX *ctx, unsigned char *key)
|
||||
}
|
||||
|
||||
EVP_CIPHER_CTX
|
||||
@ -43,10 +43,10 @@ index 7c51786515..619cf4f385 100644
|
||||
symver ("EVP_CIPHER_CTX_dup@OPENSSL_3.2.0")))
|
||||
#endif
|
||||
diff --git a/crypto/o_str.c b/crypto/o_str.c
|
||||
index 93af73561f..86442a939e 100644
|
||||
index 35540630be..fde43421ea 100644
|
||||
--- a/crypto/o_str.c
|
||||
+++ b/crypto/o_str.c
|
||||
@@ -403,7 +403,12 @@ int openssl_strerror_r(int errnum, char *buf, size_t buflen)
|
||||
@@ -406,7 +406,12 @@ int openssl_strerror_r(int errnum, char *buf, size_t buflen)
|
||||
#endif
|
||||
}
|
||||
|
||||
@ -60,7 +60,7 @@ index 93af73561f..86442a939e 100644
|
||||
{
|
||||
int t;
|
||||
|
||||
@@ -413,7 +418,12 @@ int OPENSSL_strcasecmp(const char *s1, const char *s2)
|
||||
@@ -416,7 +421,12 @@ int OPENSSL_strcasecmp(const char *s1, const char *s2)
|
||||
return t;
|
||||
}
|
||||
|
||||
@ -77,10 +77,10 @@ index 93af73561f..86442a939e 100644
|
||||
diff --git a/test/recipes/01-test_symbol_presence.t b/test/recipes/01-test_symbol_presence.t
|
||||
old mode 100644
|
||||
new mode 100755
|
||||
index cc947d4821..de2dcd90c2
|
||||
index a70ebef431..a095239652
|
||||
--- a/test/recipes/01-test_symbol_presence.t
|
||||
+++ b/test/recipes/01-test_symbol_presence.t
|
||||
@@ -186,7 +186,7 @@ foreach (sort keys %stlibname) {
|
||||
@@ -188,7 +188,7 @@ foreach (sort keys %stlibname) {
|
||||
}
|
||||
}
|
||||
my @duplicates = sort grep { $symbols{$_} > 1 } keys %symbols;
|
||||
@ -104,5 +104,5 @@ index eab3987a6b..d377d542db 100644
|
||||
RAND_set0_public 5559 3_1_0 EXIST::FUNCTION:
|
||||
RAND_set0_private 5560 3_1_0 EXIST::FUNCTION:
|
||||
--
|
||||
2.50.0
|
||||
2.52.0
|
||||
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
From 4badd5b30b1caec6c4fd3875cd4c5313ba6095b1 Mon Sep 17 00:00:00 2001
|
||||
From a6d43e2d94ba1f8ff57dfb403d9d70d9f6f0f433 Mon Sep 17 00:00:00 2001
|
||||
From: Simo Sorce <simo@redhat.com>
|
||||
Date: Thu, 13 Feb 2025 18:11:19 -0500
|
||||
Subject: [PATCH 15/53] RH: TMP KTLS test skip
|
||||
Subject: [PATCH 15/57] RH: TMP KTLS test skip
|
||||
|
||||
From-dist-git-commit: 83382cc2a09dfcc55d5740fd08fd95c2333a56c9
|
||||
---
|
||||
@ -9,10 +9,10 @@ From-dist-git-commit: 83382cc2a09dfcc55d5740fd08fd95c2333a56c9
|
||||
1 file changed, 3 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/test/sslapitest.c b/test/sslapitest.c
|
||||
index b83dd6c552..250a439137 100644
|
||||
index 993d9e6018..a94061d974 100644
|
||||
--- a/test/sslapitest.c
|
||||
+++ b/test/sslapitest.c
|
||||
@@ -1023,9 +1023,10 @@ static int execute_test_large_message(const SSL_METHOD *smeth,
|
||||
@@ -1029,9 +1029,10 @@ end:
|
||||
/* sock must be connected */
|
||||
static int ktls_chk_platform(int sock)
|
||||
{
|
||||
@ -26,5 +26,5 @@ index b83dd6c552..250a439137 100644
|
||||
|
||||
static int ping_pong_query(SSL *clientssl, SSL *serverssl)
|
||||
--
|
||||
2.50.0
|
||||
2.52.0
|
||||
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
From 3e6196d5791ce3443f54a379a5fd679c1066c76a Mon Sep 17 00:00:00 2001
|
||||
From 1efe3493167934ee77a52eba9a6b2a492885a955 Mon Sep 17 00:00:00 2001
|
||||
From: Dmitry Belyavskiy <dbelyavs@redhat.com>
|
||||
Date: Mon, 21 Aug 2023 13:07:07 +0200
|
||||
Subject: [PATCH 16/53] RH: Allow disabling of SHA1 signatures
|
||||
Subject: [PATCH 16/57] RH: Allow disabling of SHA1 signatures
|
||||
|
||||
Patch-name: 0049-Allow-disabling-of-SHA1-signatures.patch
|
||||
Patch-id: 49
|
||||
@ -15,7 +15,7 @@ From-dist-git-commit: 9409bc7044cf4b5773639cce20f51399888c45fd
|
||||
crypto/evp/pmeth_lib.c | 15 ++++
|
||||
doc/man5/config.pod | 13 ++++
|
||||
include/crypto/context.h | 8 +++
|
||||
include/internal/cryptlib.h | 3 +-
|
||||
include/internal/cryptlib.h | 33 ++++-----
|
||||
include/internal/sslconf.h | 4 ++
|
||||
providers/common/include/prov/securitycheck.h | 2 +
|
||||
providers/common/securitycheck.c | 14 ++++
|
||||
@ -25,10 +25,10 @@ From-dist-git-commit: 9409bc7044cf4b5773639cce20f51399888c45fd
|
||||
providers/implementations/signature/rsa_sig.c | 14 +++-
|
||||
ssl/t1_lib.c | 8 +++
|
||||
util/libcrypto.num | 2 +
|
||||
16 files changed, 183 insertions(+), 7 deletions(-)
|
||||
16 files changed, 198 insertions(+), 22 deletions(-)
|
||||
|
||||
diff --git a/crypto/context.c b/crypto/context.c
|
||||
index 614c8a2c88..323615e300 100644
|
||||
index 62e60f3620..4db9d24b78 100644
|
||||
--- a/crypto/context.c
|
||||
+++ b/crypto/context.c
|
||||
@@ -85,6 +85,8 @@ struct ossl_lib_ctx_st {
|
||||
@ -74,7 +74,7 @@ index 614c8a2c88..323615e300 100644
|
||||
/* Low priority. */
|
||||
#ifndef FIPS_MODULE
|
||||
ctx->child_provider = ossl_child_prov_ctx_new(ctx);
|
||||
@@ -382,6 +404,11 @@ static void context_deinit_objs(OSSL_LIB_CTX *ctx)
|
||||
@@ -381,6 +403,11 @@ static void context_deinit_objs(OSSL_LIB_CTX *ctx)
|
||||
}
|
||||
#endif
|
||||
|
||||
@ -86,7 +86,7 @@ index 614c8a2c88..323615e300 100644
|
||||
/* Low priority. */
|
||||
#ifndef FIPS_MODULE
|
||||
if (ctx->child_provider != NULL) {
|
||||
@@ -660,6 +687,9 @@ void *ossl_lib_ctx_get_data(OSSL_LIB_CTX *ctx, int index)
|
||||
@@ -658,6 +685,9 @@ void *ossl_lib_ctx_get_data(OSSL_LIB_CTX *ctx, int index)
|
||||
case OSSL_LIB_CTX_COMP_METHODS:
|
||||
return (void *)&ctx->comp_methods;
|
||||
|
||||
@ -96,7 +96,7 @@ index 614c8a2c88..323615e300 100644
|
||||
default:
|
||||
return NULL;
|
||||
}
|
||||
@@ -714,3 +744,43 @@ void OSSL_LIB_CTX_set_conf_diagnostics(OSSL_LIB_CTX *libctx, int value)
|
||||
@@ -712,3 +742,43 @@ void OSSL_LIB_CTX_set_conf_diagnostics(OSSL_LIB_CTX *libctx, int value)
|
||||
return;
|
||||
libctx->conf_diagnostics = value;
|
||||
}
|
||||
@ -141,7 +141,7 @@ index 614c8a2c88..323615e300 100644
|
||||
+ return 1;
|
||||
+}
|
||||
diff --git a/crypto/evp/evp_cnf.c b/crypto/evp/evp_cnf.c
|
||||
index 0e7fe64cf9..b9d3b6d226 100644
|
||||
index 184bab933c..2ae7ccea15 100644
|
||||
--- a/crypto/evp/evp_cnf.c
|
||||
+++ b/crypto/evp/evp_cnf.c
|
||||
@@ -10,6 +10,7 @@
|
||||
@ -170,20 +170,20 @@ index 0e7fe64cf9..b9d3b6d226 100644
|
||||
+ }
|
||||
} else {
|
||||
ERR_raise_data(ERR_LIB_EVP, EVP_R_UNKNOWN_OPTION,
|
||||
"name=%s, value=%s", oval->name, oval->value);
|
||||
"name=%s, value=%s", oval->name, oval->value);
|
||||
diff --git a/crypto/evp/m_sigver.c b/crypto/evp/m_sigver.c
|
||||
index d5df497da7..53044238a1 100644
|
||||
index 0a433adbe4..6c9f71569b 100644
|
||||
--- a/crypto/evp/m_sigver.c
|
||||
+++ b/crypto/evp/m_sigver.c
|
||||
@@ -15,6 +15,7 @@
|
||||
#include "internal/provider.h"
|
||||
#include "internal/numbers.h" /* includes SIZE_MAX */
|
||||
#include "internal/numbers.h" /* includes SIZE_MAX */
|
||||
#include "evp_local.h"
|
||||
+#include "internal/sslconf.h"
|
||||
|
||||
static int update(EVP_MD_CTX *ctx, const void *data, size_t datalen)
|
||||
{
|
||||
@@ -253,6 +254,19 @@ static int do_sigver_init(EVP_MD_CTX *ctx, EVP_PKEY_CTX **pctx,
|
||||
@@ -251,6 +252,19 @@ reinitialize:
|
||||
}
|
||||
|
||||
desc = signature->description != NULL ? signature->description : "";
|
||||
@ -204,7 +204,7 @@ index d5df497da7..53044238a1 100644
|
||||
if (signature->digest_verify_init == NULL) {
|
||||
ERR_raise_data(ERR_LIB_EVP, EVP_R_PROVIDER_SIGNATURE_NOT_SUPPORTED,
|
||||
diff --git a/crypto/evp/pmeth_lib.c b/crypto/evp/pmeth_lib.c
|
||||
index 08c0d6a7b2..b936ad4447 100644
|
||||
index 2a0fc3ef0b..20e80a447d 100644
|
||||
--- a/crypto/evp/pmeth_lib.c
|
||||
+++ b/crypto/evp/pmeth_lib.c
|
||||
@@ -33,6 +33,7 @@
|
||||
@ -215,7 +215,7 @@ index 08c0d6a7b2..b936ad4447 100644
|
||||
#include "evp_local.h"
|
||||
|
||||
#ifndef FIPS_MODULE
|
||||
@@ -963,6 +964,20 @@ static int evp_pkey_ctx_set_md(EVP_PKEY_CTX *ctx, const EVP_MD *md,
|
||||
@@ -952,6 +953,20 @@ static int evp_pkey_ctx_set_md(EVP_PKEY_CTX *ctx, const EVP_MD *md,
|
||||
return -2;
|
||||
}
|
||||
|
||||
@ -277,26 +277,57 @@ index 1c181933e0..35bdfdb52d 100644
|
||||
+#endif
|
||||
+
|
||||
diff --git a/include/internal/cryptlib.h b/include/internal/cryptlib.h
|
||||
index da442f8a86..44a5e8a99a 100644
|
||||
index 50aec7e7f4..9678e150e0 100644
|
||||
--- a/include/internal/cryptlib.h
|
||||
+++ b/include/internal/cryptlib.h
|
||||
@@ -120,7 +120,8 @@ typedef struct ossl_ex_data_global_st {
|
||||
# define OSSL_LIB_CTX_DECODER_CACHE_INDEX 20
|
||||
# define OSSL_LIB_CTX_COMP_METHODS 21
|
||||
# define OSSL_LIB_CTX_INDICATOR_CB_INDEX 22
|
||||
-# define OSSL_LIB_CTX_MAX_INDEXES 22
|
||||
+# define OSSL_LIB_CTX_LEGACY_DIGEST_SIGNATURES_INDEX 23
|
||||
+# define OSSL_LIB_CTX_MAX_INDEXES 23
|
||||
@@ -102,23 +102,24 @@ typedef struct ossl_ex_data_global_st {
|
||||
#define OSSL_LIB_CTX_DRBG_NONCE_INDEX 6
|
||||
/* slot 7 unused, was CRNG test data and can be reused */
|
||||
#ifdef FIPS_MODULE
|
||||
-#define OSSL_LIB_CTX_THREAD_EVENT_HANDLER_INDEX 8
|
||||
+#define OSSL_LIB_CTX_THREAD_EVENT_HANDLER_INDEX 8
|
||||
#endif
|
||||
-#define OSSL_LIB_CTX_FIPS_PROV_INDEX 9
|
||||
-#define OSSL_LIB_CTX_ENCODER_STORE_INDEX 10
|
||||
-#define OSSL_LIB_CTX_DECODER_STORE_INDEX 11
|
||||
-#define OSSL_LIB_CTX_SELF_TEST_CB_INDEX 12
|
||||
-#define OSSL_LIB_CTX_BIO_PROV_INDEX 13
|
||||
-#define OSSL_LIB_CTX_GLOBAL_PROPERTIES 14
|
||||
-#define OSSL_LIB_CTX_STORE_LOADER_STORE_INDEX 15
|
||||
-#define OSSL_LIB_CTX_PROVIDER_CONF_INDEX 16
|
||||
-#define OSSL_LIB_CTX_BIO_CORE_INDEX 17
|
||||
-#define OSSL_LIB_CTX_CHILD_PROVIDER_INDEX 18
|
||||
-#define OSSL_LIB_CTX_THREAD_INDEX 19
|
||||
-#define OSSL_LIB_CTX_DECODER_CACHE_INDEX 20
|
||||
-#define OSSL_LIB_CTX_COMP_METHODS 21
|
||||
-#define OSSL_LIB_CTX_INDICATOR_CB_INDEX 22
|
||||
-#define OSSL_LIB_CTX_MAX_INDEXES 22
|
||||
+#define OSSL_LIB_CTX_FIPS_PROV_INDEX 9
|
||||
+#define OSSL_LIB_CTX_ENCODER_STORE_INDEX 10
|
||||
+#define OSSL_LIB_CTX_DECODER_STORE_INDEX 11
|
||||
+#define OSSL_LIB_CTX_SELF_TEST_CB_INDEX 12
|
||||
+#define OSSL_LIB_CTX_BIO_PROV_INDEX 13
|
||||
+#define OSSL_LIB_CTX_GLOBAL_PROPERTIES 14
|
||||
+#define OSSL_LIB_CTX_STORE_LOADER_STORE_INDEX 15
|
||||
+#define OSSL_LIB_CTX_PROVIDER_CONF_INDEX 16
|
||||
+#define OSSL_LIB_CTX_BIO_CORE_INDEX 17
|
||||
+#define OSSL_LIB_CTX_CHILD_PROVIDER_INDEX 18
|
||||
+#define OSSL_LIB_CTX_THREAD_INDEX 19
|
||||
+#define OSSL_LIB_CTX_DECODER_CACHE_INDEX 20
|
||||
+#define OSSL_LIB_CTX_COMP_METHODS 21
|
||||
+#define OSSL_LIB_CTX_INDICATOR_CB_INDEX 22
|
||||
+#define OSSL_LIB_CTX_LEGACY_DIGEST_SIGNATURES_INDEX 23
|
||||
+#define OSSL_LIB_CTX_MAX_INDEXES 23
|
||||
|
||||
OSSL_LIB_CTX *ossl_lib_ctx_get_concrete(OSSL_LIB_CTX *ctx);
|
||||
int ossl_lib_ctx_is_default(OSSL_LIB_CTX *ctx);
|
||||
diff --git a/include/internal/sslconf.h b/include/internal/sslconf.h
|
||||
index fd7f7e3331..05464b0655 100644
|
||||
index a7cec01bf6..076e139de4 100644
|
||||
--- a/include/internal/sslconf.h
|
||||
+++ b/include/internal/sslconf.h
|
||||
@@ -18,4 +18,8 @@ int conf_ssl_name_find(const char *name, size_t *idx);
|
||||
void conf_ssl_get_cmd(const SSL_CONF_CMD *cmd, size_t idx, char **cmdstr,
|
||||
char **arg);
|
||||
char **arg);
|
||||
|
||||
+/* Methods to support disabling all signatures with legacy digests */
|
||||
+int ossl_ctx_legacy_digest_signatures_allowed(OSSL_LIB_CTX *libctx, int loadconfig);
|
||||
@ -314,7 +345,7 @@ index 29a2b7fbf8..a48cbb03d2 100644
|
||||
+
|
||||
+int rh_digest_signatures_allowed(OSSL_LIB_CTX *libctx, int mdnid);
|
||||
diff --git a/providers/common/securitycheck.c b/providers/common/securitycheck.c
|
||||
index 8ef8dc2a81..79a9c48ce2 100644
|
||||
index e883ff4865..6985be0400 100644
|
||||
--- a/providers/common/securitycheck.c
|
||||
+++ b/providers/common/securitycheck.c
|
||||
@@ -19,6 +19,7 @@
|
||||
@ -325,7 +356,7 @@ index 8ef8dc2a81..79a9c48ce2 100644
|
||||
|
||||
#define OSSL_FIPS_MIN_SECURITY_STRENGTH_BITS 112
|
||||
|
||||
@@ -219,3 +220,16 @@ int ossl_dh_check_key(const DH *dh)
|
||||
@@ -220,3 +221,16 @@ int ossl_dh_check_key(const DH *dh)
|
||||
return (L == 2048 && (N == 224 || N == 256));
|
||||
}
|
||||
#endif /* OPENSSL_NO_DH */
|
||||
@ -343,7 +374,7 @@ index 8ef8dc2a81..79a9c48ce2 100644
|
||||
+ return mdnid;
|
||||
+}
|
||||
diff --git a/providers/common/securitycheck_default.c b/providers/common/securitycheck_default.c
|
||||
index dd71fd91eb..9019fd2a80 100644
|
||||
index 42823ffe14..4b80f14b40 100644
|
||||
--- a/providers/common/securitycheck_default.c
|
||||
+++ b/providers/common/securitycheck_default.c
|
||||
@@ -15,6 +15,7 @@
|
||||
@ -355,7 +386,7 @@ index dd71fd91eb..9019fd2a80 100644
|
||||
/* Disable the security checks in the default provider */
|
||||
int ossl_fips_config_securitycheck_enabled(OSSL_LIB_CTX *libctx)
|
||||
diff --git a/providers/implementations/signature/dsa_sig.c b/providers/implementations/signature/dsa_sig.c
|
||||
index c5adbf8002..52ed52482d 100644
|
||||
index 51dcc3f230..31a89133a3 100644
|
||||
--- a/providers/implementations/signature/dsa_sig.c
|
||||
+++ b/providers/implementations/signature/dsa_sig.c
|
||||
@@ -163,6 +163,7 @@ static int dsa_setup_md(PROV_DSA_CTX *ctx,
|
||||
@ -367,7 +398,7 @@ index c5adbf8002..52ed52482d 100644
|
||||
if (md == NULL) {
|
||||
ERR_raise_data(ERR_LIB_PROV, PROV_R_INVALID_DIGEST,
|
||||
diff --git a/providers/implementations/signature/ecdsa_sig.c b/providers/implementations/signature/ecdsa_sig.c
|
||||
index 4018a772ff..04d4009ab5 100644
|
||||
index 0c04fc4ec6..2a4faf4a71 100644
|
||||
--- a/providers/implementations/signature/ecdsa_sig.c
|
||||
+++ b/providers/implementations/signature/ecdsa_sig.c
|
||||
@@ -197,13 +197,15 @@ static int ecdsa_setup_md(PROV_ECDSA_CTX *ctx,
|
||||
@ -381,7 +412,7 @@ index 4018a772ff..04d4009ab5 100644
|
||||
+ /* KECCAK-256 is explicitly allowed for ECDSA despite it doesn't have a NID*/
|
||||
+ if (md_nid <= 0 && !(EVP_MD_is_a(md, "KECCAK-256"))) {
|
||||
ERR_raise_data(ERR_LIB_PROV, PROV_R_DIGEST_NOT_ALLOWED,
|
||||
"digest=%s", mdname);
|
||||
"digest=%s", mdname);
|
||||
goto err;
|
||||
}
|
||||
-#endif
|
||||
@ -390,7 +421,7 @@ index 4018a772ff..04d4009ab5 100644
|
||||
if (EVP_MD_xof(md)) {
|
||||
ERR_raise(ERR_LIB_PROV, PROV_R_XOF_DIGESTS_NOT_ALLOWED);
|
||||
diff --git a/providers/implementations/signature/rsa_sig.c b/providers/implementations/signature/rsa_sig.c
|
||||
index e75b90840b..645304b951 100644
|
||||
index fcdfebbbff..bbdd037728 100644
|
||||
--- a/providers/implementations/signature/rsa_sig.c
|
||||
+++ b/providers/implementations/signature/rsa_sig.c
|
||||
@@ -26,6 +26,7 @@
|
||||
@ -417,9 +448,9 @@ index e75b90840b..645304b951 100644
|
||||
+ md_nid = rh_digest_signatures_allowed(ctx->libctx, md_nid);
|
||||
+ if (md_nid <= 0) {
|
||||
ERR_raise_data(ERR_LIB_PROV, PROV_R_DIGEST_NOT_ALLOWED,
|
||||
"digest=%s", mdname);
|
||||
"digest=%s", mdname);
|
||||
goto err;
|
||||
@@ -1765,8 +1768,13 @@ static int rsa_set_ctx_params(void *vprsactx, const OSSL_PARAM params[])
|
||||
@@ -1760,8 +1763,13 @@ static int rsa_set_ctx_params(void *vprsactx, const OSSL_PARAM params[])
|
||||
prsactx->pad_mode = pad_mode;
|
||||
|
||||
if (prsactx->md == NULL && pmdname == NULL
|
||||
@ -436,7 +467,7 @@ index e75b90840b..645304b951 100644
|
||||
if (pmgf1mdname != NULL
|
||||
&& !rsa_setup_mgf1_md(prsactx, pmgf1mdname, pmgf1mdprops))
|
||||
diff --git a/ssl/t1_lib.c b/ssl/t1_lib.c
|
||||
index 2f71f95438..bea5cab253 100644
|
||||
index cd471a636d..35d0a6f1bb 100644
|
||||
--- a/ssl/t1_lib.c
|
||||
+++ b/ssl/t1_lib.c
|
||||
@@ -21,6 +21,7 @@
|
||||
@ -447,7 +478,7 @@ index 2f71f95438..bea5cab253 100644
|
||||
#include "internal/nelem.h"
|
||||
#include "internal/sizes.h"
|
||||
#include "internal/tlsgroups.h"
|
||||
@@ -2178,6 +2179,7 @@ int ssl_setup_sigalgs(SSL_CTX *ctx)
|
||||
@@ -2175,6 +2176,7 @@ int ssl_setup_sigalgs(SSL_CTX *ctx)
|
||||
EVP_PKEY *tmpkey = EVP_PKEY_new();
|
||||
int istls;
|
||||
int ret = 0;
|
||||
@ -455,15 +486,15 @@ index 2f71f95438..bea5cab253 100644
|
||||
|
||||
if (ctx == NULL)
|
||||
goto err;
|
||||
@@ -2195,6 +2197,7 @@ int ssl_setup_sigalgs(SSL_CTX *ctx)
|
||||
@@ -2192,6 +2194,7 @@ int ssl_setup_sigalgs(SSL_CTX *ctx)
|
||||
goto err;
|
||||
|
||||
ERR_set_mark();
|
||||
+ ldsigs_allowed = ossl_ctx_legacy_digest_signatures_allowed(ctx->libctx, 0);
|
||||
/* First fill cache and tls12_sigalgs list from legacy algorithm list */
|
||||
for (i = 0, lu = sigalg_lookup_tbl;
|
||||
i < OSSL_NELEM(sigalg_lookup_tbl); lu++, i++) {
|
||||
@@ -2215,6 +2218,11 @@ int ssl_setup_sigalgs(SSL_CTX *ctx)
|
||||
i < OSSL_NELEM(sigalg_lookup_tbl); lu++, i++) {
|
||||
@@ -2212,6 +2215,11 @@ int ssl_setup_sigalgs(SSL_CTX *ctx)
|
||||
cache[i].available = 0;
|
||||
continue;
|
||||
}
|
||||
@ -486,5 +517,5 @@ index d377d542db..c2c55129ae 100644
|
||||
+ossl_ctx_legacy_digest_signatures_allowed ? 3_0_1 EXIST::FUNCTION:
|
||||
+ossl_ctx_legacy_digest_signatures_allowed_set ? 3_0_1 EXIST::FUNCTION:
|
||||
--
|
||||
2.50.0
|
||||
2.52.0
|
||||
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
From 7b1b68328f640d184d6ac769a07aa436b0c3f318 Mon Sep 17 00:00:00 2001
|
||||
From 074607f7c460cda25654f1ee990ddba98af6d6db Mon Sep 17 00:00:00 2001
|
||||
From: Simo Sorce <simo@redhat.com>
|
||||
Date: Fri, 7 Mar 2025 18:12:33 -0500
|
||||
Subject: [PATCH 17/53] FIPS: Red Hat's FIPS module name and version
|
||||
Subject: [PATCH 17/57] FIPS: Red Hat's FIPS module name and version
|
||||
|
||||
Signed-off-by: Simo Sorce <simo@redhat.com>
|
||||
---
|
||||
@ -9,11 +9,11 @@ Signed-off-by: Simo Sorce <simo@redhat.com>
|
||||
1 file changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/providers/fips/fipsprov.c b/providers/fips/fipsprov.c
|
||||
index 4b9a057462..1e90f363af 100644
|
||||
index 419878719e..0f006301d7 100644
|
||||
--- a/providers/fips/fipsprov.c
|
||||
+++ b/providers/fips/fipsprov.c
|
||||
@@ -200,13 +200,13 @@ static int fips_get_params(void *provctx, OSSL_PARAM params[])
|
||||
OSSL_LIB_CTX_FIPS_PROV_INDEX);
|
||||
@@ -201,13 +201,13 @@ static int fips_get_params(void *provctx, OSSL_PARAM params[])
|
||||
OSSL_LIB_CTX_FIPS_PROV_INDEX);
|
||||
|
||||
p = OSSL_PARAM_locate(params, OSSL_PROV_PARAM_NAME);
|
||||
- if (p != NULL && !OSSL_PARAM_set_utf8_ptr(p, FIPS_VENDOR))
|
||||
@ -30,5 +30,5 @@ index 4b9a057462..1e90f363af 100644
|
||||
p = OSSL_PARAM_locate(params, OSSL_PROV_PARAM_STATUS);
|
||||
if (p != NULL && !OSSL_PARAM_set_int(p, ossl_prov_is_running()))
|
||||
--
|
||||
2.50.0
|
||||
2.52.0
|
||||
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
From 4e6b86b5130552bfee64c7ecaf045ec00749ecbd Mon Sep 17 00:00:00 2001
|
||||
From e43a23f06a9e23f1091f88c6dfa6c1bd4e065a7a Mon Sep 17 00:00:00 2001
|
||||
From: rpm-build <rpm-build>
|
||||
Date: Wed, 6 Mar 2024 19:17:15 +0100
|
||||
Subject: [PATCH 18/53] FIPS: disable fipsinstall
|
||||
Subject: [PATCH 18/57] FIPS: disable fipsinstall
|
||||
|
||||
Patch-name: 0034.fipsinstall_disable.patch
|
||||
Patch-id: 34
|
||||
@ -10,24 +10,24 @@ Patch-status: |
|
||||
From-dist-git-commit: 4334bc837fbc64d14890fdc51679a80770d498ce
|
||||
---
|
||||
apps/fipsinstall.c | 3 +
|
||||
doc/man1/openssl-fipsinstall.pod.in | 485 +-------------------------
|
||||
doc/man1/openssl-fipsinstall.pod.in | 481 +-------------------------
|
||||
doc/man1/openssl.pod | 4 -
|
||||
doc/man5/config.pod | 1 -
|
||||
doc/man5/fips_config.pod | 228 +-----------
|
||||
doc/man5/fips_config.pod | 222 +-----------
|
||||
doc/man7/OSSL_PROVIDER-FIPS.pod | 1 -
|
||||
test/recipes/00-prep_fipsmodule_cnf.t | 10 +-
|
||||
test/recipes/01-test_fipsmodule_cnf.t | 7 +-
|
||||
test/recipes/03-test_fipsinstall.t | 2 +
|
||||
9 files changed, 22 insertions(+), 719 deletions(-)
|
||||
9 files changed, 22 insertions(+), 709 deletions(-)
|
||||
mode change 100644 => 100755 test/recipes/00-prep_fipsmodule_cnf.t
|
||||
mode change 100644 => 100755 test/recipes/01-test_fipsmodule_cnf.t
|
||||
mode change 100644 => 100755 test/recipes/03-test_fipsinstall.t
|
||||
|
||||
diff --git a/apps/fipsinstall.c b/apps/fipsinstall.c
|
||||
index 0daa55a1b8..b4e29ac301 100644
|
||||
index dcc09a5ed7..e3d5f6e86d 100644
|
||||
--- a/apps/fipsinstall.c
|
||||
+++ b/apps/fipsinstall.c
|
||||
@@ -590,6 +590,9 @@ int fipsinstall_main(int argc, char **argv)
|
||||
@@ -636,6 +636,9 @@ int fipsinstall_main(int argc, char **argv)
|
||||
EVP_MAC *mac = NULL;
|
||||
CONF *conf = NULL;
|
||||
|
||||
@ -38,10 +38,10 @@ index 0daa55a1b8..b4e29ac301 100644
|
||||
goto end;
|
||||
|
||||
diff --git a/doc/man1/openssl-fipsinstall.pod.in b/doc/man1/openssl-fipsinstall.pod.in
|
||||
index 9dd4f5a49f..9a063022a9 100644
|
||||
index 2db5acd242..1c6b783413 100644
|
||||
--- a/doc/man1/openssl-fipsinstall.pod.in
|
||||
+++ b/doc/man1/openssl-fipsinstall.pod.in
|
||||
@@ -8,488 +8,9 @@ openssl-fipsinstall - perform FIPS configuration installation
|
||||
@@ -8,484 +8,9 @@ openssl-fipsinstall - perform FIPS configuration installation
|
||||
=head1 SYNOPSIS
|
||||
|
||||
B<openssl fipsinstall>
|
||||
@ -274,9 +274,7 @@ index 9dd4f5a49f..9a063022a9 100644
|
||||
-
|
||||
-=item B<-hkdf_digest_check>
|
||||
-
|
||||
-Configure the module to enable a run-time digest check when deriving a key by
|
||||
-HKDF.
|
||||
-See NIST SP 800-56Cr2 for details.
|
||||
-This option is deprecated.
|
||||
-
|
||||
-=item B<-tls13_kdf_digest_check>
|
||||
-
|
||||
@ -298,9 +296,7 @@ index 9dd4f5a49f..9a063022a9 100644
|
||||
-
|
||||
-=item B<-sskdf_digest_check>
|
||||
-
|
||||
-Configure the module to enable a run-time digest check when deriving a key by
|
||||
-SSKDF.
|
||||
-See NIST SP 800-56Cr2 for details.
|
||||
-This option is deprecated.
|
||||
-
|
||||
-=item B<-x963kdf_digest_check>
|
||||
-
|
||||
@ -410,7 +406,7 @@ index 9dd4f5a49f..9a063022a9 100644
|
||||
-
|
||||
-=item B<-self_test_oninstall>
|
||||
-
|
||||
-The converse of B<-self_test_oninstall>. The two fields related to the
|
||||
-The converse of B<-self_test_onload>. The two fields related to the
|
||||
-"test status indicator" and "MAC status indicator" are written to the
|
||||
-output configuration file.
|
||||
-This field is not relevant for an OpenSSL FIPS 140-3 provider, since this is no
|
||||
@ -534,7 +530,7 @@ index 9dd4f5a49f..9a063022a9 100644
|
||||
=head1 COPYRIGHT
|
||||
|
||||
diff --git a/doc/man1/openssl.pod b/doc/man1/openssl.pod
|
||||
index edef2ff598..0762a00d74 100644
|
||||
index 635b52aeb1..55bc6e44c6 100644
|
||||
--- a/doc/man1/openssl.pod
|
||||
+++ b/doc/man1/openssl.pod
|
||||
@@ -139,10 +139,6 @@ Engine (loadable module) information and manipulation.
|
||||
@ -561,10 +557,10 @@ index b994081924..7a6d7fab4a 100644
|
||||
L<EVP_set_default_properties(3)>,
|
||||
L<CONF_modules_load(3)>,
|
||||
diff --git a/doc/man5/fips_config.pod b/doc/man5/fips_config.pod
|
||||
index a25ced3383..15748c5756 100644
|
||||
index c3f7b8f3ab..2505938c13 100644
|
||||
--- a/doc/man5/fips_config.pod
|
||||
+++ b/doc/man5/fips_config.pod
|
||||
@@ -6,230 +6,10 @@ fips_config - OpenSSL FIPS configuration
|
||||
@@ -6,224 +6,10 @@ fips_config - OpenSSL FIPS configuration
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
@ -624,17 +620,11 @@ index a25ced3383..15748c5756 100644
|
||||
-
|
||||
-=item B<install-status>
|
||||
-
|
||||
-An indicator that the self-tests were successfully run.
|
||||
-This should only be written after the module has
|
||||
-successfully passed its self tests during installation.
|
||||
-If this field is not present, then the self tests will run when the module
|
||||
-loads.
|
||||
-This field is deprecated and is no longer used.
|
||||
-
|
||||
-=item B<install-mac>
|
||||
-
|
||||
-A MAC of the value of the B<install-status> option, to prevent accidental
|
||||
-changes to that value.
|
||||
-It is written-to at the same time as B<install-status> is updated.
|
||||
-This field is deprecated and is no longer used.
|
||||
-
|
||||
-=back
|
||||
-
|
||||
@ -674,7 +664,7 @@ index a25ced3383..15748c5756 100644
|
||||
-
|
||||
-=item B<hkdf-digest-check>
|
||||
-
|
||||
-See L<openssl-fipsinstall(1)/OPTIONS> B<-hkdf_digest_check>
|
||||
-This option is deprecated.
|
||||
-
|
||||
-=item B<tls13-kdf-digest-check>
|
||||
-
|
||||
@ -690,7 +680,7 @@ index a25ced3383..15748c5756 100644
|
||||
-
|
||||
-=item B<sskdf-digest-check>
|
||||
-
|
||||
-See L<openssl-fipsinstall(1)/OPTIONS> B<-sskdf_digest_check>
|
||||
-This option is deprecated.
|
||||
-
|
||||
-=item B<x963kdf-digest-check>
|
||||
-
|
||||
@ -800,10 +790,10 @@ index a25ced3383..15748c5756 100644
|
||||
=head1 COPYRIGHT
|
||||
|
||||
diff --git a/doc/man7/OSSL_PROVIDER-FIPS.pod b/doc/man7/OSSL_PROVIDER-FIPS.pod
|
||||
index 571a1e99e0..1e384a4ff3 100644
|
||||
index d14005a89a..c3797f5682 100644
|
||||
--- a/doc/man7/OSSL_PROVIDER-FIPS.pod
|
||||
+++ b/doc/man7/OSSL_PROVIDER-FIPS.pod
|
||||
@@ -588,7 +588,6 @@ process.
|
||||
@@ -574,7 +574,6 @@ process.
|
||||
|
||||
=head1 SEE ALSO
|
||||
|
||||
@ -853,7 +843,7 @@ index ce594817d5..4530a46dd0
|
||||
diff --git a/test/recipes/03-test_fipsinstall.t b/test/recipes/03-test_fipsinstall.t
|
||||
old mode 100644
|
||||
new mode 100755
|
||||
index 1f9110ef60..7e80637bd5
|
||||
index 3dcbe67c6d..1a5a475d91
|
||||
--- a/test/recipes/03-test_fipsinstall.t
|
||||
+++ b/test/recipes/03-test_fipsinstall.t
|
||||
@@ -22,6 +22,8 @@ use lib srctop_dir('Configurations');
|
||||
@ -866,5 +856,5 @@ index 1f9110ef60..7e80637bd5
|
||||
|
||||
# Compatible options for pedantic FIPS compliance
|
||||
--
|
||||
2.50.0
|
||||
2.52.0
|
||||
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
From a8e98667597d46e69e492779b9d5daa051f6b3b3 Mon Sep 17 00:00:00 2001
|
||||
From b8a5ce1fbad62e0f7b023aab827d2888413d5ced Mon Sep 17 00:00:00 2001
|
||||
From: rpm-build <rpm-build>
|
||||
Date: Wed, 6 Mar 2024 19:17:15 +0100
|
||||
Subject: [PATCH 19/53] FIPS: Force fips provider on
|
||||
Subject: [PATCH 19/57] FIPS: Force fips provider on
|
||||
|
||||
Patch-name: 0032-Force-fips.patch
|
||||
Patch-id: 32
|
||||
@ -13,7 +13,7 @@ From-dist-git-commit: 4334bc837fbc64d14890fdc51679a80770d498ce
|
||||
1 file changed, 29 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/crypto/provider_conf.c b/crypto/provider_conf.c
|
||||
index 9649517dd2..1e5053cbce 100644
|
||||
index f2e76ac402..a2a8a9942c 100644
|
||||
--- a/crypto/provider_conf.c
|
||||
+++ b/crypto/provider_conf.c
|
||||
@@ -10,6 +10,8 @@
|
||||
@ -75,5 +75,5 @@ index 9649517dd2..1e5053cbce 100644
|
||||
}
|
||||
|
||||
--
|
||||
2.50.0
|
||||
2.52.0
|
||||
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
From fff4084252d07eb17e3b944c6438c00aec471c7f Mon Sep 17 00:00:00 2001
|
||||
From 310346f65db4e3b6052cf165f890f13bfd645f5c Mon Sep 17 00:00:00 2001
|
||||
From: rpm-build <rpm-build>
|
||||
Date: Wed, 6 Mar 2024 19:17:15 +0100
|
||||
Subject: [PATCH 20/53] FIPS: INTEG-CHECK: Embed hmac in fips.so - NOTE
|
||||
Subject: [PATCH 20/57] FIPS: INTEG-CHECK: Embed hmac in fips.so - NOTE
|
||||
|
||||
Corrected by squashing in:
|
||||
0052-Restore-the-correct-verify_integrity-function.patch
|
||||
@ -20,10 +20,10 @@ From-dist-git-commit: 4334bc837fbc64d14890fdc51679a80770d498ce
|
||||
create mode 100644 test/fipsmodule.cnf
|
||||
|
||||
diff --git a/providers/fips/self_test.c b/providers/fips/self_test.c
|
||||
index ef7be26ca7..8b17b8ca94 100644
|
||||
index 008a4fac84..c72e2605c4 100644
|
||||
--- a/providers/fips/self_test.c
|
||||
+++ b/providers/fips/self_test.c
|
||||
@@ -235,13 +235,137 @@ err:
|
||||
@@ -237,13 +237,137 @@ err:
|
||||
return ok;
|
||||
}
|
||||
|
||||
@ -157,12 +157,12 @@ index ef7be26ca7..8b17b8ca94 100644
|
||||
+}
|
||||
+
|
||||
static int verify_integrity(OSSL_CORE_BIO *bio, OSSL_FUNC_BIO_read_ex_fn read_ex_cb,
|
||||
- unsigned char *expected, size_t expected_len,
|
||||
+ const unsigned char *expected, size_t expected_len,
|
||||
OSSL_LIB_CTX *libctx, OSSL_SELF_TEST *ev,
|
||||
const char *event_type)
|
||||
- unsigned char *expected, size_t expected_len,
|
||||
+ const unsigned char *expected, size_t expected_len,
|
||||
OSSL_LIB_CTX *libctx, OSSL_SELF_TEST *ev,
|
||||
const char *event_type)
|
||||
{
|
||||
@@ -253,6 +377,9 @@ static int verify_integrity(OSSL_CORE_BIO *bio, OSSL_FUNC_BIO_read_ex_fn read_ex
|
||||
@@ -255,6 +379,9 @@ static int verify_integrity(OSSL_CORE_BIO *bio, OSSL_FUNC_BIO_read_ex_fn read_ex
|
||||
EVP_MAC_CTX *ctx = NULL;
|
||||
OSSL_PARAM params[2], *p = params;
|
||||
|
||||
@ -172,7 +172,7 @@ index ef7be26ca7..8b17b8ca94 100644
|
||||
if (!integrity_self_test(ev, libctx))
|
||||
goto err;
|
||||
|
||||
@@ -316,7 +443,8 @@ int SELF_TEST_post(SELF_TEST_POST_PARAMS *st, int on_demand_test)
|
||||
@@ -318,7 +445,8 @@ int SELF_TEST_post(SELF_TEST_POST_PARAMS *st, int on_demand_test)
|
||||
int ok = 0;
|
||||
long checksum_len;
|
||||
OSSL_CORE_BIO *bio_module = NULL;
|
||||
@ -182,22 +182,22 @@ index ef7be26ca7..8b17b8ca94 100644
|
||||
OSSL_SELF_TEST *ev = NULL;
|
||||
EVP_RAND *testrand = NULL;
|
||||
EVP_RAND_CTX *rng;
|
||||
@@ -352,8 +480,7 @@ int SELF_TEST_post(SELF_TEST_POST_PARAMS *st, int on_demand_test)
|
||||
@@ -354,8 +482,7 @@ int SELF_TEST_post(SELF_TEST_POST_PARAMS *st, int on_demand_test)
|
||||
return 0;
|
||||
}
|
||||
|
||||
- if (st == NULL
|
||||
- || st->module_checksum_data == NULL) {
|
||||
- || st->module_checksum_data == NULL) {
|
||||
+ if (st == NULL) {
|
||||
ERR_raise(ERR_LIB_PROV, PROV_R_MISSING_CONFIG_DATA);
|
||||
goto end;
|
||||
}
|
||||
@@ -362,8 +489,15 @@ int SELF_TEST_post(SELF_TEST_POST_PARAMS *st, int on_demand_test)
|
||||
@@ -364,8 +491,15 @@ int SELF_TEST_post(SELF_TEST_POST_PARAMS *st, int on_demand_test)
|
||||
if (ev == NULL)
|
||||
goto end;
|
||||
|
||||
- module_checksum = OPENSSL_hexstr2buf(st->module_checksum_data,
|
||||
- &checksum_len);
|
||||
- &checksum_len);
|
||||
+ if (st->module_checksum_data == NULL) {
|
||||
+ module_checksum = fips_hmac_container;
|
||||
+ checksum_len = sizeof(fips_hmac_container);
|
||||
@ -210,14 +210,14 @@ index ef7be26ca7..8b17b8ca94 100644
|
||||
if (module_checksum == NULL) {
|
||||
ERR_raise(ERR_LIB_PROV, PROV_R_INVALID_CONFIG_DATA);
|
||||
goto end;
|
||||
@@ -371,14 +505,28 @@ int SELF_TEST_post(SELF_TEST_POST_PARAMS *st, int on_demand_test)
|
||||
@@ -373,14 +507,28 @@ int SELF_TEST_post(SELF_TEST_POST_PARAMS *st, int on_demand_test)
|
||||
bio_module = (*st->bio_new_file_cb)(st->module_filename, "rb");
|
||||
|
||||
/* Always check the integrity of the fips module */
|
||||
- if (bio_module == NULL
|
||||
- || !verify_integrity(bio_module, st->bio_read_ex_cb,
|
||||
- module_checksum, checksum_len, st->libctx,
|
||||
- ev, OSSL_SELF_TEST_TYPE_MODULE_INTEGRITY)) {
|
||||
- || !verify_integrity(bio_module, st->bio_read_ex_cb,
|
||||
- module_checksum, checksum_len, st->libctx,
|
||||
- ev, OSSL_SELF_TEST_TYPE_MODULE_INTEGRITY)) {
|
||||
+ if (bio_module == NULL) {
|
||||
ERR_raise(ERR_LIB_PROV, PROV_R_MODULE_INTEGRITY_FAILURE);
|
||||
goto end;
|
||||
@ -243,7 +243,7 @@ index ef7be26ca7..8b17b8ca94 100644
|
||||
if (!SELF_TEST_kats(ev, st->libctx)) {
|
||||
ERR_raise(ERR_LIB_PROV, PROV_R_SELF_TEST_KAT_FAILURE);
|
||||
goto end;
|
||||
@@ -398,7 +546,7 @@ int SELF_TEST_post(SELF_TEST_POST_PARAMS *st, int on_demand_test)
|
||||
@@ -401,7 +549,7 @@ int SELF_TEST_post(SELF_TEST_POST_PARAMS *st, int on_demand_test)
|
||||
end:
|
||||
EVP_RAND_free(testrand);
|
||||
OSSL_SELF_TEST_free(ev);
|
||||
@ -261,5 +261,5 @@ index 0000000000..f05d0dedbe
|
||||
+[fips_sect]
|
||||
+activate = 1
|
||||
--
|
||||
2.50.0
|
||||
2.52.0
|
||||
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
From 9633d1339e383fdb008c25635baa86c58b3dcdc4 Mon Sep 17 00:00:00 2001
|
||||
From 7fb0257ff4158f41306b730e0b2851bcd6d22747 Mon Sep 17 00:00:00 2001
|
||||
From: Simo Sorce <simo@redhat.com>
|
||||
Date: Thu, 20 Feb 2025 15:30:32 -0500
|
||||
Subject: [PATCH 21/53] FIPS: INTEG-CHECK: Add script to hmac-ify fips.so
|
||||
Subject: [PATCH 21/57] FIPS: INTEG-CHECK: Add script to hmac-ify fips.so
|
||||
|
||||
This script rewrites the fips.so binary to embed the hmac result into it
|
||||
so that after a build it can be called to make the fips.so as modified
|
||||
@ -28,5 +28,5 @@ index 0000000000..54ae60b07f
|
||||
+objcopy --update-section .rodata1=providers/fips.so.hmac providers/fips.so providers/fips.so.mac
|
||||
+mv providers/fips.so.mac providers/fips.so
|
||||
--
|
||||
2.50.0
|
||||
2.52.0
|
||||
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
From 391ce06974d5efaf8485ac2386a857d7644db30a Mon Sep 17 00:00:00 2001
|
||||
From a155bf631d4d923ed08f554344c44d07571d6e02 Mon Sep 17 00:00:00 2001
|
||||
From: rpm-build <rpm-build>
|
||||
Date: Wed, 6 Mar 2024 19:17:15 +0100
|
||||
Subject: [PATCH 22/53] FIPS: INTEG-CHECK: Execute KATS before HMAC - REVIEW
|
||||
Subject: [PATCH 22/57] FIPS: INTEG-CHECK: Execute KATS before HMAC - REVIEW
|
||||
|
||||
Patch-name: 0047-FIPS-early-KATS.patch
|
||||
Patch-id: 47
|
||||
@ -13,10 +13,10 @@ From-dist-git-commit: 4334bc837fbc64d14890fdc51679a80770d498ce
|
||||
1 file changed, 9 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/providers/fips/self_test.c b/providers/fips/self_test.c
|
||||
index 8b17b8ca94..0f5074936f 100644
|
||||
index c72e2605c4..470cf1fc28 100644
|
||||
--- a/providers/fips/self_test.c
|
||||
+++ b/providers/fips/self_test.c
|
||||
@@ -489,6 +489,15 @@ int SELF_TEST_post(SELF_TEST_POST_PARAMS *st, int on_demand_test)
|
||||
@@ -491,6 +491,15 @@ int SELF_TEST_post(SELF_TEST_POST_PARAMS *st, int on_demand_test)
|
||||
if (ev == NULL)
|
||||
goto end;
|
||||
|
||||
@ -32,7 +32,7 @@ index 8b17b8ca94..0f5074936f 100644
|
||||
if (st->module_checksum_data == NULL) {
|
||||
module_checksum = fips_hmac_container;
|
||||
checksum_len = sizeof(fips_hmac_container);
|
||||
@@ -527,11 +536,6 @@ int SELF_TEST_post(SELF_TEST_POST_PARAMS *st, int on_demand_test)
|
||||
@@ -529,11 +538,6 @@ int SELF_TEST_post(SELF_TEST_POST_PARAMS *st, int on_demand_test)
|
||||
}
|
||||
}
|
||||
|
||||
@ -45,5 +45,5 @@ index 8b17b8ca94..0f5074936f 100644
|
||||
rng = ossl_rand_get0_private_noncreating(st->libctx);
|
||||
if (rng != NULL)
|
||||
--
|
||||
2.50.0
|
||||
2.52.0
|
||||
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
From 821f291d29bf73802287ed74922e1d22d840cb46 Mon Sep 17 00:00:00 2001
|
||||
From 97d32c648aa0ba85165f40a9b9fca194301420fa Mon Sep 17 00:00:00 2001
|
||||
From: rpm-build <rpm-build>
|
||||
Date: Wed, 6 Mar 2024 19:17:15 +0100
|
||||
Subject: [PATCH 23/53] FIPS: RSA: encrypt limits - REVIEW
|
||||
Subject: [PATCH 23/57] FIPS: RSA: encrypt limits - REVIEW
|
||||
|
||||
Patch-name: 0058-FIPS-limit-rsa-encrypt.patch
|
||||
Patch-id: 58
|
||||
@ -19,10 +19,10 @@ From-dist-git-commit: 4334bc837fbc64d14890fdc51679a80770d498ce
|
||||
mode change 100644 => 100755 test/recipes/80-test_ssl_old.t
|
||||
|
||||
diff --git a/providers/common/securitycheck.c b/providers/common/securitycheck.c
|
||||
index 79a9c48ce2..0e517542bc 100644
|
||||
index 6985be0400..37000c8627 100644
|
||||
--- a/providers/common/securitycheck.c
|
||||
+++ b/providers/common/securitycheck.c
|
||||
@@ -65,6 +65,7 @@ int ossl_rsa_key_op_get_protect(const RSA *rsa, int operation, int *outprotect)
|
||||
@@ -66,6 +66,7 @@ int ossl_rsa_key_op_get_protect(const RSA *rsa, int operation, int *outprotect)
|
||||
* Set protect = 1 for encryption or signing operations, or 0 otherwise. See
|
||||
* https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-131Ar2.pdf.
|
||||
*/
|
||||
@ -44,12 +44,12 @@ index 78f9fc0655..6bd783eb0a 100644
|
||||
OSSL_FIPS_PARAM(rsa_sign_x931_disallowed, RSA_SIGN_X931_PAD_DISABLED, 0)
|
||||
OSSL_FIPS_PARAM(hkdf_key_check, HKDF_KEY_CHECK, 0)
|
||||
diff --git a/providers/implementations/asymciphers/rsa_enc.c b/providers/implementations/asymciphers/rsa_enc.c
|
||||
index 6ee127caff..2a7c2f159e 100644
|
||||
index 4995b00102..0b14fbc58d 100644
|
||||
--- a/providers/implementations/asymciphers/rsa_enc.c
|
||||
+++ b/providers/implementations/asymciphers/rsa_enc.c
|
||||
@@ -168,6 +168,18 @@ static int rsa_encrypt(void *vprsactx, unsigned char *out, size_t *outlen,
|
||||
@@ -174,6 +174,18 @@ static int rsa_encrypt(void *vprsactx, unsigned char *out, size_t *outlen,
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
+# ifdef FIPS_MODULE
|
||||
+ if (prsactx->pad_mode == RSA_NO_PADDING) {
|
||||
@ -64,9 +64,9 @@ index 6ee127caff..2a7c2f159e 100644
|
||||
+# endif
|
||||
+
|
||||
if (out == NULL) {
|
||||
size_t len = RSA_size(prsactx->rsa);
|
||||
|
||||
@@ -230,6 +242,20 @@ static int rsa_decrypt(void *vprsactx, unsigned char *out, size_t *outlen,
|
||||
*outlen = len;
|
||||
return 1;
|
||||
@@ -234,6 +246,20 @@ static int rsa_decrypt(void *vprsactx, unsigned char *out, size_t *outlen,
|
||||
if (!ossl_prov_is_running())
|
||||
return 0;
|
||||
|
||||
@ -911,10 +911,10 @@ index 18e11bdaa9..17ceb59148 100644
|
||||
Ctrl = rsa_padding_mode:oaep
|
||||
Ctrl = rsa_mgf1_md:sha1
|
||||
diff --git a/test/recipes/80-test_cms.t b/test/recipes/80-test_cms.t
|
||||
index 5c967c5818..d13dceaac5 100644
|
||||
index 279a498475..c278987186 100644
|
||||
--- a/test/recipes/80-test_cms.t
|
||||
+++ b/test/recipes/80-test_cms.t
|
||||
@@ -250,7 +250,7 @@ my @smime_pkcs7_tests = (
|
||||
@@ -267,7 +267,7 @@ my @smime_pkcs7_tests = (
|
||||
|
||||
if ($no_fips || $old_fips) {
|
||||
push(@smime_pkcs7_tests,
|
||||
@ -923,7 +923,7 @@ index 5c967c5818..d13dceaac5 100644
|
||||
[ "{cmd1}", @prov, "-encrypt", "-in", $smcont,
|
||||
"-aes256", "-stream", "-out", "{output}.cms",
|
||||
$smrsa1,
|
||||
@@ -1267,6 +1267,9 @@ sub check_availability {
|
||||
@@ -1284,6 +1284,9 @@ sub check_availability {
|
||||
return "$tnam: skipped, DSA disabled\n"
|
||||
if ($no_dsa && $tnam =~ / DSA/);
|
||||
|
||||
@ -981,5 +981,5 @@ index f7be2e1872..568a1ddba4
|
||||
}
|
||||
next if $protocol eq "-tls1_3";
|
||||
--
|
||||
2.50.0
|
||||
2.52.0
|
||||
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
From 84dc66a182dba38876b2b519a8a5c9d38fd967a3 Mon Sep 17 00:00:00 2001
|
||||
From 034d02d047e4a4d84d5c8ca2b54557b1679e8610 Mon Sep 17 00:00:00 2001
|
||||
From: Simo Sorce <simo@redhat.com>
|
||||
Date: Mon, 24 Mar 2025 10:50:37 -0400
|
||||
Subject: [PATCH 24/53] FIPS: RSA: PCTs
|
||||
Subject: [PATCH 24/57] FIPS: RSA: PCTs
|
||||
|
||||
Signed-off-by: Simo Sorce <simo@redhat.com>
|
||||
---
|
||||
@ -10,10 +10,10 @@ Signed-off-by: Simo Sorce <simo@redhat.com>
|
||||
2 files changed, 61 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/providers/implementations/keymgmt/rsa_kmgmt.c b/providers/implementations/keymgmt/rsa_kmgmt.c
|
||||
index 77d0950094..f0e71beb43 100644
|
||||
index 3582936d67..383c3071a9 100644
|
||||
--- a/providers/implementations/keymgmt/rsa_kmgmt.c
|
||||
+++ b/providers/implementations/keymgmt/rsa_kmgmt.c
|
||||
@@ -433,6 +433,7 @@ struct rsa_gen_ctx {
|
||||
@@ -428,6 +428,7 @@ struct rsa_gen_ctx {
|
||||
#if defined(FIPS_MODULE) && !defined(OPENSSL_NO_ACVP_TESTS)
|
||||
/* ACVP test parameters */
|
||||
OSSL_PARAM *acvp_test_params;
|
||||
@ -21,7 +21,7 @@ index 77d0950094..f0e71beb43 100644
|
||||
#endif
|
||||
};
|
||||
|
||||
@@ -446,6 +447,12 @@ static int rsa_gencb(int p, int n, BN_GENCB *cb)
|
||||
@@ -441,6 +442,12 @@ static int rsa_gencb(int p, int n, BN_GENCB *cb)
|
||||
return gctx->cb(params, gctx->cbarg);
|
||||
}
|
||||
|
||||
@ -32,9 +32,9 @@ index 77d0950094..f0e71beb43 100644
|
||||
+#endif
|
||||
+
|
||||
static void *gen_init(void *provctx, int selection, int rsa_type,
|
||||
const OSSL_PARAM params[])
|
||||
const OSSL_PARAM params[])
|
||||
{
|
||||
@@ -473,6 +480,10 @@ static void *gen_init(void *provctx, int selection, int rsa_type,
|
||||
@@ -468,6 +475,10 @@ static void *gen_init(void *provctx, int selection, int rsa_type,
|
||||
|
||||
if (!rsa_gen_set_params(gctx, params))
|
||||
goto err;
|
||||
@ -45,7 +45,7 @@ index 77d0950094..f0e71beb43 100644
|
||||
return gctx;
|
||||
|
||||
err:
|
||||
@@ -629,6 +640,11 @@ static void *rsa_gen(void *genctx, OSSL_CALLBACK *osslcb, void *cbarg)
|
||||
@@ -624,6 +635,11 @@ static void *rsa_gen(void *genctx, OSSL_CALLBACK *osslcb, void *cbarg)
|
||||
|
||||
rsa = rsa_tmp;
|
||||
rsa_tmp = NULL;
|
||||
@ -54,10 +54,10 @@ index 77d0950094..f0e71beb43 100644
|
||||
+ if (do_rsa_pct(gctx->prov_rsa_ctx, "sha256", rsa) != 1)
|
||||
+ abort();
|
||||
+#endif
|
||||
err:
|
||||
err:
|
||||
BN_GENCB_free(gencb);
|
||||
RSA_free(rsa_tmp);
|
||||
@@ -644,6 +660,8 @@ static void rsa_gen_cleanup(void *genctx)
|
||||
@@ -639,6 +655,8 @@ static void rsa_gen_cleanup(void *genctx)
|
||||
#if defined(FIPS_MODULE) && !defined(OPENSSL_NO_ACVP_TESTS)
|
||||
ossl_rsa_acvp_test_gen_params_free(gctx->acvp_test_params);
|
||||
gctx->acvp_test_params = NULL;
|
||||
@ -67,7 +67,7 @@ index 77d0950094..f0e71beb43 100644
|
||||
BN_clear_free(gctx->pub_exp);
|
||||
OPENSSL_free(gctx);
|
||||
diff --git a/providers/implementations/signature/rsa_sig.c b/providers/implementations/signature/rsa_sig.c
|
||||
index 645304b951..3d5af1046a 100644
|
||||
index bbdd037728..4e0744eeba 100644
|
||||
--- a/providers/implementations/signature/rsa_sig.c
|
||||
+++ b/providers/implementations/signature/rsa_sig.c
|
||||
@@ -37,7 +37,7 @@
|
||||
@ -97,7 +97,7 @@ index 645304b951..3d5af1046a 100644
|
||||
{
|
||||
PROV_RSA_CTX *prsactx = NULL;
|
||||
char *propq_copy = NULL;
|
||||
@@ -1316,7 +1316,7 @@ int rsa_digest_verify_final(void *vprsactx, const unsigned char *sig,
|
||||
@@ -1309,7 +1309,7 @@ int rsa_digest_verify_final(void *vprsactx, const unsigned char *sig,
|
||||
return ok;
|
||||
}
|
||||
|
||||
@ -106,7 +106,7 @@ index 645304b951..3d5af1046a 100644
|
||||
{
|
||||
PROV_RSA_CTX *prsactx = (PROV_RSA_CTX *)vprsactx;
|
||||
|
||||
@@ -1866,6 +1866,45 @@ static const OSSL_PARAM *rsa_settable_ctx_md_params(void *vprsactx)
|
||||
@@ -1861,6 +1861,45 @@ static const OSSL_PARAM *rsa_settable_ctx_md_params(void *vprsactx)
|
||||
return EVP_MD_settable_ctx_params(prsactx->md);
|
||||
}
|
||||
|
||||
@ -153,5 +153,5 @@ index 645304b951..3d5af1046a 100644
|
||||
{ OSSL_FUNC_SIGNATURE_NEWCTX, (void (*)(void))rsa_newctx },
|
||||
{ OSSL_FUNC_SIGNATURE_SIGN_INIT, (void (*)(void))rsa_sign_init },
|
||||
--
|
||||
2.50.0
|
||||
2.52.0
|
||||
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
From 0e23d3fc43bf4ace817542443d772407a809dd19 Mon Sep 17 00:00:00 2001
|
||||
From ca999ba4305afdf6b8465708ecc1a472543bbad6 Mon Sep 17 00:00:00 2001
|
||||
From: rpm-build <rpm-build>
|
||||
Date: Wed, 6 Mar 2024 19:17:17 +0100
|
||||
Subject: [PATCH 25/53] FIPS: RSA: encapsulate limits
|
||||
Subject: [PATCH 25/57] FIPS: RSA: encapsulate limits
|
||||
|
||||
Patch-name: 0091-FIPS-RSA-encapsulate.patch
|
||||
Patch-id: 91
|
||||
@ -14,7 +14,7 @@ From-dist-git-commit: 4334bc837fbc64d14890fdc51679a80770d498ce
|
||||
2 files changed, 15 insertions(+)
|
||||
|
||||
diff --git a/providers/implementations/kem/rsa_kem.c b/providers/implementations/kem/rsa_kem.c
|
||||
index 7494dcc010..5d6123e8cb 100644
|
||||
index f7bf368a0d..a05cf7c748 100644
|
||||
--- a/providers/implementations/kem/rsa_kem.c
|
||||
+++ b/providers/implementations/kem/rsa_kem.c
|
||||
@@ -284,6 +284,13 @@ static int rsasve_generate(PROV_RSA_CTX *prsactx,
|
||||
@ -31,7 +31,7 @@ index 7494dcc010..5d6123e8cb 100644
|
||||
if (out == NULL) {
|
||||
if (nlen == 0) {
|
||||
ERR_raise(ERR_LIB_PROV, PROV_R_INVALID_KEY);
|
||||
@@ -360,6 +367,13 @@ static int rsasve_recover(PROV_RSA_CTX *prsactx,
|
||||
@@ -359,6 +366,13 @@ static int rsasve_recover(PROV_RSA_CTX *prsactx,
|
||||
/* Step (1): get the byte length of n */
|
||||
nlen = RSA_size(prsactx->rsa);
|
||||
|
||||
@ -55,5 +55,5 @@ index ecab1454e7..8e5edd35fe 100644
|
||||
Op = RSASVE
|
||||
+Result = TEST_ENCAPSULATE_LEN_ERROR
|
||||
--
|
||||
2.50.0
|
||||
2.52.0
|
||||
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
From bb269a8f52e1be87144247772e2425b2f4911bee Mon Sep 17 00:00:00 2001
|
||||
From 05d9c9154e199bb4a84e215f0b20bd06ac5081d8 Mon Sep 17 00:00:00 2001
|
||||
From: rpm-build <rpm-build>
|
||||
Date: Wed, 6 Mar 2024 19:17:17 +0100
|
||||
Subject: [PATCH 26/53] FIPS: RSA: Disallow SHAKE in OAEP and PSS
|
||||
Subject: [PATCH 26/57] FIPS: RSA: Disallow SHAKE in OAEP and PSS
|
||||
|
||||
According to FIPS 140-3 IG, section C.C, the SHAKE digest algorithms
|
||||
must not be used in higher-level algorithms (such as RSA-OAEP and
|
||||
@ -25,7 +25,7 @@ From-dist-git-commit: 4334bc837fbc64d14890fdc51679a80770d498ce
|
||||
2 files changed, 32 insertions(+)
|
||||
|
||||
diff --git a/crypto/rsa/rsa_oaep.c b/crypto/rsa/rsa_oaep.c
|
||||
index 5a1c080fcd..11cd78618b 100644
|
||||
index 453205b56c..e45d4bc278 100644
|
||||
--- a/crypto/rsa/rsa_oaep.c
|
||||
+++ b/crypto/rsa/rsa_oaep.c
|
||||
@@ -76,6 +76,14 @@ int ossl_rsa_padding_add_PKCS1_OAEP_mgf1_ex(OSSL_LIB_CTX *libctx,
|
||||
@ -59,7 +59,7 @@ index 5a1c080fcd..11cd78618b 100644
|
||||
/* XOF are approved as standalone; Shake256 in Ed448; MGF */
|
||||
if (EVP_MD_xof(md)) {
|
||||
diff --git a/crypto/rsa/rsa_pss.c b/crypto/rsa/rsa_pss.c
|
||||
index a2bc198a89..2833ca50f3 100644
|
||||
index 98d6e70346..7fe78b9055 100644
|
||||
--- a/crypto/rsa/rsa_pss.c
|
||||
+++ b/crypto/rsa/rsa_pss.c
|
||||
@@ -61,6 +61,14 @@ int ossl_rsa_verify_PKCS1_PSS_mgf1(RSA *rsa, const unsigned char *mHash,
|
||||
@ -93,5 +93,5 @@ index a2bc198a89..2833ca50f3 100644
|
||||
if (hLen <= 0)
|
||||
goto err;
|
||||
--
|
||||
2.50.0
|
||||
2.52.0
|
||||
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
From f177c315c190537fe6a1bb0620024ae86bb95c8a Mon Sep 17 00:00:00 2001
|
||||
From 4191527585ab1e8923249885cbf87d2f91b8804f Mon Sep 17 00:00:00 2001
|
||||
From: Simo Sorce <simo@redhat.com>
|
||||
Date: Fri, 7 Mar 2025 18:20:30 -0500
|
||||
Subject: [PATCH 27/53] FIPS: RSA: size/mode restrictions
|
||||
Subject: [PATCH 27/57] FIPS: RSA: size/mode restrictions
|
||||
|
||||
Signed-off-by: Simo Sorce <simo@redhat.com>
|
||||
---
|
||||
@ -12,10 +12,10 @@ Signed-off-by: Simo Sorce <simo@redhat.com>
|
||||
4 files changed, 86 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/providers/implementations/signature/rsa_sig.c b/providers/implementations/signature/rsa_sig.c
|
||||
index 3d5af1046a..09c202f87c 100644
|
||||
index 4e0744eeba..f38431fd60 100644
|
||||
--- a/providers/implementations/signature/rsa_sig.c
|
||||
+++ b/providers/implementations/signature/rsa_sig.c
|
||||
@@ -939,6 +939,19 @@ static int rsa_verify_recover(void *vprsactx,
|
||||
@@ -935,6 +935,19 @@ static int rsa_verify_recover(void *vprsactx,
|
||||
{
|
||||
PROV_RSA_CTX *prsactx = (PROV_RSA_CTX *)vprsactx;
|
||||
int ret;
|
||||
@ -35,8 +35,8 @@ index 3d5af1046a..09c202f87c 100644
|
||||
|
||||
if (!ossl_prov_is_running())
|
||||
return 0;
|
||||
@@ -1033,6 +1046,19 @@ static int rsa_verify_directly(PROV_RSA_CTX *prsactx,
|
||||
const unsigned char *tbs, size_t tbslen)
|
||||
@@ -1027,6 +1040,19 @@ static int rsa_verify_directly(PROV_RSA_CTX *prsactx,
|
||||
const unsigned char *tbs, size_t tbslen)
|
||||
{
|
||||
size_t rslen;
|
||||
+# ifdef FIPS_MODULE
|
||||
@ -56,7 +56,7 @@ index 3d5af1046a..09c202f87c 100644
|
||||
if (!ossl_prov_is_running())
|
||||
return 0;
|
||||
diff --git a/ssl/ssl_ciph.c b/ssl/ssl_ciph.c
|
||||
index 19420d6c6a..5ab1ccee93 100644
|
||||
index 15be7e8067..823ad48e02 100644
|
||||
--- a/ssl/ssl_ciph.c
|
||||
+++ b/ssl/ssl_ciph.c
|
||||
@@ -350,6 +350,9 @@ int ssl_load_ciphers(SSL_CTX *ctx)
|
||||
@ -70,7 +70,7 @@ index 19420d6c6a..5ab1ccee93 100644
|
||||
* We ignore any errors from the fetches below. They are expected to fail
|
||||
* if these algorithms are not available.
|
||||
diff --git a/test/recipes/30-test_evp_data/evppkey_rsa.txt b/test/recipes/30-test_evp_data/evppkey_rsa.txt
|
||||
index f1dc5dd2a2..6ae973eaac 100644
|
||||
index 42819f7c41..65a75469f9 100644
|
||||
--- a/test/recipes/30-test_evp_data/evppkey_rsa.txt
|
||||
+++ b/test/recipes/30-test_evp_data/evppkey_rsa.txt
|
||||
@@ -268,8 +268,19 @@ TwIDAQAB
|
||||
@ -437,5 +437,5 @@ index 17ceb59148..972e90f32f 100644
|
||||
# Signing with SHA1 is not allowed in fips mode
|
||||
Availablein = fips
|
||||
--
|
||||
2.50.0
|
||||
2.52.0
|
||||
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
From bc8584fab56834724a8aa70aba1c1f56f1d794e2 Mon Sep 17 00:00:00 2001
|
||||
From d72621c7c9fd09b4d6a917b3a721f0fd114b950d Mon Sep 17 00:00:00 2001
|
||||
From: Simo Sorce <simo@redhat.com>
|
||||
Date: Mon, 24 Mar 2025 11:03:45 -0400
|
||||
Subject: [PATCH 28/53] FIPS: RSA: Mark x931 as not approved by default
|
||||
Subject: [PATCH 28/57] FIPS: RSA: Mark x931 as not approved by default
|
||||
|
||||
Signed-off-by: Simo Sorce <simo@redhat.com>
|
||||
---
|
||||
@ -22,5 +22,5 @@ index 6bd783eb0a..c1b029de86 100644
|
||||
OSSL_FIPS_PARAM(kbkdf_key_check, KBKDF_KEY_CHECK, 0)
|
||||
OSSL_FIPS_PARAM(tls13_kdf_key_check, TLS13_KDF_KEY_CHECK, 0)
|
||||
--
|
||||
2.50.0
|
||||
2.52.0
|
||||
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
From 7a34ce0dbb64dd29e412dffb0628815eed4a8b96 Mon Sep 17 00:00:00 2001
|
||||
From 3618981a35438119a4027d1bf3cb3902431adaa4 Mon Sep 17 00:00:00 2001
|
||||
From: rpm-build <rpm-build>
|
||||
Date: Wed, 6 Mar 2024 19:17:16 +0100
|
||||
Subject: [PATCH 29/53] FIPS: RSA: Remove X9.31 padding signatures tests
|
||||
Subject: [PATCH 29/57] FIPS: RSA: Remove X9.31 padding signatures tests
|
||||
|
||||
The current draft of FIPS 186-5 [1] no longer contains specifications
|
||||
for X9.31 signature padding. Instead, it contains the following
|
||||
@ -278,5 +278,5 @@ index 97ec1ff3e5..31fa0eafc6 100644
|
||||
"pss",
|
||||
4096,
|
||||
--
|
||||
2.50.0
|
||||
2.52.0
|
||||
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
From c031855ff636806e7811513779e494b92808a1e4 Mon Sep 17 00:00:00 2001
|
||||
From 83b5a2e3a74780873c8831fd8e3cc6bde0006820 Mon Sep 17 00:00:00 2001
|
||||
From: Simo Sorce <simo@redhat.com>
|
||||
Date: Wed, 12 Feb 2025 17:12:02 -0500
|
||||
Subject: [PATCH 30/53] FIPS: RSA: NEEDS-REWORK:
|
||||
Subject: [PATCH 30/57] FIPS: RSA: NEEDS-REWORK:
|
||||
FIPS-Use-OAEP-in-KATs-support-fixed-OAEP-seed
|
||||
|
||||
Signed-off-by: Simo Sorce <simo@redhat.com>
|
||||
@ -383,5 +383,5 @@ index 0000000000..2833a383c1
|
||||
+--
|
||||
+
|
||||
--
|
||||
2.50.0
|
||||
2.52.0
|
||||
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
From 5fd8ab23690e661f785336b95799e74b39089790 Mon Sep 17 00:00:00 2001
|
||||
From 7061b3b659e0386efa58d9dfb94a4f84832884d0 Mon Sep 17 00:00:00 2001
|
||||
From: rpm-build <rpm-build>
|
||||
Date: Wed, 6 Mar 2024 19:17:15 +0100
|
||||
Subject: [PATCH 31/53] FIPS: Deny SHA-1 signature verification
|
||||
Subject: [PATCH 31/57] FIPS: Deny SHA-1 signature verification
|
||||
|
||||
For RHEL, we already disable SHA-1 signatures by default in the default
|
||||
provider, so it is unexpected that the FIPS provider would have a more
|
||||
@ -31,62 +31,65 @@ Signed-off-by: Clemens Lang <cllang@redhat.com>
|
||||
Bug Id: https://bugzilla.redhat.com/show_bug.cgi?id=2087147
|
||||
From-dist-git-commit: 4334bc837fbc64d14890fdc51679a80770d498ce
|
||||
---
|
||||
providers/implementations/signature/dsa_sig.c | 4 +-
|
||||
.../implementations/signature/ecdsa_sig.c | 4 +-
|
||||
providers/implementations/signature/rsa_sig.c | 8 ++-
|
||||
providers/implementations/signature/dsa_sig.c | 5 +-
|
||||
.../implementations/signature/ecdsa_sig.c | 5 +-
|
||||
providers/implementations/signature/rsa_sig.c | 9 +--
|
||||
.../30-test_evp_data/evppkey_ecdsa.txt | 11 +++-
|
||||
.../30-test_evp_data/evppkey_ecdsa_sigalg.txt | 64 ++++++++++++++++---
|
||||
.../30-test_evp_data/evppkey_rsa_common.txt | 58 +++++++++++++++--
|
||||
test/recipes/80-test_cms.t | 4 +-
|
||||
test/recipes/80-test_ssl_old.t | 4 ++
|
||||
8 files changed, 130 insertions(+), 27 deletions(-)
|
||||
8 files changed, 130 insertions(+), 30 deletions(-)
|
||||
|
||||
diff --git a/providers/implementations/signature/dsa_sig.c b/providers/implementations/signature/dsa_sig.c
|
||||
index 52ed52482d..0d3050dbe9 100644
|
||||
index 31a89133a3..0de750c247 100644
|
||||
--- a/providers/implementations/signature/dsa_sig.c
|
||||
+++ b/providers/implementations/signature/dsa_sig.c
|
||||
@@ -187,9 +187,7 @@ static int dsa_setup_md(PROV_DSA_CTX *ctx,
|
||||
@@ -187,10 +187,7 @@ static int dsa_setup_md(PROV_DSA_CTX *ctx,
|
||||
}
|
||||
#ifdef FIPS_MODULE
|
||||
{
|
||||
- int sha1_allowed
|
||||
- = ((ctx->operation
|
||||
- & (EVP_PKEY_OP_SIGN | EVP_PKEY_OP_SIGNMSG)) == 0);
|
||||
- & (EVP_PKEY_OP_SIGN | EVP_PKEY_OP_SIGNMSG))
|
||||
- == 0);
|
||||
+ int sha1_allowed = 0;
|
||||
|
||||
if (!ossl_fips_ind_digest_sign_check(OSSL_FIPS_IND_GET(ctx),
|
||||
OSSL_FIPS_IND_SETTABLE1,
|
||||
OSSL_FIPS_IND_SETTABLE1,
|
||||
diff --git a/providers/implementations/signature/ecdsa_sig.c b/providers/implementations/signature/ecdsa_sig.c
|
||||
index 04d4009ab5..4e46eaf9bc 100644
|
||||
index 2a4faf4a71..f5c101005f 100644
|
||||
--- a/providers/implementations/signature/ecdsa_sig.c
|
||||
+++ b/providers/implementations/signature/ecdsa_sig.c
|
||||
@@ -214,9 +214,7 @@ static int ecdsa_setup_md(PROV_ECDSA_CTX *ctx,
|
||||
@@ -214,10 +214,7 @@ static int ecdsa_setup_md(PROV_ECDSA_CTX *ctx,
|
||||
|
||||
#ifdef FIPS_MODULE
|
||||
{
|
||||
- int sha1_allowed
|
||||
- = ((ctx->operation
|
||||
- & (EVP_PKEY_OP_SIGN | EVP_PKEY_OP_SIGNMSG)) == 0);
|
||||
- & (EVP_PKEY_OP_SIGN | EVP_PKEY_OP_SIGNMSG))
|
||||
- == 0);
|
||||
+ int sha1_allowed = 0;
|
||||
|
||||
if (!ossl_fips_ind_digest_sign_check(OSSL_FIPS_IND_GET(ctx),
|
||||
OSSL_FIPS_IND_SETTABLE1,
|
||||
OSSL_FIPS_IND_SETTABLE1,
|
||||
diff --git a/providers/implementations/signature/rsa_sig.c b/providers/implementations/signature/rsa_sig.c
|
||||
index 09c202f87c..014b17fe49 100644
|
||||
index f38431fd60..e90ce3c223 100644
|
||||
--- a/providers/implementations/signature/rsa_sig.c
|
||||
+++ b/providers/implementations/signature/rsa_sig.c
|
||||
@@ -407,9 +407,7 @@ static int rsa_setup_md(PROV_RSA_CTX *ctx, const char *mdname,
|
||||
@@ -407,10 +407,7 @@ static int rsa_setup_md(PROV_RSA_CTX *ctx, const char *mdname,
|
||||
}
|
||||
#ifdef FIPS_MODULE
|
||||
{
|
||||
- int sha1_allowed
|
||||
- = ((ctx->operation
|
||||
- & (EVP_PKEY_OP_SIGN | EVP_PKEY_OP_SIGNMSG)) == 0);
|
||||
- & (EVP_PKEY_OP_SIGN | EVP_PKEY_OP_SIGNMSG))
|
||||
- == 0);
|
||||
+ int sha1_allowed = 0;
|
||||
|
||||
if (!ossl_fips_ind_digest_sign_check(OSSL_FIPS_IND_GET(ctx),
|
||||
OSSL_FIPS_IND_SETTABLE1,
|
||||
@@ -1795,11 +1793,15 @@ static int rsa_set_ctx_params(void *vprsactx, const OSSL_PARAM params[])
|
||||
OSSL_FIPS_IND_SETTABLE1,
|
||||
@@ -1790,11 +1787,15 @@ static int rsa_set_ctx_params(void *vprsactx, const OSSL_PARAM params[])
|
||||
|
||||
if (prsactx->md == NULL && pmdname == NULL
|
||||
&& pad_mode == RSA_PKCS1_PSS_PADDING) {
|
||||
@ -103,7 +106,7 @@ index 09c202f87c..014b17fe49 100644
|
||||
|
||||
if (pmgf1mdname != NULL
|
||||
diff --git a/test/recipes/30-test_evp_data/evppkey_ecdsa.txt b/test/recipes/30-test_evp_data/evppkey_ecdsa.txt
|
||||
index 06ec905be0..1602f0c521 100644
|
||||
index 4c47fa68c2..484668440f 100644
|
||||
--- a/test/recipes/30-test_evp_data/evppkey_ecdsa.txt
|
||||
+++ b/test/recipes/30-test_evp_data/evppkey_ecdsa.txt
|
||||
@@ -37,12 +37,14 @@ PrivPubKeyPair = P-256:P-256-PUBLIC
|
||||
@ -176,8 +179,8 @@ index 06ec905be0..1602f0c521 100644
|
||||
-Result = KEYOP_MISMATCH
|
||||
+Result = PKEY_CTRL_ERROR
|
||||
|
||||
Title = XOF disallowed
|
||||
|
||||
FIPSversion = >=3.6.0
|
||||
Sign = P-256
|
||||
diff --git a/test/recipes/30-test_evp_data/evppkey_ecdsa_sigalg.txt b/test/recipes/30-test_evp_data/evppkey_ecdsa_sigalg.txt
|
||||
index 0ff482e4e8..d407ea1ca8 100644
|
||||
--- a/test/recipes/30-test_evp_data/evppkey_ecdsa_sigalg.txt
|
||||
@ -660,10 +663,10 @@ index 972e90f32f..61e2b4e3ac 100644
|
||||
Availablein = fips
|
||||
FIPSversion = >=3.4.0
|
||||
diff --git a/test/recipes/80-test_cms.t b/test/recipes/80-test_cms.t
|
||||
index d13dceaac5..ece29485f4 100644
|
||||
index c278987186..91283c5e74 100644
|
||||
--- a/test/recipes/80-test_cms.t
|
||||
+++ b/test/recipes/80-test_cms.t
|
||||
@@ -174,7 +174,7 @@ my @smime_pkcs7_tests = (
|
||||
@@ -183,7 +183,7 @@ my @smime_pkcs7_tests = (
|
||||
[ "{cmd1}", @defaultprov, "-sign", "-in", $smcont, "-md", "sha1",
|
||||
"-certfile", $smroot,
|
||||
"-signer", $smrsa1, "-out", "{output}.cms" ],
|
||||
@ -672,7 +675,7 @@ index d13dceaac5..ece29485f4 100644
|
||||
"-CAfile", $smroot, "-out", "{output}.txt" ],
|
||||
\&final_compare
|
||||
],
|
||||
@@ -182,7 +182,7 @@ my @smime_pkcs7_tests = (
|
||||
@@ -191,7 +191,7 @@ my @smime_pkcs7_tests = (
|
||||
[ "signed zero-length content S/MIME format, RSA key SHA1",
|
||||
[ "{cmd1}", @defaultprov, "-sign", "-in", $smcont_zero, "-md", "sha1",
|
||||
"-certfile", $smroot, "-signer", $smrsa1, "-out", "{output}.cms" ],
|
||||
@ -704,5 +707,5 @@ index 568a1ddba4..6332aaec4b 100755
|
||||
SKIP: {
|
||||
skip "No IPv4 available on this machine", 4
|
||||
--
|
||||
2.50.0
|
||||
2.52.0
|
||||
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
From 85acc91ca970f6509e67c93b46be12cf261bd3ad Mon Sep 17 00:00:00 2001
|
||||
From 80a4d4da42db9711d06953f4dcd6e9f29c001292 Mon Sep 17 00:00:00 2001
|
||||
From: rpm-build <rpm-build>
|
||||
Date: Wed, 6 Mar 2024 19:17:16 +0100
|
||||
Subject: [PATCH 32/53] FIPS: RAND: FIPS-140-3 DRBG - NEEDS REVIEW
|
||||
Subject: [PATCH 32/57] FIPS: RAND: FIPS-140-3 DRBG - NEEDS REVIEW
|
||||
|
||||
providers/implementations/rands/crngt.c is gone
|
||||
|
||||
@ -14,11 +14,11 @@ From-dist-git-commit: 4334bc837fbc64d14890fdc51679a80770d498ce
|
||||
---
|
||||
crypto/rand/prov_seed.c | 9 ++-
|
||||
providers/implementations/rands/drbg.c | 11 ++-
|
||||
.../implementations/rands/seeding/rand_unix.c | 68 ++-----------------
|
||||
3 files changed, 22 insertions(+), 66 deletions(-)
|
||||
.../implementations/rands/seeding/rand_unix.c | 70 ++-----------------
|
||||
3 files changed, 23 insertions(+), 67 deletions(-)
|
||||
|
||||
diff --git a/crypto/rand/prov_seed.c b/crypto/rand/prov_seed.c
|
||||
index 2985c7f2d8..3202a28226 100644
|
||||
index 8466ded8ab..24feab20e5 100644
|
||||
--- a/crypto/rand/prov_seed.c
|
||||
+++ b/crypto/rand/prov_seed.c
|
||||
@@ -23,7 +23,14 @@ size_t ossl_rand_get_entropy(ossl_unused OSSL_LIB_CTX *ctx,
|
||||
@ -38,10 +38,10 @@ index 2985c7f2d8..3202a28226 100644
|
||||
ERR_raise(ERR_LIB_RAND, ERR_R_RAND_LIB);
|
||||
return 0;
|
||||
diff --git a/providers/implementations/rands/drbg.c b/providers/implementations/rands/drbg.c
|
||||
index 4925a3b400..1cdb67b22c 100644
|
||||
index f9d90d5d43..6b23d55cf5 100644
|
||||
--- a/providers/implementations/rands/drbg.c
|
||||
+++ b/providers/implementations/rands/drbg.c
|
||||
@@ -559,6 +559,9 @@ static int ossl_prov_drbg_reseed_unlocked(PROV_DRBG *drbg,
|
||||
@@ -556,6 +556,9 @@ static int ossl_prov_drbg_reseed_unlocked(PROV_DRBG *drbg,
|
||||
#endif
|
||||
}
|
||||
|
||||
@ -50,13 +50,13 @@ index 4925a3b400..1cdb67b22c 100644
|
||||
+#endif
|
||||
/* Reseed using our sources in addition */
|
||||
entropylen = get_entropy(drbg, &entropy, drbg->strength,
|
||||
drbg->min_entropylen, drbg->max_entropylen,
|
||||
@@ -680,8 +683,14 @@ int ossl_prov_drbg_generate(PROV_DRBG *drbg, unsigned char *out, size_t outlen,
|
||||
drbg->min_entropylen, drbg->max_entropylen,
|
||||
@@ -677,8 +680,14 @@ int ossl_prov_drbg_generate(PROV_DRBG *drbg, unsigned char *out, size_t outlen,
|
||||
reseed_required = 1;
|
||||
}
|
||||
if (drbg->parent != NULL
|
||||
- && get_parent_reseed_count(drbg) != drbg->parent_reseed_counter)
|
||||
+ && get_parent_reseed_count(drbg) != drbg->parent_reseed_counter) {
|
||||
- && get_parent_reseed_count(drbg) != drbg->parent_reseed_counter)
|
||||
+ && get_parent_reseed_count(drbg) != drbg->parent_reseed_counter) {
|
||||
+#ifdef FIPS_MODULE
|
||||
+ /* Red Hat patches provide chain reseeding when necessary so just sync counters*/
|
||||
+ drbg->parent_reseed_counter = get_parent_reseed_count(drbg);
|
||||
@ -68,19 +68,26 @@ index 4925a3b400..1cdb67b22c 100644
|
||||
if (reseed_required || prediction_resistance) {
|
||||
if (!ossl_prov_drbg_reseed_unlocked(drbg, prediction_resistance, NULL,
|
||||
diff --git a/providers/implementations/rands/seeding/rand_unix.c b/providers/implementations/rands/seeding/rand_unix.c
|
||||
index c3a5d8b3bf..b7b34a9345 100644
|
||||
index 80ae817313..1e73a1ec28 100644
|
||||
--- a/providers/implementations/rands/seeding/rand_unix.c
|
||||
+++ b/providers/implementations/rands/seeding/rand_unix.c
|
||||
@@ -53,6 +53,8 @@
|
||||
# include <fcntl.h>
|
||||
# include <unistd.h>
|
||||
# include <sys/time.h>
|
||||
+# include <sys/random.h>
|
||||
+# include <openssl/evp.h>
|
||||
@@ -47,12 +47,14 @@
|
||||
#endif
|
||||
|
||||
#if (defined(OPENSSL_SYS_UNIX) && !defined(OPENSSL_SYS_VXWORKS)) \
|
||||
- || defined(__DJGPP__)
|
||||
+ || defined(__DJGPP__)
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
#include <fcntl.h>
|
||||
#include <unistd.h>
|
||||
#include <sys/time.h>
|
||||
+#include <sys/random.h>
|
||||
+#include <openssl/evp.h>
|
||||
|
||||
static uint64_t get_time_stamp(void);
|
||||
|
||||
@@ -339,70 +341,8 @@ static ssize_t syscall_random(void *buf, size_t buflen)
|
||||
@@ -338,70 +340,8 @@ static ssize_t syscall_random(void *buf, size_t buflen)
|
||||
* which is way below the OSSL_SSIZE_MAX limit. Therefore sign conversion
|
||||
* between size_t and ssize_t is safe even without a range check.
|
||||
*/
|
||||
@ -97,8 +104,8 @@ index c3a5d8b3bf..b7b34a9345 100644
|
||||
- * Note: Sometimes getentropy() can be provided but not implemented
|
||||
- * internally. So we need to check errno for ENOSYS
|
||||
- */
|
||||
-# if !defined(__DragonFly__) && !defined(__NetBSD__) && !defined(__FreeBSD__)
|
||||
-# if defined(__GNUC__) && __GNUC__>=2 && defined(__ELF__) && !defined(__hpux)
|
||||
-#if !defined(__DragonFly__) && !defined(__NetBSD__) && !defined(__FreeBSD__)
|
||||
-#if defined(__GNUC__) && __GNUC__ >= 2 && defined(__ELF__) && !defined(__hpux)
|
||||
- extern int getentropy(void *buffer, size_t length) __attribute__((weak));
|
||||
-
|
||||
- if (getentropy != NULL) {
|
||||
@ -107,13 +114,13 @@ index c3a5d8b3bf..b7b34a9345 100644
|
||||
- if (errno != ENOSYS)
|
||||
- return -1;
|
||||
- }
|
||||
-# elif defined(OPENSSL_APPLE_CRYPTO_RANDOM)
|
||||
-#elif defined(OPENSSL_APPLE_CRYPTO_RANDOM)
|
||||
-
|
||||
- if (CCRandomGenerateBytes(buf, buflen) == kCCSuccess)
|
||||
- return (ssize_t)buflen;
|
||||
- return (ssize_t)buflen;
|
||||
-
|
||||
- return -1;
|
||||
-# else
|
||||
-#else
|
||||
- union {
|
||||
- void *p;
|
||||
- int (*f)(void *buffer, size_t length);
|
||||
@ -128,31 +135,31 @@ index c3a5d8b3bf..b7b34a9345 100644
|
||||
- ERR_pop_to_mark();
|
||||
- if (p_getentropy.p != NULL)
|
||||
- return p_getentropy.f(buf, buflen) == 0 ? (ssize_t)buflen : -1;
|
||||
-# endif
|
||||
-# endif /* !__DragonFly__ && !__NetBSD__ && !__FreeBSD__ */
|
||||
-#endif
|
||||
-#endif /* !__DragonFly__ && !__NetBSD__ && !__FreeBSD__ */
|
||||
-
|
||||
- /* Linux supports this since version 3.17 */
|
||||
-# if defined(__linux) && defined(__NR_getrandom)
|
||||
-#if defined(__linux) && defined(__NR_getrandom)
|
||||
- return syscall(__NR_getrandom, buf, buflen, 0);
|
||||
-# elif (defined(__DragonFly__) && __DragonFly_version >= 500700) \
|
||||
- || (defined(__NetBSD__) && __NetBSD_Version >= 1000000000) \
|
||||
- || (defined(__FreeBSD__) && __FreeBSD_version >= 1200061)
|
||||
-#elif (defined(__DragonFly__) && __DragonFly_version >= 500700) \
|
||||
- || (defined(__NetBSD__) && __NetBSD_Version >= 1000000000) \
|
||||
- || (defined(__FreeBSD__) && __FreeBSD_version >= 1200061)
|
||||
- return getrandom(buf, buflen, 0);
|
||||
-# elif (defined(__FreeBSD__) || defined(__NetBSD__)) && defined(KERN_ARND)
|
||||
-#elif (defined(__FreeBSD__) || defined(__NetBSD__)) && defined(KERN_ARND)
|
||||
- return sysctl_random(buf, buflen);
|
||||
-# elif defined(__wasi__)
|
||||
-#elif defined(__wasi__)
|
||||
- if (getentropy(buf, buflen) == 0)
|
||||
- return (ssize_t)buflen;
|
||||
- return (ssize_t)buflen;
|
||||
- return -1;
|
||||
-# else
|
||||
-#else
|
||||
- errno = ENOSYS;
|
||||
- return -1;
|
||||
-# endif
|
||||
-#endif
|
||||
+ /* Red Hat uses downstream patch to always seed from getrandom() */
|
||||
+ return EVP_default_properties_is_fips_enabled(NULL) ? getrandom(buf, buflen, GRND_RANDOM) : getrandom(buf, buflen, 0);
|
||||
}
|
||||
# endif /* defined(OPENSSL_RAND_SEED_GETRANDOM) */
|
||||
#endif /* defined(OPENSSL_RAND_SEED_GETRANDOM) */
|
||||
|
||||
--
|
||||
2.50.0
|
||||
2.52.0
|
||||
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
From d2369dfc75e2b121650bc51f5ac3e0e7c9b75a29 Mon Sep 17 00:00:00 2001
|
||||
From 2d385a2615dd7c6f33f824183ec6f65ef2c9327c Mon Sep 17 00:00:00 2001
|
||||
From: rpm-build <rpm-build>
|
||||
Date: Wed, 6 Mar 2024 19:17:16 +0100
|
||||
Subject: [PATCH 33/53] FIPS: RAND: Forbid truncated hashes & SHA-3
|
||||
Subject: [PATCH 33/57] FIPS: RAND: Forbid truncated hashes & SHA-3
|
||||
|
||||
Section D.R "Hash Functions Acceptable for Use in the SP 800-90A DRBGs"
|
||||
of the Implementation Guidance for FIPS 140-3 [1] notes that there is no
|
||||
@ -30,12 +30,12 @@ From-dist-git-commit: 4334bc837fbc64d14890fdc51679a80770d498ce
|
||||
3 files changed, 187 insertions(+), 34 deletions(-)
|
||||
|
||||
diff --git a/providers/implementations/rands/drbg_hash.c b/providers/implementations/rands/drbg_hash.c
|
||||
index 8bb831ae35..cedf5c3894 100644
|
||||
index 92eb443c6e..a63b21eade 100644
|
||||
--- a/providers/implementations/rands/drbg_hash.c
|
||||
+++ b/providers/implementations/rands/drbg_hash.c
|
||||
@@ -579,6 +579,18 @@ static int drbg_hash_set_ctx_params_locked(void *vctx, const OSSL_PARAM params[]
|
||||
if (!ossl_drbg_verify_digest(ctx, libctx, md))
|
||||
return 0; /* Error already raised for us */
|
||||
return 0; /* Error already raised for us */
|
||||
|
||||
+#ifdef FIPS_MODULE
|
||||
+ if (!EVP_MD_is_a(md, SN_sha1)
|
||||
@ -53,12 +53,12 @@ index 8bb831ae35..cedf5c3894 100644
|
||||
md_size = EVP_MD_get_size(md);
|
||||
if (md_size <= 0)
|
||||
diff --git a/providers/implementations/rands/drbg_hmac.c b/providers/implementations/rands/drbg_hmac.c
|
||||
index 43b3f8766e..64b7610cd1 100644
|
||||
index ff8a6cd6f0..d041897bb8 100644
|
||||
--- a/providers/implementations/rands/drbg_hmac.c
|
||||
+++ b/providers/implementations/rands/drbg_hmac.c
|
||||
@@ -505,6 +505,18 @@ static int drbg_hmac_set_ctx_params_locked(void *vctx, const OSSL_PARAM params[]
|
||||
@@ -522,6 +522,18 @@ static int drbg_hmac_set_ctx_params_locked(void *vctx, const OSSL_PARAM params[]
|
||||
if (md != NULL && !ossl_drbg_verify_digest(ctx, libctx, md))
|
||||
return 0; /* Error already raised for us */
|
||||
return 0; /* Error already raised for us */
|
||||
|
||||
+#ifdef FIPS_MODULE
|
||||
+ if (!EVP_MD_is_a(md, SN_sha1)
|
||||
@ -1191,5 +1191,5 @@ index 9756859c0e..9baecf6f31 100644
|
||||
+#Nonce.0 = 15e32abbae6b7433
|
||||
+#Output.0 = ee9f
|
||||
--
|
||||
2.50.0
|
||||
2.52.0
|
||||
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
From 1a83f0de8b9aaa1cf5727f0599b089346ffd89f4 Mon Sep 17 00:00:00 2001
|
||||
From 0be17f1220667a7c7758e10dead4be80d521b3fc Mon Sep 17 00:00:00 2001
|
||||
From: rpm-build <rpm-build>
|
||||
Date: Wed, 6 Mar 2024 19:17:17 +0100
|
||||
Subject: [PATCH 34/53] FIPS: PBKDF2: Set minimum password length
|
||||
Subject: [PATCH 34/57] FIPS: PBKDF2: Set minimum password length
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
@ -30,13 +30,13 @@ From-dist-git-commit: 4334bc837fbc64d14890fdc51679a80770d498ce
|
||||
1 file changed, 33 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/providers/implementations/kdfs/pbkdf2.c b/providers/implementations/kdfs/pbkdf2.c
|
||||
index b383314064..68f9355b7d 100644
|
||||
index 581c8f8799..cc15db4c73 100644
|
||||
--- a/providers/implementations/kdfs/pbkdf2.c
|
||||
+++ b/providers/implementations/kdfs/pbkdf2.c
|
||||
@@ -36,6 +36,21 @@
|
||||
#define KDF_PBKDF2_MAX_KEY_LEN_DIGEST_RATIO 0xFFFFFFFF
|
||||
#define KDF_PBKDF2_MIN_ITERATIONS 1000
|
||||
#define KDF_PBKDF2_MIN_SALT_LEN (128 / 8)
|
||||
#define KDF_PBKDF2_MIN_SALT_LEN (128 / 8)
|
||||
+/* The Implementation Guidance for FIPS 140-3 says in section D.N
|
||||
+ * "Password-Based Key Derivation for Storage Applications" that "the vendor
|
||||
+ * shall document in the module’s Security Policy the length of
|
||||
@ -59,10 +59,10 @@ index b383314064..68f9355b7d 100644
|
||||
}
|
||||
|
||||
static int pbkdf2_lower_bound_check_passed(int saltlen, uint64_t iter,
|
||||
- size_t keylen, int *error,
|
||||
- const char **desc)
|
||||
+ size_t keylen, size_t passlen,
|
||||
+ int *error, const char **desc)
|
||||
- size_t keylen, int *error,
|
||||
- const char **desc)
|
||||
+ size_t keylen, size_t passlen,
|
||||
+ int *error, const char **desc)
|
||||
{
|
||||
if ((keylen * 8) < KDF_PBKDF2_MIN_KEY_LEN_BITS) {
|
||||
*error = PROV_R_KEY_SIZE_TOO_SMALL;
|
||||
@ -84,9 +84,9 @@ index b383314064..68f9355b7d 100644
|
||||
int error = 0;
|
||||
const char *desc = NULL;
|
||||
int approved = pbkdf2_lower_bound_check_passed(ctx->salt_len, ctx->iter,
|
||||
- keylen, &error, &desc);
|
||||
+ keylen, ctx->pass_len,
|
||||
+ &error, &desc);
|
||||
- keylen, &error, &desc);
|
||||
+ keylen, ctx->pass_len,
|
||||
+ &error, &desc);
|
||||
|
||||
if (!approved) {
|
||||
if (!OSSL_FIPS_IND_ON_UNAPPROVED(ctx, OSSL_FIPS_IND_SETTABLE0, libctx,
|
||||
@ -111,11 +111,11 @@ index b383314064..68f9355b7d 100644
|
||||
if (lower_bound_checks) {
|
||||
int error = 0;
|
||||
int passed = pbkdf2_lower_bound_check_passed(saltlen, iter, keylen,
|
||||
- &error, NULL);
|
||||
+ passlen, &error, NULL);
|
||||
- &error, NULL);
|
||||
+ passlen, &error, NULL);
|
||||
|
||||
if (!passed) {
|
||||
ERR_raise(ERR_LIB_PROV, error);
|
||||
--
|
||||
2.50.0
|
||||
2.52.0
|
||||
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
From 5276208d8cb9a1504ec5a4f9a9d554daf7918731 Mon Sep 17 00:00:00 2001
|
||||
From a1ee967fae9cb6f4a06d4ffbcd62c6efd9ac05f0 Mon Sep 17 00:00:00 2001
|
||||
From: Simo Sorce <simo@redhat.com>
|
||||
Date: Mon, 24 Mar 2025 10:49:00 -0400
|
||||
Subject: [PATCH 35/53] FIPS: DH: PCT
|
||||
Subject: [PATCH 35/57] FIPS: DH: PCT
|
||||
|
||||
Signed-off-by: Simo Sorce <simo@redhat.com>
|
||||
---
|
||||
@ -9,7 +9,7 @@ Signed-off-by: Simo Sorce <simo@redhat.com>
|
||||
1 file changed, 26 insertions(+)
|
||||
|
||||
diff --git a/crypto/dh/dh_key.c b/crypto/dh/dh_key.c
|
||||
index 7132b9b68e..189bfc3e8b 100644
|
||||
index 2d9f7a8100..ae47dc2cd9 100644
|
||||
--- a/crypto/dh/dh_key.c
|
||||
+++ b/crypto/dh/dh_key.c
|
||||
@@ -43,6 +43,9 @@ int ossl_dh_compute_key(unsigned char *key, const BIGNUM *pub_key, DH *dh)
|
||||
@ -46,7 +46,7 @@ index 7132b9b68e..189bfc3e8b 100644
|
||||
|
||||
if (BN_num_bits(dh->params.p) > OPENSSL_DH_MAX_MODULUS_BITS) {
|
||||
ERR_raise(ERR_LIB_DH, DH_R_MODULUS_TOO_LARGE);
|
||||
@@ -369,8 +382,21 @@ static int generate_key(DH *dh)
|
||||
@@ -370,8 +383,21 @@ static int generate_key(DH *dh)
|
||||
if (!ossl_dh_generate_public_key(ctx, dh, priv_key, pub_key))
|
||||
goto err;
|
||||
|
||||
@ -60,14 +60,14 @@ index 7132b9b68e..189bfc3e8b 100644
|
||||
dh->pub_key = pub_key;
|
||||
dh->priv_key = priv_key;
|
||||
+#ifdef FIPS_MODULE
|
||||
+ if (ossl_dh_check_pairwise(dh) <= 0) {
|
||||
+ if (ossl_dh_check_pairwise(dh, 0) <= 0) {
|
||||
+ abort();
|
||||
+ }
|
||||
+#endif
|
||||
+
|
||||
dh->dirty_cnt++;
|
||||
ok = 1;
|
||||
err:
|
||||
err:
|
||||
--
|
||||
2.50.0
|
||||
2.52.0
|
||||
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
From ad3ca70961e0067afd8c8b386fdcc61a576ac11b Mon Sep 17 00:00:00 2001
|
||||
From a7ddcb6ceef64c92b5c21389900477bc3a38f46d Mon Sep 17 00:00:00 2001
|
||||
From: rpm-build <rpm-build>
|
||||
Date: Wed, 6 Mar 2024 19:17:17 +0100
|
||||
Subject: [PATCH 36/53] FIPS: DH: Disable FIPS 186-4 type parameters
|
||||
Subject: [PATCH 36/57] FIPS: DH: Disable FIPS 186-4 type parameters
|
||||
|
||||
For DH parameter and key pair generation/verification, the DSA
|
||||
procedures specified in FIPS 186-4 are used. With the release of FIPS
|
||||
@ -29,17 +29,17 @@ NOTE: Dropped changes in test/recipes/80-test_cms.t
|
||||
crypto/dh/dh_check.c | 12 ++--
|
||||
crypto/dh/dh_gen.c | 12 +++-
|
||||
crypto/dh/dh_key.c | 13 ++--
|
||||
crypto/dh/dh_pmeth.c | 10 +++-
|
||||
crypto/dh/dh_pmeth.c | 16 +++--
|
||||
providers/implementations/keymgmt/dh_kmgmt.c | 5 ++
|
||||
test/endecode_test.c | 4 +-
|
||||
test/evp_libctx_test.c | 2 +-
|
||||
test/helpers/predefined_dhparams.c | 62 ++++++++++++++++++++
|
||||
test/helpers/predefined_dhparams.h | 1 +
|
||||
test/recipes/80-test_ssl_old.t | 3 +
|
||||
11 files changed, 116 insertions(+), 18 deletions(-)
|
||||
11 files changed, 119 insertions(+), 21 deletions(-)
|
||||
|
||||
diff --git a/crypto/dh/dh_backend.c b/crypto/dh/dh_backend.c
|
||||
index 1aaa88daca..aa3a491799 100644
|
||||
index f68429862c..00b229a295 100644
|
||||
--- a/crypto/dh/dh_backend.c
|
||||
+++ b/crypto/dh/dh_backend.c
|
||||
@@ -47,6 +47,16 @@ int ossl_dh_params_fromdata(DH *dh, const OSSL_PARAM params[])
|
||||
@ -56,14 +56,14 @@ index 1aaa88daca..aa3a491799 100644
|
||||
+ }
|
||||
+#endif
|
||||
+
|
||||
param_priv_len =
|
||||
OSSL_PARAM_locate_const(params, OSSL_PKEY_PARAM_DH_PRIV_LEN);
|
||||
param_priv_len = OSSL_PARAM_locate_const(params, OSSL_PKEY_PARAM_DH_PRIV_LEN);
|
||||
if (param_priv_len != NULL
|
||||
&& (!OSSL_PARAM_get_long(param_priv_len, &priv_len)
|
||||
diff --git a/crypto/dh/dh_check.c b/crypto/dh/dh_check.c
|
||||
index ae23f61839..6e30a9b735 100644
|
||||
index 3002609b68..2aabdd2908 100644
|
||||
--- a/crypto/dh/dh_check.c
|
||||
+++ b/crypto/dh/dh_check.c
|
||||
@@ -57,13 +57,15 @@ int DH_check_params(const DH *dh, int *ret)
|
||||
@@ -58,13 +58,15 @@ int DH_check_params(const DH *dh, int *ret)
|
||||
nid = DH_get_nid((DH *)dh);
|
||||
if (nid != NID_undef)
|
||||
return 1;
|
||||
@ -75,7 +75,7 @@ index ae23f61839..6e30a9b735 100644
|
||||
+ * FIPS 186-4 explicit domain parameters are no longer supported in FIPS mode.
|
||||
*/
|
||||
- return ossl_ffc_params_FIPS186_4_validate(dh->libctx, &dh->params,
|
||||
- FFC_PARAM_TYPE_DH, ret, NULL);
|
||||
- FFC_PARAM_TYPE_DH, ret, NULL);
|
||||
+ ERR_raise_data(ERR_LIB_DH, DH_R_BAD_FFC_PARAMETERS,
|
||||
+ "FIPS 186-4 type domain parameters no longer allowed in"
|
||||
+ " FIPS mode, since the required validation routines were"
|
||||
@ -85,12 +85,12 @@ index ae23f61839..6e30a9b735 100644
|
||||
#else
|
||||
int DH_check_params(const DH *dh, int *ret)
|
||||
diff --git a/crypto/dh/dh_gen.c b/crypto/dh/dh_gen.c
|
||||
index b73bfb7f3b..275ce2c1af 100644
|
||||
index 094b6e70c7..d0c1fc5367 100644
|
||||
--- a/crypto/dh/dh_gen.c
|
||||
+++ b/crypto/dh/dh_gen.c
|
||||
@@ -39,18 +39,26 @@ static int dh_builtin_genparams(DH *ret, int prime_len, int generator,
|
||||
int ossl_dh_generate_ffc_parameters(DH *dh, int type, int pbits, int qbits,
|
||||
BN_GENCB *cb)
|
||||
BN_GENCB *cb)
|
||||
{
|
||||
- int ret, res;
|
||||
+ int ret = 0;
|
||||
@ -100,13 +100,13 @@ index b73bfb7f3b..275ce2c1af 100644
|
||||
+
|
||||
if (type == DH_PARAMGEN_TYPE_FIPS_186_2)
|
||||
ret = ossl_ffc_params_FIPS186_2_generate(dh->libctx, &dh->params,
|
||||
FFC_PARAM_TYPE_DH,
|
||||
pbits, qbits, &res, cb);
|
||||
FFC_PARAM_TYPE_DH,
|
||||
pbits, qbits, &res, cb);
|
||||
else
|
||||
-#endif
|
||||
ret = ossl_ffc_params_FIPS186_4_generate(dh->libctx, &dh->params,
|
||||
FFC_PARAM_TYPE_DH,
|
||||
pbits, qbits, &res, cb);
|
||||
FFC_PARAM_TYPE_DH,
|
||||
pbits, qbits, &res, cb);
|
||||
+#else
|
||||
+ /* In FIPS mode, we no longer support FIPS 186-4 domain parameters */
|
||||
+ ERR_raise_data(ERR_LIB_DH, DH_R_BAD_FFC_PARAMETERS,
|
||||
@ -118,10 +118,10 @@ index b73bfb7f3b..275ce2c1af 100644
|
||||
dh->dirty_cnt++;
|
||||
return ret;
|
||||
diff --git a/crypto/dh/dh_key.c b/crypto/dh/dh_key.c
|
||||
index 189bfc3e8b..023d628502 100644
|
||||
index ae47dc2cd9..4ddc1b83c7 100644
|
||||
--- a/crypto/dh/dh_key.c
|
||||
+++ b/crypto/dh/dh_key.c
|
||||
@@ -336,8 +336,12 @@ static int generate_key(DH *dh)
|
||||
@@ -335,8 +335,12 @@ static int generate_key(DH *dh)
|
||||
goto err;
|
||||
} else {
|
||||
#ifdef FIPS_MODULE
|
||||
@ -135,8 +135,8 @@ index 189bfc3e8b..023d628502 100644
|
||||
+ goto err;
|
||||
#else
|
||||
if (dh->params.q == NULL) {
|
||||
/* secret exponent length, must satisfy 2^(l-1) <= p */
|
||||
@@ -358,9 +362,7 @@ static int generate_key(DH *dh)
|
||||
/* secret exponent length, must satisfy 2^l < (p-1)/2 */
|
||||
@@ -359,9 +363,7 @@ static int generate_key(DH *dh)
|
||||
if (!BN_clear_bit(priv_key, 0))
|
||||
goto err;
|
||||
}
|
||||
@ -146,9 +146,9 @@ index 189bfc3e8b..023d628502 100644
|
||||
+ } else {
|
||||
/* Do a partial check for invalid p, q, g */
|
||||
if (!ossl_ffc_params_simple_validate(dh->libctx, &dh->params,
|
||||
FFC_PARAM_TYPE_DH, NULL))
|
||||
@@ -376,6 +378,7 @@ static int generate_key(DH *dh)
|
||||
priv_key))
|
||||
FFC_PARAM_TYPE_DH, NULL))
|
||||
@@ -377,6 +379,7 @@ static int generate_key(DH *dh)
|
||||
priv_key))
|
||||
goto err;
|
||||
}
|
||||
+#endif
|
||||
@ -156,32 +156,35 @@ index 189bfc3e8b..023d628502 100644
|
||||
}
|
||||
|
||||
diff --git a/crypto/dh/dh_pmeth.c b/crypto/dh/dh_pmeth.c
|
||||
index 3b75a537b3..6ea7a423d5 100644
|
||||
index dd36dce281..21ac48c1de 100644
|
||||
--- a/crypto/dh/dh_pmeth.c
|
||||
+++ b/crypto/dh/dh_pmeth.c
|
||||
@@ -303,13 +303,17 @@ static DH *ffc_params_generate(OSSL_LIB_CTX *libctx, DH_PKEY_CTX *dctx,
|
||||
prime_len, subprime_len, &res,
|
||||
pcb);
|
||||
@@ -301,13 +301,17 @@ static DH *ffc_params_generate(OSSL_LIB_CTX *libctx, DH_PKEY_CTX *dctx,
|
||||
prime_len, subprime_len, &res,
|
||||
pcb);
|
||||
else
|
||||
-# endif
|
||||
- /* For FIPS we always use the DH_PARAMGEN_TYPE_FIPS_186_4 generator */
|
||||
- if (dctx->paramgen_type >= DH_PARAMGEN_TYPE_FIPS_186_2)
|
||||
rv = ossl_ffc_params_FIPS186_4_generate(libctx, &ret->params,
|
||||
FFC_PARAM_TYPE_DH,
|
||||
prime_len, subprime_len, &res,
|
||||
pcb);
|
||||
+# else
|
||||
+ rv = ossl_ffc_params_FIPS186_4_generate(libctx, &ret->params,
|
||||
+ FFC_PARAM_TYPE_DH,
|
||||
+ prime_len, subprime_len, &res,
|
||||
+ pcb);
|
||||
+#else
|
||||
+ /* In FIPS mode, we no longer support FIPS 186-4 domain parameters */
|
||||
+ ERR_raise_data(ERR_LIB_DH, DH_R_BAD_FFC_PARAMETERS,
|
||||
+ "FIPS 186-4 type domain parameters no longer allowed in"
|
||||
+ " FIPS mode, since the required generation routines were"
|
||||
+ " removed from FIPS 186-5");
|
||||
+# endif
|
||||
#endif
|
||||
- /* For FIPS we always use the DH_PARAMGEN_TYPE_FIPS_186_4 generator */
|
||||
- if (dctx->paramgen_type >= DH_PARAMGEN_TYPE_FIPS_186_2)
|
||||
- rv = ossl_ffc_params_FIPS186_4_generate(libctx, &ret->params,
|
||||
- FFC_PARAM_TYPE_DH,
|
||||
- prime_len, subprime_len, &res,
|
||||
- pcb);
|
||||
if (rv <= 0) {
|
||||
DH_free(ret);
|
||||
return NULL;
|
||||
diff --git a/providers/implementations/keymgmt/dh_kmgmt.c b/providers/implementations/keymgmt/dh_kmgmt.c
|
||||
index c2ee859355..51c21e436f 100644
|
||||
index 8a1afe7907..759ab77e1b 100644
|
||||
--- a/providers/implementations/keymgmt/dh_kmgmt.c
|
||||
+++ b/providers/implementations/keymgmt/dh_kmgmt.c
|
||||
@@ -420,6 +420,11 @@ static int dh_validate(const void *keydata, int selection, int checktype)
|
||||
@ -197,7 +200,7 @@ index c2ee859355..51c21e436f 100644
|
||||
/*
|
||||
* Both of these functions check parameters. DH_check_params_ex()
|
||||
diff --git a/test/endecode_test.c b/test/endecode_test.c
|
||||
index 85c84f6592..d2ff9e6eb6 100644
|
||||
index c3b55af3e7..b15bab217e 100644
|
||||
--- a/test/endecode_test.c
|
||||
+++ b/test/endecode_test.c
|
||||
@@ -85,10 +85,10 @@ static EVP_PKEY *make_template(const char *type, OSSL_PARAM *genparams)
|
||||
@ -210,11 +213,11 @@ index 85c84f6592..d2ff9e6eb6 100644
|
||||
if (strcmp(type, "X9.42 DH") == 0)
|
||||
- return get_dhx512(keyctx);
|
||||
+ return get_dhx_ffdhe2048(keyctx);
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/*
|
||||
diff --git a/test/evp_libctx_test.c b/test/evp_libctx_test.c
|
||||
index 039fca9bb0..2838f343bd 100644
|
||||
index 3786c567a7..773210fadb 100644
|
||||
--- a/test/evp_libctx_test.c
|
||||
+++ b/test/evp_libctx_test.c
|
||||
@@ -222,7 +222,7 @@ static int do_dh_param_keygen(int tstid, const BIGNUM **bn)
|
||||
@ -227,11 +230,11 @@ index 039fca9bb0..2838f343bd 100644
|
||||
|
||||
if (expected) {
|
||||
diff --git a/test/helpers/predefined_dhparams.c b/test/helpers/predefined_dhparams.c
|
||||
index 4bdadc4143..e5186e4b4a 100644
|
||||
index 28070efdb6..4baeb673f3 100644
|
||||
--- a/test/helpers/predefined_dhparams.c
|
||||
+++ b/test/helpers/predefined_dhparams.c
|
||||
@@ -116,6 +116,68 @@ EVP_PKEY *get_dhx512(OSSL_LIB_CTX *libctx)
|
||||
dhx512_q, sizeof(dhx512_q));
|
||||
@@ -311,6 +311,68 @@ EVP_PKEY *get_dhx512(OSSL_LIB_CTX *libctx)
|
||||
dhx512_q, sizeof(dhx512_q));
|
||||
}
|
||||
|
||||
+EVP_PKEY *get_dhx_ffdhe2048(OSSL_LIB_CTX *libctx)
|
||||
@ -326,5 +329,5 @@ index 6332aaec4b..4d8c900c00 100755
|
||||
'test sslv2/sslv3 with 1024bit DHE via BIO pair');
|
||||
}
|
||||
--
|
||||
2.50.0
|
||||
2.52.0
|
||||
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
From 14cddfc71e0eae69aafdf84c1dfb073bb69942f1 Mon Sep 17 00:00:00 2001
|
||||
From 0f4b67897d87b6cb1bd1f65ca2aafbce1c3c6872 Mon Sep 17 00:00:00 2001
|
||||
From: rpm-build <rpm-build>
|
||||
Date: Wed, 6 Mar 2024 19:17:17 +0100
|
||||
Subject: [PATCH 37/53] FIPS: TLS: Enforce EMS in TLS 1.2 - NOTE
|
||||
Subject: [PATCH 37/57] FIPS: TLS: Enforce EMS in TLS 1.2 - NOTE
|
||||
|
||||
NOTE: Enforcement of EMS in non-FIPS mode has been dropped due to code
|
||||
change the option to enforce it seem to be available only in FIPS build
|
||||
@ -19,16 +19,16 @@ From-dist-git-commit: 4334bc837fbc64d14890fdc51679a80770d498ce
|
||||
providers/fips/include/fips_indicator_params.inc | 2 +-
|
||||
ssl/ssl_conf.c | 1 +
|
||||
ssl/statem/extensions_srvr.c | 8 +++++++-
|
||||
ssl/t1_enc.c | 11 +++++++++--
|
||||
ssl/t1_enc.c | 13 ++++++++++---
|
||||
test/recipes/30-test_evp_data/evpkdf_tls12_prf.txt | 10 ++++++++++
|
||||
test/sslapitest.c | 2 +-
|
||||
9 files changed, 46 insertions(+), 5 deletions(-)
|
||||
9 files changed, 47 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/doc/man3/SSL_CONF_cmd.pod b/doc/man3/SSL_CONF_cmd.pod
|
||||
index 9338ffc01d..911ea21a68 100644
|
||||
index 3e2de6e66b..ad9a2dc8bf 100644
|
||||
--- a/doc/man3/SSL_CONF_cmd.pod
|
||||
+++ b/doc/man3/SSL_CONF_cmd.pod
|
||||
@@ -621,6 +621,9 @@ B<ExtendedMasterSecret>: use extended master secret extension, enabled by
|
||||
@@ -626,6 +626,9 @@ B<ExtendedMasterSecret>: use extended master secret extension, enabled by
|
||||
default. Inverse of B<SSL_OP_NO_EXTENDED_MASTER_SECRET>: that is,
|
||||
B<-ExtendedMasterSecret> is the same as setting B<SSL_OP_NO_EXTENDED_MASTER_SECRET>.
|
||||
|
||||
@ -39,7 +39,7 @@ index 9338ffc01d..911ea21a68 100644
|
||||
default. Inverse of B<SSL_OP_DISABLE_TLSEXT_CA_NAMES>: that is,
|
||||
B<-CANames> is the same as setting B<SSL_OP_DISABLE_TLSEXT_CA_NAMES>.
|
||||
diff --git a/doc/man5/fips_config.pod b/doc/man5/fips_config.pod
|
||||
index 15748c5756..34cbfbb2ad 100644
|
||||
index 2505938c13..3887c54f0e 100644
|
||||
--- a/doc/man5/fips_config.pod
|
||||
+++ b/doc/man5/fips_config.pod
|
||||
@@ -11,6 +11,19 @@ automatically loaded when the system is booted in FIPS mode, or when the
|
||||
@ -61,19 +61,19 @@ index 15748c5756..34cbfbb2ad 100644
|
||||
+
|
||||
=head1 COPYRIGHT
|
||||
|
||||
Copyright 2019-2024 The OpenSSL Project Authors. All Rights Reserved.
|
||||
Copyright 2019-2025 The OpenSSL Project Authors. All Rights Reserved.
|
||||
diff --git a/include/openssl/ssl.h.in b/include/openssl/ssl.h.in
|
||||
index d1b00e8454..b815f25dae 100644
|
||||
index 82410670f4..1026a9b7b0 100644
|
||||
--- a/include/openssl/ssl.h.in
|
||||
+++ b/include/openssl/ssl.h.in
|
||||
@@ -417,6 +417,7 @@ typedef int (*SSL_async_callback_fn)(SSL *s, void *arg);
|
||||
* interoperability with CryptoPro CSP 3.x
|
||||
*/
|
||||
# define SSL_OP_CRYPTOPRO_TLSEXT_BUG SSL_OP_BIT(31)
|
||||
+# define SSL_OP_RH_PERMIT_NOEMS_FIPS SSL_OP_BIT(48)
|
||||
@@ -432,6 +432,7 @@ typedef int (*SSL_async_callback_fn)(SSL *s, void *arg);
|
||||
#define SSL_OP_ENABLE_KTLS_TX_ZEROCOPY_SENDFILE SSL_OP_BIT(34)
|
||||
|
||||
#define SSL_OP_PREFER_NO_DHE_KEX SSL_OP_BIT(35)
|
||||
+#define SSL_OP_RH_PERMIT_NOEMS_FIPS SSL_OP_BIT(48)
|
||||
|
||||
/*
|
||||
* Disable RFC8879 certificate compression
|
||||
* SSL_OP_NO_TX_CERTIFICATE_COMPRESSION: don't send compressed certificates,
|
||||
* Option "collections."
|
||||
diff --git a/providers/fips/include/fips_indicator_params.inc b/providers/fips/include/fips_indicator_params.inc
|
||||
index c1b029de86..47d1cf2d01 100644
|
||||
--- a/providers/fips/include/fips_indicator_params.inc
|
||||
@ -86,19 +86,19 @@ index c1b029de86..47d1cf2d01 100644
|
||||
OSSL_FIPS_PARAM(hmac_key_check, HMAC_KEY_CHECK, 0)
|
||||
OSSL_FIPS_PARAM(kmac_key_check, KMAC_KEY_CHECK, 0)
|
||||
diff --git a/ssl/ssl_conf.c b/ssl/ssl_conf.c
|
||||
index 946d20be52..b52c1675fd 100644
|
||||
index 0d93593880..4361edfa49 100644
|
||||
--- a/ssl/ssl_conf.c
|
||||
+++ b/ssl/ssl_conf.c
|
||||
@@ -394,6 +394,7 @@ static int cmd_Options(SSL_CONF_CTX *cctx, const char *value)
|
||||
@@ -392,6 +392,7 @@ static int cmd_Options(SSL_CONF_CTX *cctx, const char *value)
|
||||
SSL_FLAG_TBL("ClientRenegotiation",
|
||||
SSL_OP_ALLOW_CLIENT_RENEGOTIATION),
|
||||
SSL_OP_ALLOW_CLIENT_RENEGOTIATION),
|
||||
SSL_FLAG_TBL_INV("EncryptThenMac", SSL_OP_NO_ENCRYPT_THEN_MAC),
|
||||
+ SSL_FLAG_TBL("RHNoEnforceEMSinFIPS", SSL_OP_RH_PERMIT_NOEMS_FIPS),
|
||||
SSL_FLAG_TBL("NoRenegotiation", SSL_OP_NO_RENEGOTIATION),
|
||||
SSL_FLAG_TBL("AllowNoDHEKEX", SSL_OP_ALLOW_NO_DHE_KEX),
|
||||
SSL_FLAG_TBL("PreferNoDHEKEX", SSL_OP_PREFER_NO_DHE_KEX),
|
||||
diff --git a/ssl/statem/extensions_srvr.c b/ssl/statem/extensions_srvr.c
|
||||
index 1a09913ad6..936be81819 100644
|
||||
index cdb914daed..1bcc0fd902 100644
|
||||
--- a/ssl/statem/extensions_srvr.c
|
||||
+++ b/ssl/statem/extensions_srvr.c
|
||||
@@ -12,6 +12,7 @@
|
||||
@ -107,11 +107,11 @@ index 1a09913ad6..936be81819 100644
|
||||
#include "internal/ssl_unwrap.h"
|
||||
+#include <openssl/fips.h>
|
||||
|
||||
#define COOKIE_STATE_FORMAT_VERSION 1
|
||||
#define COOKIE_STATE_FORMAT_VERSION 1
|
||||
|
||||
@@ -1886,8 +1887,13 @@ EXT_RETURN tls_construct_stoc_ems(SSL_CONNECTION *s, WPACKET *pkt,
|
||||
unsigned int context,
|
||||
X509 *x, size_t chainidx)
|
||||
@@ -1889,8 +1890,13 @@ EXT_RETURN tls_construct_stoc_ems(SSL_CONNECTION *s, WPACKET *pkt,
|
||||
unsigned int context,
|
||||
X509 *x, size_t chainidx)
|
||||
{
|
||||
- if ((s->s3.flags & TLS1_FLAGS_RECEIVED_EXTMS) == 0)
|
||||
+ if ((s->s3.flags & TLS1_FLAGS_RECEIVED_EXTMS) == 0) {
|
||||
@ -123,9 +123,9 @@ index 1a09913ad6..936be81819 100644
|
||||
+ }
|
||||
|
||||
if (!WPACKET_put_bytes_u16(pkt, TLSEXT_TYPE_extended_master_secret)
|
||||
|| !WPACKET_put_bytes_u16(pkt, 0)) {
|
||||
|| !WPACKET_put_bytes_u16(pkt, 0)) {
|
||||
diff --git a/ssl/t1_enc.c b/ssl/t1_enc.c
|
||||
index 474ea7bf5b..e0e595e989 100644
|
||||
index 8978e0c630..85d9df0da6 100644
|
||||
--- a/ssl/t1_enc.c
|
||||
+++ b/ssl/t1_enc.c
|
||||
@@ -21,6 +21,7 @@
|
||||
@ -136,12 +136,14 @@ index 474ea7bf5b..e0e595e989 100644
|
||||
|
||||
/* seed1 through seed5 are concatenated */
|
||||
static int tls1_PRF(SSL_CONNECTION *s,
|
||||
@@ -78,8 +79,14 @@ static int tls1_PRF(SSL_CONNECTION *s,
|
||||
@@ -77,9 +78,15 @@ static int tls1_PRF(SSL_CONNECTION *s,
|
||||
return 1;
|
||||
}
|
||||
|
||||
err:
|
||||
-err:
|
||||
- if (fatal)
|
||||
- SSLfatal(s, SSL_AD_INTERNAL_ERROR, ERR_R_INTERNAL_ERROR);
|
||||
+ err:
|
||||
+ if (fatal) {
|
||||
+ /* The calls to this function are local so it's safe to implement the check */
|
||||
+ if (FIPS_mode() && seed1_len >= TLS_MD_MASTER_SECRET_CONST_SIZE
|
||||
@ -175,10 +177,10 @@ index 50944328cb..edb2e81273 100644
|
||||
KDF = TLS1-PRF
|
||||
Ctrl.digest = digest:SHA256
|
||||
diff --git a/test/sslapitest.c b/test/sslapitest.c
|
||||
index 250a439137..acc4751095 100644
|
||||
index a94061d974..92a33f05db 100644
|
||||
--- a/test/sslapitest.c
|
||||
+++ b/test/sslapitest.c
|
||||
@@ -575,7 +575,7 @@ static int test_client_cert_verify_cb(void)
|
||||
@@ -582,7 +582,7 @@ static int test_client_cert_verify_cb(void)
|
||||
STACK_OF(X509) *server_chain;
|
||||
SSL_CTX *cctx = NULL, *sctx = NULL;
|
||||
SSL *clientssl = NULL, *serverssl = NULL;
|
||||
@ -186,7 +188,7 @@ index 250a439137..acc4751095 100644
|
||||
+ int testresult = 0, status;
|
||||
|
||||
if (!TEST_true(create_ssl_ctx_pair(libctx, TLS_server_method(),
|
||||
TLS_client_method(), TLS1_VERSION, 0,
|
||||
TLS_client_method(), TLS1_VERSION, 0,
|
||||
--
|
||||
2.50.0
|
||||
2.52.0
|
||||
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
From ecc156faf9f4d65fd73a8ef7d8ec87f5b4c0ab88 Mon Sep 17 00:00:00 2001
|
||||
From c91c7412ab54f8db8cac437e7308a9042c7a4732 Mon Sep 17 00:00:00 2001
|
||||
From: Simo Sorce <simo@redhat.com>
|
||||
Date: Thu, 13 Feb 2025 18:08:34 -0500
|
||||
Subject: [PATCH 38/53] FIPS: CMS: Set default padding to OAEP
|
||||
Subject: [PATCH 38/57] FIPS: CMS: Set default padding to OAEP
|
||||
|
||||
From-dist-git-commit: d508cbed930481c1960d6a6bc1e1a9593252dbbe
|
||||
---
|
||||
@ -10,7 +10,7 @@ From-dist-git-commit: d508cbed930481c1960d6a6bc1e1a9593252dbbe
|
||||
2 files changed, 11 insertions(+)
|
||||
|
||||
diff --git a/apps/cms.c b/apps/cms.c
|
||||
index 919d306ff6..b4950df759 100644
|
||||
index 214eea5bcb..c1fc70ef12 100644
|
||||
--- a/apps/cms.c
|
||||
+++ b/apps/cms.c
|
||||
@@ -20,6 +20,7 @@
|
||||
@ -22,7 +22,7 @@ index 919d306ff6..b4950df759 100644
|
||||
static int save_certs(char *signerfile, STACK_OF(X509) *signers);
|
||||
static int cms_cb(int ok, X509_STORE_CTX *ctx);
|
||||
diff --git a/crypto/cms/cms_env.c b/crypto/cms/cms_env.c
|
||||
index 375239c78d..e09ad03ece 100644
|
||||
index 0828d157fa..e1200a37d4 100644
|
||||
--- a/crypto/cms/cms_env.c
|
||||
+++ b/crypto/cms/cms_env.c
|
||||
@@ -14,6 +14,7 @@
|
||||
@ -33,7 +33,7 @@ index 375239c78d..e09ad03ece 100644
|
||||
#include "internal/sizes.h"
|
||||
#include "crypto/asn1.h"
|
||||
#include "crypto/evp.h"
|
||||
@@ -375,6 +376,10 @@ static int cms_RecipientInfo_ktri_init(CMS_RecipientInfo *ri, X509 *recip,
|
||||
@@ -372,6 +373,10 @@ static int cms_RecipientInfo_ktri_init(CMS_RecipientInfo *ri, X509 *recip,
|
||||
return 0;
|
||||
if (EVP_PKEY_encrypt_init(ktri->pctx) <= 0)
|
||||
return 0;
|
||||
@ -44,7 +44,7 @@ index 375239c78d..e09ad03ece 100644
|
||||
} else if (!ossl_cms_env_asn1_ctrl(ri, 0))
|
||||
return 0;
|
||||
return 1;
|
||||
@@ -540,6 +545,11 @@ static int cms_RecipientInfo_ktri_encrypt(const CMS_ContentInfo *cms,
|
||||
@@ -535,6 +540,11 @@ static int cms_RecipientInfo_ktri_encrypt(const CMS_ContentInfo *cms,
|
||||
|
||||
if (EVP_PKEY_encrypt_init(pctx) <= 0)
|
||||
goto err;
|
||||
@ -57,5 +57,5 @@ index 375239c78d..e09ad03ece 100644
|
||||
|
||||
if (EVP_PKEY_encrypt(pctx, NULL, &eklen, ec->key, ec->keylen) <= 0)
|
||||
--
|
||||
2.50.0
|
||||
2.52.0
|
||||
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
From 16b5a03db729e5977ab88b3107f99586be34006b Mon Sep 17 00:00:00 2001
|
||||
From 51fc5ce32bfe0fbe018934fa88252efe9073c649 Mon Sep 17 00:00:00 2001
|
||||
From: Simo Sorce <simo@redhat.com>
|
||||
Date: Thu, 13 Feb 2025 18:16:29 -0500
|
||||
Subject: [PATCH 39/53] FIPS: PKCS12: PBMAC1 defaults
|
||||
Subject: [PATCH 39/57] FIPS: PKCS12: PBMAC1 defaults
|
||||
|
||||
From-dist-git-commit: 8fc2d4842385584094d57f6f66fcbc2a07865708
|
||||
---
|
||||
@ -9,7 +9,7 @@ From-dist-git-commit: 8fc2d4842385584094d57f6f66fcbc2a07865708
|
||||
1 file changed, 4 insertions(+)
|
||||
|
||||
diff --git a/apps/pkcs12.c b/apps/pkcs12.c
|
||||
index 9964faf21a..59439a8cc0 100644
|
||||
index 2c83e43845..20aad27c59 100644
|
||||
--- a/apps/pkcs12.c
|
||||
+++ b/apps/pkcs12.c
|
||||
@@ -17,6 +17,7 @@
|
||||
@ -20,7 +20,7 @@ index 9964faf21a..59439a8cc0 100644
|
||||
#include <openssl/pem.h>
|
||||
#include <openssl/pkcs12.h>
|
||||
#include <openssl/provider.h>
|
||||
@@ -709,6 +710,9 @@ int pkcs12_main(int argc, char **argv)
|
||||
@@ -746,6 +747,9 @@ int pkcs12_main(int argc, char **argv)
|
||||
}
|
||||
|
||||
if (maciter != -1) {
|
||||
@ -29,7 +29,7 @@ index 9964faf21a..59439a8cc0 100644
|
||||
+
|
||||
if (pbmac1_pbkdf2 == 1) {
|
||||
if (!PKCS12_set_pbmac1_pbkdf2(p12, mpass, -1, NULL,
|
||||
macsaltlen, maciter,
|
||||
macsaltlen, maciter,
|
||||
--
|
||||
2.50.0
|
||||
2.52.0
|
||||
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
From eea9e6867012efa55d7ae48ab9a87fd0da382b6b Mon Sep 17 00:00:00 2001
|
||||
From 7b7ade7e1ee2f6b10b34bf7f9e7a0165474f5860 Mon Sep 17 00:00:00 2001
|
||||
From: Simo Sorce <simo@redhat.com>
|
||||
Date: Wed, 5 Mar 2025 13:22:03 -0500
|
||||
Subject: [PATCH 40/53] FIPS: Fix encoder/decoder negative test
|
||||
Subject: [PATCH 40/57] FIPS: Fix encoder/decoder negative test
|
||||
|
||||
Signed-off-by: Simo Sorce <simo@redhat.com>
|
||||
---
|
||||
@ -31,5 +31,5 @@ index 2acc980e90..660d4e1115
|
||||
my $conf2 = srctop_file("test", "default-and-fips.cnf");
|
||||
ok(run(test(['decoder_propq_test', '-config', $conf2,
|
||||
--
|
||||
2.50.0
|
||||
2.52.0
|
||||
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
From 1e029f27fe022949adaba959ac3fa3c3c1eccb0b Mon Sep 17 00:00:00 2001
|
||||
From 17caabce423bbcfe0501ebaa11c2d4a8379aca92 Mon Sep 17 00:00:00 2001
|
||||
From: Simo Sorce <simo@redhat.com>
|
||||
Date: Mon, 24 Mar 2025 10:50:06 -0400
|
||||
Subject: [PATCH 41/53] FIPS: EC: DH/DSA PCTs
|
||||
Subject: [PATCH 41/57] FIPS: EC: DH/DSA PCTs
|
||||
|
||||
Signed-off-by: Simo Sorce <simo@redhat.com>
|
||||
---
|
||||
@ -11,10 +11,10 @@ Signed-off-by: Simo Sorce <simo@redhat.com>
|
||||
3 files changed, 75 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/providers/implementations/exchange/ecdh_exch.c b/providers/implementations/exchange/ecdh_exch.c
|
||||
index 58fbc7bc09..98d4354f3e 100644
|
||||
index 43f3515878..0d35fc1590 100644
|
||||
--- a/providers/implementations/exchange/ecdh_exch.c
|
||||
+++ b/providers/implementations/exchange/ecdh_exch.c
|
||||
@@ -560,6 +560,25 @@ int ecdh_plain_derive(void *vpecdhctx, unsigned char *secret,
|
||||
@@ -546,6 +546,25 @@ static ossl_inline int ecdh_plain_derive(void *vpecdhctx, unsigned char *secret,
|
||||
#endif
|
||||
|
||||
ppubkey = EC_KEY_get0_public_key(pecdhctx->peerk);
|
||||
@ -41,10 +41,10 @@ index 58fbc7bc09..98d4354f3e 100644
|
||||
retlen = ECDH_compute_key(secret, size, ppubkey, privk, NULL);
|
||||
|
||||
diff --git a/providers/implementations/keymgmt/ec_kmgmt.c b/providers/implementations/keymgmt/ec_kmgmt.c
|
||||
index 9421aabb14..77531c4b59 100644
|
||||
index 305dc3a6b8..04e604c453 100644
|
||||
--- a/providers/implementations/keymgmt/ec_kmgmt.c
|
||||
+++ b/providers/implementations/keymgmt/ec_kmgmt.c
|
||||
@@ -993,9 +993,18 @@ struct ec_gen_ctx {
|
||||
@@ -963,9 +963,18 @@ struct ec_gen_ctx {
|
||||
EC_GROUP *gen_group;
|
||||
unsigned char *dhkem_ikm;
|
||||
size_t dhkem_ikmlen;
|
||||
@ -61,9 +61,9 @@ index 9421aabb14..77531c4b59 100644
|
||||
+#endif
|
||||
+
|
||||
static void *ec_gen_init(void *provctx, int selection,
|
||||
const OSSL_PARAM params[])
|
||||
const OSSL_PARAM params[])
|
||||
{
|
||||
@@ -1015,6 +1024,10 @@ static void *ec_gen_init(void *provctx, int selection,
|
||||
@@ -985,6 +994,10 @@ static void *ec_gen_init(void *provctx, int selection,
|
||||
gctx = NULL;
|
||||
}
|
||||
}
|
||||
@ -74,7 +74,7 @@ index 9421aabb14..77531c4b59 100644
|
||||
return gctx;
|
||||
}
|
||||
|
||||
@@ -1326,6 +1339,12 @@ static void *ec_gen(void *genctx, OSSL_CALLBACK *osslcb, void *cbarg)
|
||||
@@ -1295,6 +1308,12 @@ static void *ec_gen(void *genctx, OSSL_CALLBACK *osslcb, void *cbarg)
|
||||
|
||||
if (gctx->ecdh_mode != -1)
|
||||
ret = ret && ossl_ec_set_ecdh_cofactor_mode(ec, gctx->ecdh_mode);
|
||||
@ -86,8 +86,8 @@ index 9421aabb14..77531c4b59 100644
|
||||
+#endif
|
||||
|
||||
if (gctx->group_check != NULL)
|
||||
ret = ret && ossl_ec_set_check_group_type_from_name(ec,
|
||||
@@ -1396,7 +1415,10 @@ static void ec_gen_cleanup(void *genctx)
|
||||
ret = ret && ossl_ec_set_check_group_type_from_name(ec, gctx->group_check);
|
||||
@@ -1379,7 +1398,10 @@ static void ec_gen_cleanup(void *genctx)
|
||||
|
||||
if (gctx == NULL)
|
||||
return;
|
||||
@ -100,7 +100,7 @@ index 9421aabb14..77531c4b59 100644
|
||||
EC_GROUP_free(gctx->gen_group);
|
||||
BN_free(gctx->p);
|
||||
diff --git a/providers/implementations/signature/ecdsa_sig.c b/providers/implementations/signature/ecdsa_sig.c
|
||||
index 4e46eaf9bc..4d7c25728a 100644
|
||||
index f5c101005f..b1576977f7 100644
|
||||
--- a/providers/implementations/signature/ecdsa_sig.c
|
||||
+++ b/providers/implementations/signature/ecdsa_sig.c
|
||||
@@ -33,7 +33,7 @@
|
||||
@ -130,7 +130,7 @@ index 4e46eaf9bc..4d7c25728a 100644
|
||||
{
|
||||
PROV_ECDSA_CTX *ctx;
|
||||
|
||||
@@ -612,7 +612,7 @@ int ecdsa_digest_verify_final(void *vctx, const unsigned char *sig,
|
||||
@@ -610,7 +610,7 @@ int ecdsa_digest_verify_final(void *vctx, const unsigned char *sig,
|
||||
return ok;
|
||||
}
|
||||
|
||||
@ -139,7 +139,7 @@ index 4e46eaf9bc..4d7c25728a 100644
|
||||
{
|
||||
PROV_ECDSA_CTX *ctx = (PROV_ECDSA_CTX *)vctx;
|
||||
|
||||
@@ -861,6 +861,35 @@ static const OSSL_PARAM *ecdsa_settable_ctx_md_params(void *vctx)
|
||||
@@ -854,6 +854,35 @@ static const OSSL_PARAM *ecdsa_settable_ctx_md_params(void *vctx)
|
||||
return EVP_MD_settable_ctx_params(ctx->md);
|
||||
}
|
||||
|
||||
@ -176,5 +176,5 @@ index 4e46eaf9bc..4d7c25728a 100644
|
||||
{ OSSL_FUNC_SIGNATURE_NEWCTX, (void (*)(void))ecdsa_newctx },
|
||||
{ OSSL_FUNC_SIGNATURE_SIGN_INIT, (void (*)(void))ecdsa_sign_init },
|
||||
--
|
||||
2.50.0
|
||||
2.52.0
|
||||
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
From 92b40ca85bbfa7acc9b16f2c7b370f2ea5fa3ffc Mon Sep 17 00:00:00 2001
|
||||
From 2cda3e9adf5534d6be689cff5eeb81459061f52b Mon Sep 17 00:00:00 2001
|
||||
From: Simo Sorce <simo@redhat.com>
|
||||
Date: Fri, 7 Mar 2025 18:06:36 -0500
|
||||
Subject: [PATCH 42/53] FIPS: EC: disable weak curves
|
||||
Subject: [PATCH 42/57] FIPS: EC: disable weak curves
|
||||
|
||||
Signed-off-by: Simo Sorce <simo@redhat.com>
|
||||
---
|
||||
@ -9,10 +9,10 @@ Signed-off-by: Simo Sorce <simo@redhat.com>
|
||||
1 file changed, 7 insertions(+)
|
||||
|
||||
diff --git a/apps/ecparam.c b/apps/ecparam.c
|
||||
index f0879dfb11..a6042e7d2a 100644
|
||||
index 017dc7568d..596c31a925 100644
|
||||
--- a/apps/ecparam.c
|
||||
+++ b/apps/ecparam.c
|
||||
@@ -77,6 +77,13 @@ static int list_builtin_curves(BIO *out)
|
||||
@@ -90,6 +90,13 @@ static int list_builtin_curves(BIO *out)
|
||||
const char *comment = curves[n].comment;
|
||||
const char *sname = OBJ_nid2sn(curves[n].nid);
|
||||
|
||||
@ -27,5 +27,5 @@ index f0879dfb11..a6042e7d2a 100644
|
||||
comment = "CURVE DESCRIPTION NOT AVAILABLE";
|
||||
if (sname == NULL)
|
||||
--
|
||||
2.50.0
|
||||
2.52.0
|
||||
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
From 2dbc4a1c31e66fd841a87f62834d8d60aff10d45 Mon Sep 17 00:00:00 2001
|
||||
From 9fca36a6c0712f3c11e6ba942e99039b17fc75b0 Mon Sep 17 00:00:00 2001
|
||||
From: Simo Sorce <simo@redhat.com>
|
||||
Date: Fri, 7 Mar 2025 18:10:52 -0500
|
||||
Subject: [PATCH 43/53] FIPS: NO DSA Support
|
||||
Subject: [PATCH 43/57] FIPS: NO DSA Support
|
||||
|
||||
Signed-off-by: Simo Sorce <simo@redhat.com>
|
||||
---
|
||||
@ -18,7 +18,7 @@ Signed-off-by: Simo Sorce <simo@redhat.com>
|
||||
mode change 100644 => 100755 test/recipes/30-test_evp.t
|
||||
|
||||
diff --git a/providers/fips/fipsprov.c b/providers/fips/fipsprov.c
|
||||
index 1e90f363af..84d8e897cc 100644
|
||||
index 0f006301d7..f8f2822300 100644
|
||||
--- a/providers/fips/fipsprov.c
|
||||
+++ b/providers/fips/fipsprov.c
|
||||
@@ -431,7 +431,8 @@ static const OSSL_ALGORITHM fips_keyexch[] = {
|
||||
@ -31,23 +31,23 @@ index 1e90f363af..84d8e897cc 100644
|
||||
{ PROV_NAMES_DSA, FIPS_DEFAULT_PROPERTIES, ossl_dsa_signature_functions },
|
||||
{ PROV_NAMES_DSA_SHA1, FIPS_DEFAULT_PROPERTIES, ossl_dsa_sha1_signature_functions },
|
||||
{ PROV_NAMES_DSA_SHA224, FIPS_DEFAULT_PROPERTIES, ossl_dsa_sha224_signature_functions },
|
||||
@@ -561,8 +562,9 @@ static const OSSL_ALGORITHM fips_keymgmt[] = {
|
||||
PROV_DESCS_DHX },
|
||||
@@ -559,8 +560,9 @@ static const OSSL_ALGORITHM fips_keymgmt[] = {
|
||||
PROV_DESCS_DHX },
|
||||
#endif
|
||||
#ifndef OPENSSL_NO_DSA
|
||||
- { PROV_NAMES_DSA, FIPS_DEFAULT_PROPERTIES, ossl_dsa_keymgmt_functions,
|
||||
- PROV_DESCS_DSA },
|
||||
- PROV_DESCS_DSA },
|
||||
+ /* We don't certify DSA in our FIPS provider */
|
||||
+ /* { PROV_NAMES_DSA, FIPS_DEFAULT_PROPERTIES, ossl_dsa_keymgmt_functions,
|
||||
+ PROV_DESCS_DSA }, */
|
||||
+ PROV_DESCS_DSA }, */
|
||||
#endif
|
||||
{ PROV_NAMES_RSA, FIPS_DEFAULT_PROPERTIES, ossl_rsa_keymgmt_functions,
|
||||
PROV_DESCS_RSA },
|
||||
PROV_DESCS_RSA },
|
||||
diff --git a/providers/fips/self_test_data.inc b/providers/fips/self_test_data.inc
|
||||
index 5cbb5352a5..10ca473764 100644
|
||||
index 6abab0a7a1..a7d7684d96 100644
|
||||
--- a/providers/fips/self_test_data.inc
|
||||
+++ b/providers/fips/self_test_data.inc
|
||||
@@ -1522,8 +1522,9 @@ static const unsigned char ed448_expected_sig[] = {
|
||||
@@ -1547,8 +1547,9 @@ static const unsigned char ed448_expected_sig[] = {
|
||||
# endif /* OPENSSL_NO_ECX */
|
||||
#endif /* OPENSSL_NO_EC */
|
||||
|
||||
@ -58,7 +58,7 @@ index 5cbb5352a5..10ca473764 100644
|
||||
static const unsigned char dsa_p[] = {
|
||||
0xa2, 0x9b, 0x88, 0x72, 0xce, 0x8b, 0x84, 0x23,
|
||||
0xb7, 0xd5, 0xd2, 0x1d, 0x4b, 0x02, 0xf5, 0x7e,
|
||||
@@ -1651,6 +1652,7 @@ static const ST_KAT_PARAM dsa_key[] = {
|
||||
@@ -1676,6 +1677,7 @@ static const ST_KAT_PARAM dsa_key[] = {
|
||||
ST_KAT_PARAM_END()
|
||||
};
|
||||
#endif /* OPENSSL_NO_DSA */
|
||||
@ -66,7 +66,7 @@ index 5cbb5352a5..10ca473764 100644
|
||||
|
||||
#ifndef OPENSSL_NO_ML_DSA
|
||||
static const unsigned char ml_dsa_65_pub_key[] = {
|
||||
@@ -3013,6 +3015,7 @@ static const ST_KAT_SIGN st_kat_sign_tests[] = {
|
||||
@@ -3038,6 +3040,7 @@ static const ST_KAT_SIGN st_kat_sign_tests[] = {
|
||||
},
|
||||
# endif /* OPENSSL_NO_ECX */
|
||||
#endif /* OPENSSL_NO_EC */
|
||||
@ -74,7 +74,7 @@ index 5cbb5352a5..10ca473764 100644
|
||||
#ifndef OPENSSL_NO_DSA
|
||||
{
|
||||
OSSL_SELF_TEST_DESC_SIGN_DSA,
|
||||
@@ -3025,6 +3028,7 @@ static const ST_KAT_SIGN st_kat_sign_tests[] = {
|
||||
@@ -3050,6 +3053,7 @@ static const ST_KAT_SIGN st_kat_sign_tests[] = {
|
||||
ITM(dsa_expected_sig)
|
||||
},
|
||||
#endif /* OPENSSL_NO_DSA */
|
||||
@ -83,18 +83,18 @@ index 5cbb5352a5..10ca473764 100644
|
||||
#ifndef OPENSSL_NO_ML_DSA
|
||||
{
|
||||
diff --git a/test/acvp_test.c b/test/acvp_test.c
|
||||
index 2bcc886fd2..db0282d043 100644
|
||||
index 15c87c57a7..e3321874c2 100644
|
||||
--- a/test/acvp_test.c
|
||||
+++ b/test/acvp_test.c
|
||||
@@ -1735,6 +1735,7 @@ int setup_tests(void)
|
||||
OSSL_NELEM(dh_safe_prime_keyver_data));
|
||||
@@ -1749,6 +1749,7 @@ int setup_tests(void)
|
||||
OSSL_NELEM(dh_safe_prime_keyver_data));
|
||||
#endif /* OPENSSL_NO_DH */
|
||||
|
||||
+#if 0 /* Red Hat FIPS provider doesn't have fips=yes property on DSA */
|
||||
#ifndef OPENSSL_NO_DSA
|
||||
dsasign_allowed = fips_provider_version_lt(libctx, 3, 4, 0);
|
||||
ADD_ALL_TESTS(dsa_keygen_test, OSSL_NELEM(dsa_keygen_data));
|
||||
@@ -1743,6 +1744,7 @@ int setup_tests(void)
|
||||
@@ -1757,6 +1758,7 @@ int setup_tests(void)
|
||||
ADD_ALL_TESTS(dsa_siggen_test, OSSL_NELEM(dsa_siggen_data));
|
||||
ADD_ALL_TESTS(dsa_sigver_test, OSSL_NELEM(dsa_sigver_data));
|
||||
#endif /* OPENSSL_NO_DSA */
|
||||
@ -103,10 +103,10 @@ index 2bcc886fd2..db0282d043 100644
|
||||
#ifndef OPENSSL_NO_EC
|
||||
ec_cofactors = fips_provider_version_ge(libctx, 3, 4, 0);
|
||||
diff --git a/test/endecode_test.c b/test/endecode_test.c
|
||||
index d2ff9e6eb6..dfd5e92f7e 100644
|
||||
index b15bab217e..acfb5ef36d 100644
|
||||
--- a/test/endecode_test.c
|
||||
+++ b/test/endecode_test.c
|
||||
@@ -1536,6 +1536,7 @@ int setup_tests(void)
|
||||
@@ -1549,6 +1549,7 @@ int setup_tests(void)
|
||||
* so no legacy tests.
|
||||
*/
|
||||
#endif
|
||||
@ -114,9 +114,9 @@ index d2ff9e6eb6..dfd5e92f7e 100644
|
||||
#ifndef OPENSSL_NO_DSA
|
||||
ADD_TEST_SUITE(DSA);
|
||||
ADD_TEST_SUITE_PARAMS(DSA);
|
||||
@@ -1546,6 +1547,7 @@ int setup_tests(void)
|
||||
@@ -1559,6 +1560,7 @@ int setup_tests(void)
|
||||
ADD_TEST_SUITE_PROTECTED_PVK(DSA);
|
||||
# endif
|
||||
#endif
|
||||
#endif
|
||||
+ }
|
||||
#ifndef OPENSSL_NO_EC
|
||||
@ -302,10 +302,10 @@ index 5e5315a5b9..660d1db149 100644
|
||||
Key = DSA-2048-160
|
||||
Input = "Hello"
|
||||
diff --git a/test/recipes/80-test_cms.t b/test/recipes/80-test_cms.t
|
||||
index ece29485f4..756f90c1bd 100644
|
||||
index 91283c5e74..beadb43cf4 100644
|
||||
--- a/test/recipes/80-test_cms.t
|
||||
+++ b/test/recipes/80-test_cms.t
|
||||
@@ -107,7 +107,7 @@ my @smime_pkcs7_tests = (
|
||||
@@ -116,7 +116,7 @@ my @smime_pkcs7_tests = (
|
||||
\&final_compare
|
||||
],
|
||||
|
||||
@ -314,7 +314,7 @@ index ece29485f4..756f90c1bd 100644
|
||||
[ "{cmd1}", @prov, "-sign", "-in", $smcont, "-outform", "DER", "-nodetach",
|
||||
"-signer", catfile($smdir, "smdsa1.pem"), "-out", "{output}.cms" ],
|
||||
[ "{cmd2}", @prov, "-verify", "-in", "{output}.cms", "-inform", "DER",
|
||||
@@ -115,7 +115,7 @@ my @smime_pkcs7_tests = (
|
||||
@@ -124,7 +124,7 @@ my @smime_pkcs7_tests = (
|
||||
\&final_compare
|
||||
],
|
||||
|
||||
@ -323,7 +323,7 @@ index ece29485f4..756f90c1bd 100644
|
||||
[ "{cmd1}", @prov, "-sign", "-in", $smcont, "-outform", "DER",
|
||||
"-signer", catfile($smdir, "smdsa1.pem"), "-out", "{output}.cms" ],
|
||||
[ "{cmd2}", @prov, "-verify", "-in", "{output}.cms", "-inform", "DER",
|
||||
@@ -124,7 +124,7 @@ my @smime_pkcs7_tests = (
|
||||
@@ -133,7 +133,7 @@ my @smime_pkcs7_tests = (
|
||||
\&final_compare
|
||||
],
|
||||
|
||||
@ -332,7 +332,7 @@ index ece29485f4..756f90c1bd 100644
|
||||
[ "{cmd1}", @prov, "-sign", "-in", $smcont, "-outform", "DER",
|
||||
"-signer", catfile($smdir, "smdsa1.pem"), "-out", "{output}.cms" ],
|
||||
[ "{cmd1}", @prov, "-resign", "-in", "{output}.cms", "-inform", "DER", "-outform", "DER",
|
||||
@@ -135,7 +135,7 @@ my @smime_pkcs7_tests = (
|
||||
@@ -144,7 +144,7 @@ my @smime_pkcs7_tests = (
|
||||
\&final_compare
|
||||
],
|
||||
|
||||
@ -341,7 +341,7 @@ index ece29485f4..756f90c1bd 100644
|
||||
[ "{cmd1}", @prov, "-sign", "-in", $smcont, "-outform", "DER",
|
||||
"-nodetach", "-stream",
|
||||
"-signer", catfile($smdir, "smdsa1.pem"), "-out", "{output}.cms" ],
|
||||
@@ -144,7 +144,7 @@ my @smime_pkcs7_tests = (
|
||||
@@ -153,7 +153,7 @@ my @smime_pkcs7_tests = (
|
||||
\&final_compare
|
||||
],
|
||||
|
||||
@ -350,7 +350,7 @@ index ece29485f4..756f90c1bd 100644
|
||||
[ "{cmd1}", @prov, "-sign", "-in", $smcont, "-outform", "DER",
|
||||
"-nodetach", "-stream",
|
||||
"-signer", $smrsa1,
|
||||
@@ -157,7 +157,7 @@ my @smime_pkcs7_tests = (
|
||||
@@ -166,7 +166,7 @@ my @smime_pkcs7_tests = (
|
||||
\&final_compare
|
||||
],
|
||||
|
||||
@ -359,7 +359,7 @@ index ece29485f4..756f90c1bd 100644
|
||||
[ "{cmd1}", @prov, "-sign", "-in", $smcont, "-outform", "DER",
|
||||
"-noattr", "-nodetach", "-stream",
|
||||
"-signer", $smrsa1,
|
||||
@@ -187,7 +187,7 @@ my @smime_pkcs7_tests = (
|
||||
@@ -196,7 +196,7 @@ my @smime_pkcs7_tests = (
|
||||
\&zero_compare
|
||||
],
|
||||
|
||||
@ -368,7 +368,7 @@ index ece29485f4..756f90c1bd 100644
|
||||
[ "{cmd1}", @prov, "-sign", "-in", $smcont, "-nodetach",
|
||||
"-signer", $smrsa1,
|
||||
"-signer", catfile($smdir, "smrsa2.pem"),
|
||||
@@ -199,7 +199,7 @@ my @smime_pkcs7_tests = (
|
||||
@@ -208,7 +208,7 @@ my @smime_pkcs7_tests = (
|
||||
\&final_compare
|
||||
],
|
||||
|
||||
@ -377,7 +377,7 @@ index ece29485f4..756f90c1bd 100644
|
||||
[ "{cmd1}", @prov, "-sign", "-in", $smcont,
|
||||
"-signer", $smrsa1,
|
||||
"-signer", catfile($smdir, "smrsa2.pem"),
|
||||
@@ -265,7 +265,7 @@ if ($no_fips || $old_fips) {
|
||||
@@ -282,7 +282,7 @@ if ($no_fips || $old_fips) {
|
||||
|
||||
my @smime_cms_tests = (
|
||||
|
||||
@ -386,7 +386,7 @@ index ece29485f4..756f90c1bd 100644
|
||||
[ "{cmd1}", @prov, "-sign", "-in", $smcont, "-outform", "DER",
|
||||
"-nodetach", "-keyid",
|
||||
"-signer", $smrsa1,
|
||||
@@ -278,7 +278,7 @@ my @smime_cms_tests = (
|
||||
@@ -295,7 +295,7 @@ my @smime_cms_tests = (
|
||||
\&final_compare
|
||||
],
|
||||
|
||||
@ -396,5 +396,5 @@ index ece29485f4..756f90c1bd 100644
|
||||
"-signer", $smrsa1,
|
||||
"-signer", catfile($smdir, "smrsa2.pem"),
|
||||
--
|
||||
2.50.0
|
||||
2.52.0
|
||||
|
||||
|
||||
@ -1,54 +1,38 @@
|
||||
From 8774a96fde9355aa32c040c145e4f35d7c09a5bd Mon Sep 17 00:00:00 2001
|
||||
From 62748c233ae3afb8b0797a7d1ce2f391721d2971 Mon Sep 17 00:00:00 2001
|
||||
From: Simo Sorce <simo@redhat.com>
|
||||
Date: Fri, 7 Mar 2025 18:15:13 -0500
|
||||
Subject: [PATCH 44/53] FIPS: NO DES support
|
||||
Subject: [PATCH 44/57] FIPS: NO DES support
|
||||
|
||||
Signed-off-by: Simo Sorce <simo@redhat.com>
|
||||
---
|
||||
providers/fips/fipsprov.c | 3 ++-
|
||||
providers/fips/self_test_data.inc | 5 ++++-
|
||||
providers/fips/fipsprov.c | 4 ----
|
||||
providers/fips/self_test_data.inc | 2 ++
|
||||
test/evp_libctx_test.c | 4 +++-
|
||||
.../30-test_evp_data/evpciph_des3_common.txt | 13 ++++---------
|
||||
test/recipes/30-test_evp_data/evpmac_cmac_des.txt | 10 ----------
|
||||
test/recipes/80-test_cms.t | 2 +-
|
||||
6 files changed, 14 insertions(+), 23 deletions(-)
|
||||
6 files changed, 10 insertions(+), 25 deletions(-)
|
||||
|
||||
diff --git a/providers/fips/fipsprov.c b/providers/fips/fipsprov.c
|
||||
index 84d8e897cc..4b394c3e39 100644
|
||||
index f8f2822300..33e1a179cf 100644
|
||||
--- a/providers/fips/fipsprov.c
|
||||
+++ b/providers/fips/fipsprov.c
|
||||
@@ -355,7 +355,8 @@ static const OSSL_ALGORITHM_CAPABLE fips_ciphers[] = {
|
||||
ossl_cipher_capable_aes_cbc_hmac_sha256),
|
||||
@@ -355,10 +355,6 @@ static const OSSL_ALGORITHM_CAPABLE fips_ciphers[] = {
|
||||
ossl_cipher_capable_aes_cbc_hmac_sha256),
|
||||
ALGC(PROV_NAMES_AES_256_CBC_HMAC_SHA256, ossl_aes256cbc_hmac_sha256_functions,
|
||||
ossl_cipher_capable_aes_cbc_hmac_sha256),
|
||||
ossl_cipher_capable_aes_cbc_hmac_sha256),
|
||||
-#ifndef OPENSSL_NO_DES
|
||||
+/* We don't certify 3DES in our FIPS provider */
|
||||
+#if 0 /* ifndef OPENSSL_NO_DES */
|
||||
ALG(PROV_NAMES_DES_EDE3_ECB, ossl_tdes_ede3_ecb_functions),
|
||||
ALG(PROV_NAMES_DES_EDE3_CBC, ossl_tdes_ede3_cbc_functions),
|
||||
#endif /* OPENSSL_NO_DES */
|
||||
- ALG(PROV_NAMES_DES_EDE3_ECB, ossl_tdes_ede3_ecb_functions),
|
||||
- ALG(PROV_NAMES_DES_EDE3_CBC, ossl_tdes_ede3_cbc_functions),
|
||||
-#endif /* OPENSSL_NO_DES */
|
||||
{ { NULL, NULL, NULL }, NULL }
|
||||
};
|
||||
static OSSL_ALGORITHM exported_fips_ciphers[OSSL_NELEM(fips_ciphers)];
|
||||
diff --git a/providers/fips/self_test_data.inc b/providers/fips/self_test_data.inc
|
||||
index 10ca473764..6a69e1687b 100644
|
||||
index a7d7684d96..d8d23e6f90 100644
|
||||
--- a/providers/fips/self_test_data.inc
|
||||
+++ b/providers/fips/self_test_data.inc
|
||||
@@ -209,6 +209,7 @@ static const ST_KAT_DIGEST st_kat_digest_tests[] =
|
||||
/*- CIPHER TEST DATA */
|
||||
|
||||
/* DES3 test data */
|
||||
+#if 0
|
||||
static const unsigned char des_ede3_cbc_pt[] = {
|
||||
0x6B, 0xC1, 0xBE, 0xE2, 0x2E, 0x40, 0x9F, 0x96,
|
||||
0xE9, 0x3D, 0x7E, 0x11, 0x73, 0x93, 0x17, 0x2A,
|
||||
@@ -229,7 +230,7 @@ static const unsigned char des_ede3_cbc_ct[] = {
|
||||
0x51, 0x65, 0x70, 0x48, 0x1F, 0x25, 0xB5, 0x0F,
|
||||
0x73, 0xC0, 0xBD, 0xA8, 0x5C, 0x8E, 0x0D, 0xA7
|
||||
};
|
||||
-
|
||||
+#endif
|
||||
/* AES-256 GCM test data */
|
||||
static const unsigned char aes_256_gcm_key[] = {
|
||||
0x92, 0xe1, 0x1d, 0xcd, 0xaa, 0x86, 0x6f, 0x5c,
|
||||
@@ -315,6 +316,7 @@ static const ST_KAT_CIPHER st_kat_cipher_tests[] = {
|
||||
@@ -305,6 +305,7 @@ static const ST_KAT_CIPHER st_kat_cipher_tests[] = {
|
||||
CIPHER_MODE_DECRYPT,
|
||||
ITM(aes_128_ecb_key)
|
||||
},
|
||||
@ -56,7 +40,7 @@ index 10ca473764..6a69e1687b 100644
|
||||
#ifndef OPENSSL_NO_DES
|
||||
{
|
||||
{
|
||||
@@ -327,6 +329,7 @@ static const ST_KAT_CIPHER st_kat_cipher_tests[] = {
|
||||
@@ -317,6 +318,7 @@ static const ST_KAT_CIPHER st_kat_cipher_tests[] = {
|
||||
ITM(tdes_key)
|
||||
}
|
||||
#endif
|
||||
@ -65,10 +49,10 @@ index 10ca473764..6a69e1687b 100644
|
||||
|
||||
static const char hkdf_digest[] = "SHA256";
|
||||
diff --git a/test/evp_libctx_test.c b/test/evp_libctx_test.c
|
||||
index 2838f343bd..19dd2c6c63 100644
|
||||
index 773210fadb..e0b4efe3f4 100644
|
||||
--- a/test/evp_libctx_test.c
|
||||
+++ b/test/evp_libctx_test.c
|
||||
@@ -831,7 +831,9 @@ int setup_tests(void)
|
||||
@@ -984,7 +984,9 @@ int setup_tests(void)
|
||||
ADD_TEST(kem_invalid_keytype);
|
||||
#endif
|
||||
#ifndef OPENSSL_NO_DES
|
||||
@ -157,10 +141,10 @@ index a11e5ffe54..e4a7cbe75e 100644
|
||||
-Input = FA620C1BBE97319E9A0CF0492121F7A20EB08A6A709DCBD00AAF38E4F99E754E
|
||||
-Output = 8F49A1B7D6AA2258
|
||||
diff --git a/test/recipes/80-test_cms.t b/test/recipes/80-test_cms.t
|
||||
index 756f90c1bd..ac833d2a2f 100644
|
||||
index beadb43cf4..71ab4a3910 100644
|
||||
--- a/test/recipes/80-test_cms.t
|
||||
+++ b/test/recipes/80-test_cms.t
|
||||
@@ -398,7 +398,7 @@ my @smime_cms_tests = (
|
||||
@@ -415,7 +415,7 @@ my @smime_cms_tests = (
|
||||
\&final_compare
|
||||
],
|
||||
|
||||
@ -170,5 +154,5 @@ index 756f90c1bd..ac833d2a2f 100644
|
||||
"-des3", "-secretkey", "000102030405060708090A0B0C0D0E0F1011121314151617",
|
||||
"-stream", "-out", "{output}.cms" ],
|
||||
--
|
||||
2.50.0
|
||||
2.52.0
|
||||
|
||||
|
||||
@ -1,38 +1,37 @@
|
||||
From e466bb4e4fa16481cbf44b410933e6dceb8d27d9 Mon Sep 17 00:00:00 2001
|
||||
From 7afd41a086ff9d3c39ff592e26d006c769e2a6d7 Mon Sep 17 00:00:00 2001
|
||||
From: Simo Sorce <simo@redhat.com>
|
||||
Date: Fri, 7 Mar 2025 18:22:07 -0500
|
||||
Subject: [PATCH 45/53] FIPS: NO Kmac
|
||||
Subject: [PATCH 45/57] FIPS: NO Kmac
|
||||
|
||||
Signed-off-by: Simo Sorce <simo@redhat.com>
|
||||
---
|
||||
providers/fips/fipsprov.c | 10 +-
|
||||
providers/fips/fipsprov.c | 9 +-
|
||||
providers/fips/self_test_data.inc | 4 +
|
||||
test/recipes/30-test_evp.t | 2 +-
|
||||
test/recipes/30-test_evp_data/evpkdf_hkdf.txt | 2 +-
|
||||
.../30-test_evp_data/evpkdf_kbkdf_counter.txt | 2 +-
|
||||
test/recipes/30-test_evp_data/evpkdf_ss.txt | 6 +-
|
||||
.../30-test_evp_data/evpmac_common.txt | 100 ++++--------------
|
||||
7 files changed, 40 insertions(+), 86 deletions(-)
|
||||
7 files changed, 39 insertions(+), 86 deletions(-)
|
||||
|
||||
diff --git a/providers/fips/fipsprov.c b/providers/fips/fipsprov.c
|
||||
index 4b394c3e39..8f00dfa0ef 100644
|
||||
index 33e1a179cf..7930cf3241 100644
|
||||
--- a/providers/fips/fipsprov.c
|
||||
+++ b/providers/fips/fipsprov.c
|
||||
@@ -294,10 +294,11 @@ static const OSSL_ALGORITHM fips_digests[] = {
|
||||
@@ -294,10 +294,10 @@ static const OSSL_ALGORITHM fips_digests[] = {
|
||||
* KECCAK-KMAC-128 and KECCAK-KMAC-256 as hashes are mostly useful for
|
||||
* KMAC128 and KMAC256.
|
||||
*/
|
||||
- { PROV_NAMES_KECCAK_KMAC_128, FIPS_DEFAULT_PROPERTIES,
|
||||
+ /* We don't certify KECCAK in our FIPS provider */
|
||||
+ /* { PROV_NAMES_KECCAK_KMAC_128, FIPS_DEFAULT_PROPERTIES,
|
||||
ossl_keccak_kmac_128_functions },
|
||||
ossl_keccak_kmac_128_functions },
|
||||
{ PROV_NAMES_KECCAK_KMAC_256, FIPS_DEFAULT_PROPERTIES,
|
||||
- ossl_keccak_kmac_256_functions },
|
||||
+ ossl_keccak_kmac_256_functions }, */
|
||||
- ossl_keccak_kmac_256_functions },
|
||||
+ ossl_keccak_kmac_256_functions }, */
|
||||
{ NULL, NULL, NULL }
|
||||
};
|
||||
|
||||
@@ -370,8 +371,9 @@ static const OSSL_ALGORITHM fips_macs[] = {
|
||||
@@ -365,8 +365,9 @@ static const OSSL_ALGORITHM fips_macs[] = {
|
||||
#endif
|
||||
{ PROV_NAMES_GMAC, FIPS_DEFAULT_PROPERTIES, ossl_gmac_functions },
|
||||
{ PROV_NAMES_HMAC, FIPS_DEFAULT_PROPERTIES, ossl_hmac_functions },
|
||||
@ -45,10 +44,10 @@ index 4b394c3e39..8f00dfa0ef 100644
|
||||
};
|
||||
|
||||
diff --git a/providers/fips/self_test_data.inc b/providers/fips/self_test_data.inc
|
||||
index 6a69e1687b..f3059a8446 100644
|
||||
index d8d23e6f90..43f7c89fd6 100644
|
||||
--- a/providers/fips/self_test_data.inc
|
||||
+++ b/providers/fips/self_test_data.inc
|
||||
@@ -544,6 +544,7 @@ static const ST_KAT_PARAM kbkdf_params[] = {
|
||||
@@ -533,6 +533,7 @@ static const ST_KAT_PARAM kbkdf_params[] = {
|
||||
ST_KAT_PARAM_END()
|
||||
};
|
||||
|
||||
@ -56,7 +55,7 @@ index 6a69e1687b..f3059a8446 100644
|
||||
static const char kbkdf_kmac_mac[] = "KMAC128";
|
||||
static unsigned char kbkdf_kmac_label[] = {
|
||||
0xB5, 0xB5, 0xF3, 0x71, 0x9F, 0xBE, 0x5B, 0x3D,
|
||||
@@ -570,6 +571,7 @@ static const ST_KAT_PARAM kbkdf_kmac_params[] = {
|
||||
@@ -559,6 +560,7 @@ static const ST_KAT_PARAM kbkdf_kmac_params[] = {
|
||||
ST_KAT_PARAM_OCTET(OSSL_KDF_PARAM_INFO, kbkdf_kmac_context),
|
||||
ST_KAT_PARAM_END()
|
||||
};
|
||||
@ -64,7 +63,7 @@ index 6a69e1687b..f3059a8446 100644
|
||||
|
||||
static const char tls13_kdf_digest[] = "SHA256";
|
||||
static int tls13_kdf_extract_mode = EVP_KDF_HKDF_MODE_EXTRACT_ONLY;
|
||||
@@ -660,12 +662,14 @@ static const ST_KAT_KDF st_kat_kdf_tests[] =
|
||||
@@ -649,12 +651,14 @@ static const ST_KAT_KDF st_kat_kdf_tests[] =
|
||||
kbkdf_params,
|
||||
ITM(kbkdf_expected)
|
||||
},
|
||||
@ -422,5 +421,5 @@ index 831eecbac9..af92ceea98 100644
|
||||
-Custom = ""
|
||||
-Output = 75358CF39E41494E949707927CEE0AF20A3FF553904C86B08F21CC414BCFD691589D27CF5E15369CBBFF8B9A4C2EB17800855D0235FF635DA82533EC6B759B69
|
||||
--
|
||||
2.50.0
|
||||
2.52.0
|
||||
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
From 0d1de1053dc1b4b9a1e14b622311d0449c64e19e Mon Sep 17 00:00:00 2001
|
||||
From d6a6afdc614ce0e6273554f50c18cd70000cff01 Mon Sep 17 00:00:00 2001
|
||||
From: Simo Sorce <simo@redhat.com>
|
||||
Date: Mon, 10 Mar 2025 13:52:50 -0400
|
||||
Subject: [PATCH 46/53] FIPS: Fix some tests due to our versioning change
|
||||
Subject: [PATCH 46/57] FIPS: Fix some tests due to our versioning change
|
||||
|
||||
Signed-off-by: Simo Sorce <simo@redhat.com>
|
||||
---
|
||||
@ -102,5 +102,5 @@ index af47842fd8..21c75033e8 100644
|
||||
|
||||
my @tests_mldsa_tls_1_3 = (
|
||||
--
|
||||
2.50.0
|
||||
2.52.0
|
||||
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
From e47db9280144065c4221537f1d44baa750a25d64 Mon Sep 17 00:00:00 2001
|
||||
From 607a195b374a6072c87a500713cea78347b7d252 Mon Sep 17 00:00:00 2001
|
||||
From: Simo Sorce <simo@redhat.com>
|
||||
Date: Wed, 12 Feb 2025 17:25:47 -0500
|
||||
Subject: [PATCH 47/53] Current Rebase status
|
||||
Subject: [PATCH 47/57] Current Rebase status
|
||||
|
||||
Signed-off-by: Simo Sorce <simo@redhat.com>
|
||||
---
|
||||
@ -102,5 +102,5 @@ index 2833a383c1..c8f6c992a8 100644
|
||||
+./Configure --prefix=$HOME/tmp/openssl-rebase --openssldir=$HOME/tmp/openssl-rebase/etc/pki/tls enable-ec_nistp_64_gcc_128 --system-ciphers-file=$HOME/tmp/openssl-rebase/etc/crypto-policies/back-ends/opensslcnf.config zlib enable-camellia enable-seed enable-rfc3779 enable-sctp enable-cms enable-md2 enable-rc5 enable-ktls enable-fips no-mdc2 no-ec2m no-sm2 no-sm4 no-atexit enable-buildtest-c++ shared linux-x86_64 $RPM_OPT_FLAGS '-DDEVRANDOM="\"/dev/urandom\"" -DOPENSSL_PEDANTIC_ZEROIZATION -DREDHAT_FIPS_VENDOR="\"Red Hat Enterprise Linux OpenSSL FIPS Provider\"" -DREDHAT_FIPS_VERSION="\"3.5.0-4c714d97fd77d1a8\""' -Wl,--allow-multiple-definition
|
||||
+
|
||||
--
|
||||
2.50.0
|
||||
2.52.0
|
||||
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
From d0063158bcf9321daec1ffcbfeb3d7b085aebce3 Mon Sep 17 00:00:00 2001
|
||||
From be07c8ed65b9657227d03b905b9a490bd14bd173 Mon Sep 17 00:00:00 2001
|
||||
From: Simo Sorce <simo@redhat.com>
|
||||
Date: Mon, 14 Apr 2025 15:25:40 -0400
|
||||
Subject: [PATCH 48/53] FIPS: KDF key lenght errors
|
||||
Subject: [PATCH 48/57] FIPS: KDF key lenght errors
|
||||
|
||||
Signed-off-by: Simo Sorce <simo@redhat.com>
|
||||
---
|
||||
@ -171,5 +171,5 @@ index 1fb2472001..93c07ede7c 100644
|
||||
|
||||
# Test that the key whose length is shorter than 112 bits is reported as
|
||||
--
|
||||
2.50.0
|
||||
2.52.0
|
||||
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
From 91000e60a38106701dd76deb37eafe165e7802a3 Mon Sep 17 00:00:00 2001
|
||||
From 53462749e29bd8f96e52f3f31cf1de2114e896c3 Mon Sep 17 00:00:00 2001
|
||||
From: Simo Sorce <simo@redhat.com>
|
||||
Date: Tue, 15 Apr 2025 13:41:42 -0400
|
||||
Subject: [PATCH 49/53] FIPS: fix disallowed digests tests
|
||||
Subject: [PATCH 49/57] FIPS: fix disallowed digests tests
|
||||
|
||||
Signed-off-by: Simo Sorce <simo@redhat.com>
|
||||
---
|
||||
@ -47,5 +47,5 @@ index 6688c217aa..8347f773e6 100644
|
||||
# Test that the key whose length is shorter than 112 bits is reported as
|
||||
# unapproved
|
||||
--
|
||||
2.50.0
|
||||
2.52.0
|
||||
|
||||
|
||||
@ -1,18 +1,18 @@
|
||||
From 99d3ce80ecf3252962a1b79dd57324f08b62cc18 Mon Sep 17 00:00:00 2001
|
||||
From ed9fd546659e691f51df032d6e364cee45c3bf0b Mon Sep 17 00:00:00 2001
|
||||
From: Dmitry Belyavskiy <beldmit@gmail.com>
|
||||
Date: Fri, 9 May 2025 15:09:46 +0200
|
||||
Subject: [PATCH 50/53] Make `openssl speed` run in FIPS mode
|
||||
Subject: [PATCH 50/57] Make `openssl speed` run in FIPS mode
|
||||
|
||||
---
|
||||
apps/speed.c | 44 ++++++++++++++++++++++----------------------
|
||||
1 file changed, 22 insertions(+), 22 deletions(-)
|
||||
|
||||
diff --git a/apps/speed.c b/apps/speed.c
|
||||
index 3307a9cb46..ae2f166d24 100644
|
||||
index 13c8505ed9..c31e30f235 100644
|
||||
--- a/apps/speed.c
|
||||
+++ b/apps/speed.c
|
||||
@@ -3172,18 +3172,18 @@ int speed_main(int argc, char **argv)
|
||||
(void *)key32, 16);
|
||||
@@ -3231,18 +3231,18 @@ int speed_main(int argc, char **argv)
|
||||
(void *)key32, 16);
|
||||
params[1] = OSSL_PARAM_construct_end();
|
||||
|
||||
- if (mac_setup("KMAC-128", &mac, params, loopargs, loopargs_len) < 1)
|
||||
@ -41,8 +41,8 @@ index 3307a9cb46..ae2f166d24 100644
|
||||
}
|
||||
|
||||
if (doit[D_KMAC256]) {
|
||||
@@ -3193,18 +3193,18 @@ int speed_main(int argc, char **argv)
|
||||
(void *)key32, 32);
|
||||
@@ -3252,18 +3252,18 @@ int speed_main(int argc, char **argv)
|
||||
(void *)key32, 32);
|
||||
params[1] = OSSL_PARAM_construct_end();
|
||||
|
||||
- if (mac_setup("KMAC-256", &mac, params, loopargs, loopargs_len) < 1)
|
||||
@ -72,5 +72,5 @@ index 3307a9cb46..ae2f166d24 100644
|
||||
|
||||
for (i = 0; i < loopargs_len; i++)
|
||||
--
|
||||
2.50.0
|
||||
2.52.0
|
||||
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
From 5b20574f75a2c525bf30ea304292ecd93eb72091 Mon Sep 17 00:00:00 2001
|
||||
From b03deba991f7f0677127f6030fde0011ab30430b Mon Sep 17 00:00:00 2001
|
||||
From: Dmitry Belyavskiy <beldmit@gmail.com>
|
||||
Date: Mon, 12 May 2025 14:34:39 +0200
|
||||
Subject: [PATCH 51/53] Backport upstream #27483 for PKCS11 needs
|
||||
Subject: [PATCH 51/57] Backport upstream #27483 for PKCS11 needs
|
||||
|
||||
---
|
||||
.../implementations/skeymgmt/aes_skmgmt.c | 2 +
|
||||
@ -11,7 +11,7 @@ Subject: [PATCH 51/53] Backport upstream #27483 for PKCS11 needs
|
||||
4 files changed, 76 insertions(+)
|
||||
|
||||
diff --git a/providers/implementations/skeymgmt/aes_skmgmt.c b/providers/implementations/skeymgmt/aes_skmgmt.c
|
||||
index 6d3b5f377f..17be480131 100644
|
||||
index 02370b7fb7..48e3b64580 100644
|
||||
--- a/providers/implementations/skeymgmt/aes_skmgmt.c
|
||||
+++ b/providers/implementations/skeymgmt/aes_skmgmt.c
|
||||
@@ -48,5 +48,7 @@ const OSSL_DISPATCH ossl_aes_skeymgmt_functions[] = {
|
||||
@ -23,7 +23,7 @@ index 6d3b5f377f..17be480131 100644
|
||||
OSSL_DISPATCH_END
|
||||
};
|
||||
diff --git a/providers/implementations/skeymgmt/generic.c b/providers/implementations/skeymgmt/generic.c
|
||||
index b41bf8e12d..5fb3fad7e3 100644
|
||||
index 5b8c557f83..faec12374a 100644
|
||||
--- a/providers/implementations/skeymgmt/generic.c
|
||||
+++ b/providers/implementations/skeymgmt/generic.c
|
||||
@@ -65,6 +65,16 @@ end:
|
||||
@ -41,7 +41,7 @@ index b41bf8e12d..5fb3fad7e3 100644
|
||||
+}
|
||||
+
|
||||
int generic_export(void *keydata, int selection,
|
||||
OSSL_CALLBACK *param_callback, void *cbarg)
|
||||
OSSL_CALLBACK *param_callback, void *cbarg)
|
||||
{
|
||||
@@ -89,5 +99,7 @@ const OSSL_DISPATCH ossl_generic_skeymgmt_functions[] = {
|
||||
{ OSSL_FUNC_SKEYMGMT_FREE, (void (*)(void))generic_free },
|
||||
@ -52,7 +52,7 @@ index b41bf8e12d..5fb3fad7e3 100644
|
||||
OSSL_DISPATCH_END
|
||||
};
|
||||
diff --git a/providers/implementations/skeymgmt/skeymgmt_lcl.h b/providers/implementations/skeymgmt/skeymgmt_lcl.h
|
||||
index c180c1d303..a7e7605050 100644
|
||||
index c75776cce4..7e35b2cc9e 100644
|
||||
--- a/providers/implementations/skeymgmt/skeymgmt_lcl.h
|
||||
+++ b/providers/implementations/skeymgmt/skeymgmt_lcl.h
|
||||
@@ -15,5 +15,6 @@
|
||||
@ -63,10 +63,10 @@ index c180c1d303..a7e7605050 100644
|
||||
|
||||
#endif
|
||||
diff --git a/test/evp_skey_test.c b/test/evp_skey_test.c
|
||||
index b81df9c8f8..e33bbbe003 100644
|
||||
index 7fd70ca732..dddf92f9da 100644
|
||||
--- a/test/evp_skey_test.c
|
||||
+++ b/test/evp_skey_test.c
|
||||
@@ -92,6 +92,66 @@ end:
|
||||
@@ -107,6 +107,66 @@ end:
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -133,7 +133,7 @@ index b81df9c8f8..e33bbbe003 100644
|
||||
#define IV_SIZE 16
|
||||
#define DATA_SIZE 32
|
||||
static int test_aes_raw_skey(void)
|
||||
@@ -252,6 +312,7 @@ int setup_tests(void)
|
||||
@@ -267,6 +327,7 @@ int setup_tests(void)
|
||||
return 0;
|
||||
|
||||
ADD_TEST(test_skey_cipher);
|
||||
@ -142,5 +142,5 @@ index b81df9c8f8..e33bbbe003 100644
|
||||
ADD_TEST(test_aes_raw_skey);
|
||||
#ifndef OPENSSL_NO_DES
|
||||
--
|
||||
2.50.0
|
||||
2.52.0
|
||||
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
From fcba6e3c26d76ce26ef140f3d07f9cc15e7d98fa Mon Sep 17 00:00:00 2001
|
||||
From 4a6768577382850dd3f3580f232a2a2ac7ed09c2 Mon Sep 17 00:00:00 2001
|
||||
From: Dmitry Belyavskiy <beldmit@gmail.com>
|
||||
Date: Mon, 12 May 2025 16:21:23 +0200
|
||||
Subject: [PATCH 52/53] Red Hat 9 FIPS indicator defines
|
||||
Subject: [PATCH 52/57] Red Hat 9 FIPS indicator defines
|
||||
|
||||
---
|
||||
include/openssl/evp.h | 15 +++++++++++++++
|
||||
@ -10,10 +10,10 @@ Subject: [PATCH 52/53] Red Hat 9 FIPS indicator defines
|
||||
3 files changed, 26 insertions(+)
|
||||
|
||||
diff --git a/include/openssl/evp.h b/include/openssl/evp.h
|
||||
index e5da1e6415..3849c1779e 100644
|
||||
index e83ad13183..afa8f7a542 100644
|
||||
--- a/include/openssl/evp.h
|
||||
+++ b/include/openssl/evp.h
|
||||
@@ -779,6 +779,10 @@ void EVP_CIPHER_CTX_set_flags(EVP_CIPHER_CTX *ctx, int flags);
|
||||
@@ -767,6 +767,10 @@ void EVP_CIPHER_CTX_set_flags(EVP_CIPHER_CTX *ctx, int flags);
|
||||
void EVP_CIPHER_CTX_clear_flags(EVP_CIPHER_CTX *ctx, int flags);
|
||||
int EVP_CIPHER_CTX_test_flags(const EVP_CIPHER_CTX *ctx, int flags);
|
||||
|
||||
@ -22,21 +22,21 @@ index e5da1e6415..3849c1779e 100644
|
||||
+# define EVP_CIPHER_REDHAT_FIPS_INDICATOR_NOT_APPROVED 2
|
||||
+
|
||||
__owur int EVP_EncryptInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher,
|
||||
const unsigned char *key, const unsigned char *iv);
|
||||
const unsigned char *key, const unsigned char *iv);
|
||||
__owur int EVP_EncryptInit_ex(EVP_CIPHER_CTX *ctx,
|
||||
@@ -850,6 +854,10 @@ __owur int EVP_CipherPipelineFinal(EVP_CIPHER_CTX *ctx,
|
||||
@@ -838,6 +842,10 @@ __owur int EVP_CipherPipelineFinal(EVP_CIPHER_CTX *ctx,
|
||||
__owur int EVP_CipherFinal_ex(EVP_CIPHER_CTX *ctx, unsigned char *outm,
|
||||
int *outl);
|
||||
int *outl);
|
||||
|
||||
+# define EVP_SIGNATURE_REDHAT_FIPS_INDICATOR_UNDETERMINED 0
|
||||
+# define EVP_SIGNATURE_REDHAT_FIPS_INDICATOR_APPROVED 1
|
||||
+# define EVP_SIGNATURE_REDHAT_FIPS_INDICATOR_NOT_APPROVED 2
|
||||
+
|
||||
__owur int EVP_SignFinal(EVP_MD_CTX *ctx, unsigned char *md, unsigned int *s,
|
||||
EVP_PKEY *pkey);
|
||||
EVP_PKEY *pkey);
|
||||
__owur int EVP_SignFinal_ex(EVP_MD_CTX *ctx, unsigned char *md, unsigned int *s,
|
||||
@@ -1249,6 +1257,9 @@ void EVP_MD_do_all_provided(OSSL_LIB_CTX *libctx,
|
||||
void *arg);
|
||||
@@ -1240,6 +1248,9 @@ void EVP_MD_do_all_provided(OSSL_LIB_CTX *libctx,
|
||||
void *arg);
|
||||
|
||||
/* MAC stuff */
|
||||
+# define EVP_MAC_REDHAT_FIPS_INDICATOR_UNDETERMINED 0
|
||||
@ -44,35 +44,35 @@ index e5da1e6415..3849c1779e 100644
|
||||
+# define EVP_MAC_REDHAT_FIPS_INDICATOR_NOT_APPROVED 2
|
||||
|
||||
EVP_MAC *EVP_MAC_fetch(OSSL_LIB_CTX *libctx, const char *algorithm,
|
||||
const char *properties);
|
||||
@@ -1826,6 +1837,10 @@ OSSL_DEPRECATEDIN_3_0 size_t EVP_PKEY_meth_get_count(void);
|
||||
const char *properties);
|
||||
@@ -1816,6 +1827,10 @@ OSSL_DEPRECATEDIN_3_0 size_t EVP_PKEY_meth_get_count(void);
|
||||
OSSL_DEPRECATEDIN_3_0 const EVP_PKEY_METHOD *EVP_PKEY_meth_get0(size_t idx);
|
||||
# endif
|
||||
#endif
|
||||
|
||||
+# define EVP_PKEY_REDHAT_FIPS_INDICATOR_UNDETERMINED 0
|
||||
+# define EVP_PKEY_REDHAT_FIPS_INDICATOR_APPROVED 1
|
||||
+# define EVP_PKEY_REDHAT_FIPS_INDICATOR_NOT_APPROVED 2
|
||||
+
|
||||
EVP_KEYMGMT *EVP_KEYMGMT_fetch(OSSL_LIB_CTX *ctx, const char *algorithm,
|
||||
const char *properties);
|
||||
const char *properties);
|
||||
int EVP_KEYMGMT_up_ref(EVP_KEYMGMT *keymgmt);
|
||||
diff --git a/include/openssl/kdf.h b/include/openssl/kdf.h
|
||||
index 0983230a48..86171635ea 100644
|
||||
index d06ca6c69d..e061f0164f 100644
|
||||
--- a/include/openssl/kdf.h
|
||||
+++ b/include/openssl/kdf.h
|
||||
@@ -63,6 +63,10 @@ int EVP_KDF_names_do_all(const EVP_KDF *kdf,
|
||||
# define EVP_KDF_HKDF_MODE_EXTRACT_ONLY 1
|
||||
# define EVP_KDF_HKDF_MODE_EXPAND_ONLY 2
|
||||
#define EVP_KDF_HKDF_MODE_EXTRACT_ONLY 1
|
||||
#define EVP_KDF_HKDF_MODE_EXPAND_ONLY 2
|
||||
|
||||
+# define EVP_KDF_REDHAT_FIPS_INDICATOR_UNDETERMINED 0
|
||||
+# define EVP_KDF_REDHAT_FIPS_INDICATOR_APPROVED 1
|
||||
+# define EVP_KDF_REDHAT_FIPS_INDICATOR_NOT_APPROVED 2
|
||||
+
|
||||
#define EVP_KDF_SSHKDF_TYPE_INITIAL_IV_CLI_TO_SRV 65
|
||||
#define EVP_KDF_SSHKDF_TYPE_INITIAL_IV_SRV_TO_CLI 66
|
||||
#define EVP_KDF_SSHKDF_TYPE_INITIAL_IV_CLI_TO_SRV 65
|
||||
#define EVP_KDF_SSHKDF_TYPE_INITIAL_IV_SRV_TO_CLI 66
|
||||
#define EVP_KDF_SSHKDF_TYPE_ENCRYPTION_KEY_CLI_TO_SRV 67
|
||||
diff --git a/util/perl/OpenSSL/paramnames.pm b/util/perl/OpenSSL/paramnames.pm
|
||||
index 059b489735..5a1864309d 100644
|
||||
index 262c184ca2..6009253440 100644
|
||||
--- a/util/perl/OpenSSL/paramnames.pm
|
||||
+++ b/util/perl/OpenSSL/paramnames.pm
|
||||
@@ -143,6 +143,8 @@ my %params = (
|
||||
@ -125,5 +125,5 @@ index 059b489735..5a1864309d 100644
|
||||
'KEM_PARAM_FIPS_KEY_CHECK' => '*PKEY_PARAM_FIPS_KEY_CHECK',
|
||||
'KEM_PARAM_FIPS_APPROVED_INDICATOR' => '*ALG_PARAM_FIPS_APPROVED_INDICATOR',
|
||||
--
|
||||
2.50.0
|
||||
2.52.0
|
||||
|
||||
|
||||
@ -1,21 +1,21 @@
|
||||
From 75c77ea5f36dbf6d21940ab5bf87dff6acd5b8d6 Mon Sep 17 00:00:00 2001
|
||||
From 1b1a5447386cf8a149c4cd603c893a691eb210b5 Mon Sep 17 00:00:00 2001
|
||||
From: Dmitry Belyavskiy <beldmit@gmail.com>
|
||||
Date: Fri, 30 May 2025 16:17:37 +0200
|
||||
Subject: [PATCH 53/53] Allow hybrid MLKEM in FIPS mode
|
||||
Subject: [PATCH 53/57] Allow hybrid MLKEM in FIPS mode
|
||||
|
||||
---
|
||||
crypto/ml_kem/ml_kem.c | 11 ++--
|
||||
include/crypto/ml_kem.h | 2 +
|
||||
providers/defltprov.c | 8 +--
|
||||
include/crypto/ml_kem.h | 1 +
|
||||
providers/defltprov.c | 14 ++---
|
||||
providers/implementations/kem/mlx_kem.c | 33 +++++++++-
|
||||
providers/implementations/keymgmt/mlx_kmgmt.c | 61 ++++++++++++++++++-
|
||||
5 files changed, 103 insertions(+), 12 deletions(-)
|
||||
5 files changed, 105 insertions(+), 15 deletions(-)
|
||||
|
||||
diff --git a/crypto/ml_kem/ml_kem.c b/crypto/ml_kem/ml_kem.c
|
||||
index 4474af0f87..6eca7dc29d 100644
|
||||
index dd8a39197a..833abf9f1d 100644
|
||||
--- a/crypto/ml_kem/ml_kem.c
|
||||
+++ b/crypto/ml_kem/ml_kem.c
|
||||
@@ -1613,6 +1613,7 @@ ML_KEM_KEY *ossl_ml_kem_key_new(OSSL_LIB_CTX *libctx, const char *properties,
|
||||
@@ -1924,6 +1924,7 @@ ML_KEM_KEY *ossl_ml_kem_key_new(OSSL_LIB_CTX *libctx, const char *properties,
|
||||
{
|
||||
const ML_KEM_VINFO *vinfo = ossl_ml_kem_get_vinfo(evp_type);
|
||||
ML_KEM_KEY *key;
|
||||
@ -23,7 +23,7 @@ index 4474af0f87..6eca7dc29d 100644
|
||||
|
||||
if (vinfo == NULL) {
|
||||
ERR_raise_data(ERR_LIB_CRYPTO, ERR_R_PASSED_INVALID_ARGUMENT,
|
||||
@@ -1623,15 +1624,17 @@ ML_KEM_KEY *ossl_ml_kem_key_new(OSSL_LIB_CTX *libctx, const char *properties,
|
||||
@@ -1934,15 +1935,17 @@ ML_KEM_KEY *ossl_ml_kem_key_new(OSSL_LIB_CTX *libctx, const char *properties,
|
||||
if ((key = OPENSSL_malloc(sizeof(*key))) == NULL)
|
||||
return NULL;
|
||||
|
||||
@ -46,45 +46,51 @@ index 4474af0f87..6eca7dc29d 100644
|
||||
if (key->shake128_md != NULL
|
||||
&& key->shake256_md != NULL
|
||||
diff --git a/include/crypto/ml_kem.h b/include/crypto/ml_kem.h
|
||||
index 67d55697e9..ab1aaae8ac 100644
|
||||
index dbe9192364..35dcbbf32c 100644
|
||||
--- a/include/crypto/ml_kem.h
|
||||
+++ b/include/crypto/ml_kem.h
|
||||
@@ -278,4 +278,6 @@ int ossl_ml_kem_decap(uint8_t *shared_secret, size_t slen,
|
||||
__owur
|
||||
int ossl_ml_kem_pubkey_cmp(const ML_KEM_KEY *key1, const ML_KEM_KEY *key2);
|
||||
@@ -268,4 +268,5 @@ __owur int ossl_ml_kem_decap(uint8_t *shared_secret, size_t slen,
|
||||
/* Compare the public key hashes of two keys */
|
||||
__owur int ossl_ml_kem_pubkey_cmp(const ML_KEM_KEY *key1, const ML_KEM_KEY *key2);
|
||||
|
||||
+char *get_adjusted_propq(const char *propq);
|
||||
+
|
||||
#endif /* OPENSSL_HEADER_ML_KEM_H */
|
||||
#endif /* OPENSSL_HEADER_ML_KEM_H */
|
||||
diff --git a/providers/defltprov.c b/providers/defltprov.c
|
||||
index eee2178b41..0dba017f3f 100644
|
||||
index 90655395c1..f74b160d6f 100644
|
||||
--- a/providers/defltprov.c
|
||||
+++ b/providers/defltprov.c
|
||||
@@ -517,8 +517,8 @@ static const OSSL_ALGORITHM deflt_asym_kem[] = {
|
||||
{ "X448MLKEM1024", "provider=default", ossl_mlx_kem_asym_kem_functions },
|
||||
# endif
|
||||
# if !defined(OPENSSL_NO_EC)
|
||||
#endif
|
||||
#if !defined(OPENSSL_NO_EC)
|
||||
- { "SecP256r1MLKEM768", "provider=default", ossl_mlx_kem_asym_kem_functions },
|
||||
- { "SecP384r1MLKEM1024", "provider=default", ossl_mlx_kem_asym_kem_functions },
|
||||
+ { "SecP256r1MLKEM768", "provider=default,fips=yes", ossl_mlx_kem_asym_kem_functions },
|
||||
+ { "SecP384r1MLKEM1024", "provider=default,fips=yes", ossl_mlx_kem_asym_kem_functions },
|
||||
# endif
|
||||
#endif
|
||||
#endif
|
||||
{ NULL, NULL, NULL }
|
||||
@@ -597,9 +597,9 @@ static const OSSL_ALGORITHM deflt_keymgmt[] = {
|
||||
PROV_DESCS_X448MLKEM1024 },
|
||||
# endif
|
||||
# if !defined(OPENSSL_NO_EC)
|
||||
- { PROV_NAMES_SecP256r1MLKEM768, "provider=default", ossl_mlx_p256_kem_kmgmt_functions,
|
||||
+ { PROV_NAMES_SecP256r1MLKEM768, "provider=default,fips=yes", ossl_mlx_p256_kem_kmgmt_functions,
|
||||
PROV_DESCS_SecP256r1MLKEM768 },
|
||||
- { PROV_NAMES_SecP384r1MLKEM1024, "provider=default", ossl_mlx_p384_kem_kmgmt_functions,
|
||||
+ { PROV_NAMES_SecP384r1MLKEM1024, "provider=default,fips=yes", ossl_mlx_p384_kem_kmgmt_functions,
|
||||
PROV_DESCS_SecP384r1MLKEM1024 },
|
||||
# endif
|
||||
@@ -594,13 +594,13 @@ static const OSSL_ALGORITHM deflt_keymgmt[] = {
|
||||
{ PROV_NAMES_X25519MLKEM768, "provider=default", ossl_mlx_x25519_kem_kmgmt_functions,
|
||||
PROV_DESCS_X25519MLKEM768 },
|
||||
{ PROV_NAMES_X448MLKEM1024, "provider=default", ossl_mlx_x448_kem_kmgmt_functions,
|
||||
- PROV_DESCS_X448MLKEM1024 },
|
||||
+ PROV_DESCS_X448MLKEM1024 },
|
||||
#endif
|
||||
#if !defined(OPENSSL_NO_EC)
|
||||
- { PROV_NAMES_SecP256r1MLKEM768, "provider=default", ossl_mlx_p256_kem_kmgmt_functions,
|
||||
- PROV_DESCS_SecP256r1MLKEM768 },
|
||||
- { PROV_NAMES_SecP384r1MLKEM1024, "provider=default", ossl_mlx_p384_kem_kmgmt_functions,
|
||||
- PROV_DESCS_SecP384r1MLKEM1024 },
|
||||
+ { PROV_NAMES_SecP256r1MLKEM768, "provider=default,fips=yes", ossl_mlx_p256_kem_kmgmt_functions,
|
||||
+ PROV_DESCS_SecP256r1MLKEM768 },
|
||||
+ { PROV_NAMES_SecP384r1MLKEM1024, "provider=default,fips=yes", ossl_mlx_p384_kem_kmgmt_functions,
|
||||
+ PROV_DESCS_SecP384r1MLKEM1024 },
|
||||
#endif
|
||||
#endif
|
||||
#ifndef OPENSSL_NO_SLH_DSA
|
||||
diff --git a/providers/implementations/kem/mlx_kem.c b/providers/implementations/kem/mlx_kem.c
|
||||
index 197c345d85..08fbf99a76 100644
|
||||
index 376b3342dd..09fa003612 100644
|
||||
--- a/providers/implementations/kem/mlx_kem.c
|
||||
+++ b/providers/implementations/kem/mlx_kem.c
|
||||
@@ -19,6 +19,7 @@
|
||||
@ -122,7 +128,7 @@ index 197c345d85..08fbf99a76 100644
|
||||
+}
|
||||
+
|
||||
static int mlx_kem_encapsulate(void *vctx, unsigned char *ctext, size_t *clen,
|
||||
unsigned char *shsec, size_t *slen)
|
||||
unsigned char *shsec, size_t *slen)
|
||||
{
|
||||
@@ -115,6 +138,7 @@ static int mlx_kem_encapsulate(void *vctx, unsigned char *ctext, size_t *clen,
|
||||
uint8_t *sbuf;
|
||||
@ -142,15 +148,15 @@ index 197c345d85..08fbf99a76 100644
|
||||
if (ctx == NULL
|
||||
|| EVP_PKEY_encapsulate_init(ctx, NULL) <= 0
|
||||
|| EVP_PKEY_encapsulate(ctx, cbuf, &encap_clen, sbuf, &encap_slen) <= 0)
|
||||
@@ -237,6 +262,7 @@ static int mlx_kem_encapsulate(void *vctx, unsigned char *ctext, size_t *clen,
|
||||
end:
|
||||
@@ -238,6 +263,7 @@ static int mlx_kem_encapsulate(void *vctx, unsigned char *ctext, size_t *clen,
|
||||
end:
|
||||
EVP_PKEY_free(xkey);
|
||||
EVP_PKEY_CTX_free(ctx);
|
||||
+ OPENSSL_free(adjusted_propq);
|
||||
return ret;
|
||||
}
|
||||
|
||||
@@ -252,6 +278,7 @@ static int mlx_kem_decapsulate(void *vctx, uint8_t *shsec, size_t *slen,
|
||||
@@ -253,6 +279,7 @@ static int mlx_kem_decapsulate(void *vctx, uint8_t *shsec, size_t *slen,
|
||||
size_t decap_clen = key->minfo->ctext_bytes + key->xinfo->pubkey_bytes;
|
||||
int ml_kem_slot = key->xinfo->ml_kem_slot;
|
||||
int ret = 0;
|
||||
@ -158,7 +164,7 @@ index 197c345d85..08fbf99a76 100644
|
||||
|
||||
if (!mlx_kem_have_prvkey(key)) {
|
||||
ERR_raise(ERR_LIB_PROV, PROV_R_MISSING_KEY);
|
||||
@@ -287,7 +314,8 @@ static int mlx_kem_decapsulate(void *vctx, uint8_t *shsec, size_t *slen,
|
||||
@@ -288,7 +315,8 @@ static int mlx_kem_decapsulate(void *vctx, uint8_t *shsec, size_t *slen,
|
||||
decap_slen = ML_KEM_SHARED_SECRET_BYTES;
|
||||
cbuf = ctext + ml_kem_slot * key->xinfo->pubkey_bytes;
|
||||
sbuf = shsec + ml_kem_slot * key->xinfo->shsec_bytes;
|
||||
@ -168,8 +174,8 @@ index 197c345d85..08fbf99a76 100644
|
||||
if (ctx == NULL
|
||||
|| EVP_PKEY_decapsulate_init(ctx, NULL) <= 0
|
||||
|| EVP_PKEY_decapsulate(ctx, sbuf, &decap_slen, cbuf, decap_clen) <= 0)
|
||||
@@ -325,6 +353,7 @@ static int mlx_kem_decapsulate(void *vctx, uint8_t *shsec, size_t *slen,
|
||||
end:
|
||||
@@ -326,6 +354,7 @@ static int mlx_kem_decapsulate(void *vctx, uint8_t *shsec, size_t *slen,
|
||||
end:
|
||||
EVP_PKEY_CTX_free(ctx);
|
||||
EVP_PKEY_free(xkey);
|
||||
+ OPENSSL_free(adjusted_propq);
|
||||
@ -177,11 +183,11 @@ index 197c345d85..08fbf99a76 100644
|
||||
}
|
||||
|
||||
diff --git a/providers/implementations/keymgmt/mlx_kmgmt.c b/providers/implementations/keymgmt/mlx_kmgmt.c
|
||||
index bea8783276..aeef0c8f84 100644
|
||||
index 46ed63039e..6ce9aa3c9a 100644
|
||||
--- a/providers/implementations/keymgmt/mlx_kmgmt.c
|
||||
+++ b/providers/implementations/keymgmt/mlx_kmgmt.c
|
||||
@@ -156,6 +156,52 @@ typedef struct export_cb_arg_st {
|
||||
size_t prvlen;
|
||||
@@ -155,6 +155,52 @@ typedef struct export_cb_arg_st {
|
||||
size_t prvlen;
|
||||
} EXPORT_CB_ARG;
|
||||
|
||||
+#ifndef FIPS_MODULE
|
||||
@ -233,7 +239,7 @@ index bea8783276..aeef0c8f84 100644
|
||||
/* Copy any exported key material into its storage slot */
|
||||
static int export_sub_cb(const OSSL_PARAM *params, void *varg)
|
||||
{
|
||||
@@ -176,6 +222,10 @@ static int export_sub_cb(const OSSL_PARAM *params, void *varg)
|
||||
@@ -175,6 +221,10 @@ static int export_sub_cb(const OSSL_PARAM *params, void *varg)
|
||||
|
||||
if (OSSL_PARAM_get_octet_string(p, &pub, sub_arg->publen, &len) != 1)
|
||||
return 0;
|
||||
@ -243,8 +249,8 @@ index bea8783276..aeef0c8f84 100644
|
||||
+#endif
|
||||
if (len != sub_arg->publen) {
|
||||
ERR_raise_data(ERR_LIB_PROV, ERR_R_INTERNAL_ERROR,
|
||||
"Unexpected %s public key length %lu != %lu",
|
||||
@@ -344,12 +394,14 @@ load_slot(OSSL_LIB_CTX *libctx, const char *propq, const char *pname,
|
||||
"Unexpected %s public key length %lu != %lu",
|
||||
@@ -343,12 +393,14 @@ load_slot(OSSL_LIB_CTX *libctx, const char *propq, const char *pname,
|
||||
void *val;
|
||||
int ml_kem_slot = key->xinfo->ml_kem_slot;
|
||||
int ret = 0;
|
||||
@ -258,8 +264,8 @@ index bea8783276..aeef0c8f84 100644
|
||||
+ adjusted_propq = get_adjusted_propq(propq);
|
||||
} else {
|
||||
alg = key->xinfo->algorithm_name;
|
||||
group = (char *) key->xinfo->group_name;
|
||||
@@ -359,7 +411,8 @@ load_slot(OSSL_LIB_CTX *libctx, const char *propq, const char *pname,
|
||||
group = (char *)key->xinfo->group_name;
|
||||
@@ -358,7 +410,8 @@ load_slot(OSSL_LIB_CTX *libctx, const char *propq, const char *pname,
|
||||
}
|
||||
val = (void *)(in + off);
|
||||
|
||||
@ -269,34 +275,34 @@ index bea8783276..aeef0c8f84 100644
|
||||
|| EVP_PKEY_fromdata_init(ctx) <= 0)
|
||||
goto err;
|
||||
parr[0] = OSSL_PARAM_construct_octet_string(pname, val, len);
|
||||
@@ -370,6 +423,7 @@ load_slot(OSSL_LIB_CTX *libctx, const char *propq, const char *pname,
|
||||
@@ -369,6 +422,7 @@ load_slot(OSSL_LIB_CTX *libctx, const char *propq, const char *pname,
|
||||
ret = 1;
|
||||
|
||||
err:
|
||||
err:
|
||||
+ OPENSSL_free(adjusted_propq);
|
||||
EVP_PKEY_CTX_free(ctx);
|
||||
return ret;
|
||||
}
|
||||
@@ -688,6 +742,7 @@ static void *mlx_kem_gen(void *vgctx, OSSL_CALLBACK *osslcb, void *cbarg)
|
||||
@@ -685,6 +739,7 @@ static void *mlx_kem_gen(void *vgctx, OSSL_CALLBACK *osslcb, void *cbarg)
|
||||
PROV_ML_KEM_GEN_CTX *gctx = vgctx;
|
||||
MLX_KEY *key;
|
||||
char *propq;
|
||||
+ char *adjusted_propq = NULL;
|
||||
|
||||
if (gctx == NULL
|
||||
|| (gctx->selection & OSSL_KEYMGMT_SELECT_KEYPAIR) ==
|
||||
@@ -704,8 +759,10 @@ static void *mlx_kem_gen(void *vgctx, OSSL_CALLBACK *osslcb, void *cbarg)
|
||||
|| (gctx->selection & OSSL_KEYMGMT_SELECT_KEYPAIR) == OSSL_KEYMGMT_SELECT_PUBLIC_KEY)
|
||||
@@ -700,8 +755,10 @@ static void *mlx_kem_gen(void *vgctx, OSSL_CALLBACK *osslcb, void *cbarg)
|
||||
return key;
|
||||
|
||||
/* For now, using the same "propq" for all components */
|
||||
- key->mkey = EVP_PKEY_Q_keygen(key->libctx, key->propq,
|
||||
+ adjusted_propq = get_adjusted_propq(propq);
|
||||
+ key->mkey = EVP_PKEY_Q_keygen(key->libctx, adjusted_propq ? adjusted_propq : key->propq,
|
||||
key->minfo->algorithm_name);
|
||||
key->minfo->algorithm_name);
|
||||
+ OPENSSL_free(adjusted_propq);
|
||||
key->xkey = EVP_PKEY_Q_keygen(key->libctx, key->propq,
|
||||
key->xinfo->algorithm_name,
|
||||
key->xinfo->group_name);
|
||||
key->xinfo->algorithm_name,
|
||||
key->xinfo->group_name);
|
||||
--
|
||||
2.50.0
|
||||
2.52.0
|
||||
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
From 5389ed0aeb97b290969f923b205e333d4f85fdc3 Mon Sep 17 00:00:00 2001
|
||||
From 3f73722b8e546a3f8f4e8bc7d74527f4fe7c4413 Mon Sep 17 00:00:00 2001
|
||||
From: Simo Sorce <simo@redhat.com>
|
||||
Date: Tue, 15 Jul 2025 12:32:14 -0400
|
||||
Subject: [PATCH] Temporarily disable SLH-DSA FIPS self-tests
|
||||
Subject: [PATCH 54/57] Temporarily disable SLH-DSA FIPS self-tests
|
||||
|
||||
Signed-off-by: Simo Sorce <simo@redhat.com>
|
||||
---
|
||||
@ -9,10 +9,10 @@ Signed-off-by: Simo Sorce <simo@redhat.com>
|
||||
1 file changed, 6 insertions(+)
|
||||
|
||||
diff --git a/providers/fips/self_test_data.inc b/providers/fips/self_test_data.inc
|
||||
index f3059a8446..e924e93018 100644
|
||||
index 43f7c89fd6..7b03aad775 100644
|
||||
--- a/providers/fips/self_test_data.inc
|
||||
+++ b/providers/fips/self_test_data.inc
|
||||
@@ -2862,6 +2862,7 @@ static const ST_KAT_PARAM ml_dsa_sig_init[] = {
|
||||
@@ -2886,6 +2886,7 @@ static const ST_KAT_PARAM ml_dsa_sig_init[] = {
|
||||
};
|
||||
#endif /* OPENSSL_NO_ML_DSA */
|
||||
|
||||
@ -20,7 +20,7 @@ index f3059a8446..e924e93018 100644
|
||||
#ifndef OPENSSL_NO_SLH_DSA
|
||||
/*
|
||||
* Deterministic SLH_DSA key generation supplies the private key elements and
|
||||
@@ -2952,6 +2953,7 @@ static const unsigned char slh_dsa_shake_128f_sig_digest[] = {
|
||||
@@ -2976,6 +2977,7 @@ static const unsigned char slh_dsa_shake_128f_sig_digest[] = {
|
||||
0x89, 0x77, 0x00, 0x72, 0x03, 0x92, 0xd1, 0xa6,
|
||||
};
|
||||
#endif /* OPENSSL_NO_SLH_DSA */
|
||||
@ -28,7 +28,7 @@ index f3059a8446..e924e93018 100644
|
||||
|
||||
/* Hash DRBG inputs for signature KATs */
|
||||
static const unsigned char sig_kat_entropyin[] = {
|
||||
@@ -3051,6 +3053,7 @@ static const ST_KAT_SIGN st_kat_sign_tests[] = {
|
||||
@@ -3075,6 +3077,7 @@ static const ST_KAT_SIGN st_kat_sign_tests[] = {
|
||||
ml_dsa_sig_init
|
||||
},
|
||||
#endif /* OPENSSL_NO_ML_DSA */
|
||||
@ -36,7 +36,7 @@ index f3059a8446..e924e93018 100644
|
||||
#ifndef OPENSSL_NO_SLH_DSA
|
||||
/*
|
||||
* FIPS 140-3 IG 10.3.A.16 Note 29 says:
|
||||
@@ -3081,6 +3084,7 @@ static const ST_KAT_SIGN st_kat_sign_tests[] = {
|
||||
@@ -3105,6 +3108,7 @@ static const ST_KAT_SIGN st_kat_sign_tests[] = {
|
||||
slh_dsa_sig_params, slh_dsa_sig_params
|
||||
},
|
||||
#endif /* OPENSSL_NO_SLH_DSA */
|
||||
@ -44,7 +44,7 @@ index f3059a8446..e924e93018 100644
|
||||
};
|
||||
|
||||
#if !defined(OPENSSL_NO_ML_DSA)
|
||||
@@ -3485,6 +3489,7 @@ static const ST_KAT_ASYM_KEYGEN st_kat_asym_keygen_tests[] = {
|
||||
@@ -3509,6 +3513,7 @@ static const ST_KAT_ASYM_KEYGEN st_kat_asym_keygen_tests[] = {
|
||||
ml_dsa_key
|
||||
},
|
||||
# endif
|
||||
@ -52,13 +52,14 @@ index f3059a8446..e924e93018 100644
|
||||
# if !defined(OPENSSL_NO_SLH_DSA)
|
||||
{
|
||||
OSSL_SELF_TEST_DESC_KEYGEN_SLH_DSA,
|
||||
@@ -3493,5 +3498,6 @@ static const ST_KAT_ASYM_KEYGEN st_kat_asym_keygen_tests[] = {
|
||||
@@ -3517,6 +3522,7 @@ static const ST_KAT_ASYM_KEYGEN st_kat_asym_keygen_tests[] = {
|
||||
slh_dsa_128f_keygen_expected_params
|
||||
},
|
||||
# endif
|
||||
+#endif /* Temporarily disable SLH-DSA self tests due to performance issues */
|
||||
};
|
||||
#endif /* !OPENSSL_NO_ML_DSA || !OPENSSL_NO_SLH_DSA */
|
||||
|
||||
--
|
||||
2.50.1
|
||||
2.52.0
|
||||
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
From 5d70f27ffdb520001e560ef0852f29c84e0afa18 Mon Sep 17 00:00:00 2001
|
||||
From 24875d5f4486540cc7baf23c3f94234ee9800862 Mon Sep 17 00:00:00 2001
|
||||
From: Simo Sorce <simo@redhat.com>
|
||||
Date: Thu, 17 Jul 2025 09:40:34 -0400
|
||||
Subject: [PATCH] Add a define to disable symver attributes
|
||||
Subject: [PATCH 55/57] Add a define to disable symver attributes
|
||||
|
||||
Defininig RHEL_NO_SYMVER_ATTRIBUTES for a build now prevents adding
|
||||
compatibility symver attributes.
|
||||
@ -14,7 +14,7 @@ Signed-off-by: Simo Sorce <simo@redhat.com>
|
||||
3 files changed, 4 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/crypto/evp/digest.c b/crypto/evp/digest.c
|
||||
index 8ee9db73dd..7ed4933934 100644
|
||||
index 638dac8844..5b1b54c195 100644
|
||||
--- a/crypto/evp/digest.c
|
||||
+++ b/crypto/evp/digest.c
|
||||
@@ -573,7 +573,7 @@ int EVP_DigestSqueeze(EVP_MD_CTX *ctx, unsigned char *md, size_t size)
|
||||
@ -27,10 +27,10 @@ index 8ee9db73dd..7ed4933934 100644
|
||||
symver ("EVP_MD_CTX_dup@OPENSSL_3.2.0")))
|
||||
#endif
|
||||
diff --git a/crypto/evp/evp_enc.c b/crypto/evp/evp_enc.c
|
||||
index 619cf4f385..9192898d39 100644
|
||||
index b4edd825cd..e7b124a79b 100644
|
||||
--- a/crypto/evp/evp_enc.c
|
||||
+++ b/crypto/evp/evp_enc.c
|
||||
@@ -1763,7 +1763,7 @@ int EVP_CIPHER_CTX_rand_key(EVP_CIPHER_CTX *ctx, unsigned char *key)
|
||||
@@ -1757,7 +1757,7 @@ int EVP_CIPHER_CTX_rand_key(EVP_CIPHER_CTX *ctx, unsigned char *key)
|
||||
}
|
||||
|
||||
EVP_CIPHER_CTX
|
||||
@ -40,10 +40,10 @@ index 619cf4f385..9192898d39 100644
|
||||
symver ("EVP_CIPHER_CTX_dup@OPENSSL_3.2.0")))
|
||||
#endif
|
||||
diff --git a/crypto/o_str.c b/crypto/o_str.c
|
||||
index 86442a939e..8c33e4dd63 100644
|
||||
index fde43421ea..807e070827 100644
|
||||
--- a/crypto/o_str.c
|
||||
+++ b/crypto/o_str.c
|
||||
@@ -404,7 +404,7 @@ int openssl_strerror_r(int errnum, char *buf, size_t buflen)
|
||||
@@ -407,7 +407,7 @@ int openssl_strerror_r(int errnum, char *buf, size_t buflen)
|
||||
}
|
||||
|
||||
int
|
||||
@ -52,7 +52,7 @@ index 86442a939e..8c33e4dd63 100644
|
||||
__attribute__ ((symver ("OPENSSL_strcasecmp@@OPENSSL_3.0.3"),
|
||||
symver ("OPENSSL_strcasecmp@OPENSSL_3.0.1")))
|
||||
#endif
|
||||
@@ -419,7 +419,7 @@ OPENSSL_strcasecmp(const char *s1, const char *s2)
|
||||
@@ -422,7 +422,7 @@ OPENSSL_strcasecmp(const char *s1, const char *s2)
|
||||
}
|
||||
|
||||
int
|
||||
@ -62,5 +62,5 @@ index 86442a939e..8c33e4dd63 100644
|
||||
symver ("OPENSSL_strncasecmp@OPENSSL_3.0.1")))
|
||||
#endif
|
||||
--
|
||||
2.50.1
|
||||
2.52.0
|
||||
|
||||
|
||||
@ -1,13 +1,18 @@
|
||||
From b96746b02cff910f4cd3787fddc042f7e3fb4956 Mon Sep 17 00:00:00 2001
|
||||
From 4b634bdcc4dedc8516529d39062adc1305c7bf9b Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Pavol=20=C5=BD=C3=A1=C4=8Dik?= <zacik.pa@gmail.com>
|
||||
Date: Tue, 19 Aug 2025 14:26:07 +0200
|
||||
Subject: [PATCH] Add targets to skip build of non-installable programs
|
||||
Subject: [PATCH 56/57] Add targets to skip build of non-installable programs
|
||||
|
||||
These make it possible to split the build into two
|
||||
parts, e.g., when tests should be built with different
|
||||
compiler flags than installed software.
|
||||
|
||||
Also use these as dependecies where appropriate.
|
||||
|
||||
Reviewed-by: Paul Yang <paulyang.inf@gmail.com>
|
||||
Reviewed-by: Dmitry Belyavskiy <beldmit@gmail.com>
|
||||
Reviewed-by: Neil Horman <nhorman@openssl.org>
|
||||
(Merged from https://github.com/openssl/openssl/pull/28302)
|
||||
---
|
||||
Configurations/descrip.mms.tmpl | 7 +++++--
|
||||
Configurations/unix-Makefile.tmpl | 9 ++++++---
|
||||
@ -55,10 +60,10 @@ index db6a1b1799..bc7fc36b46 100644
|
||||
@ ! Install the main program
|
||||
- CREATE/DIR ossl_installroot:[EXE.'arch']
|
||||
diff --git a/Configurations/unix-Makefile.tmpl b/Configurations/unix-Makefile.tmpl
|
||||
index 70ac47b73c..98c11f7a0f 100644
|
||||
index 1920d38655..bfede44ce4 100644
|
||||
--- a/Configurations/unix-Makefile.tmpl
|
||||
+++ b/Configurations/unix-Makefile.tmpl
|
||||
@@ -531,7 +531,9 @@ LANG=C
|
||||
@@ -547,7 +547,9 @@ LANG=C
|
||||
{- dependmagic('build_sw', 'Build all the software (default target)'); -}: build_libs_nodep build_modules_nodep build_programs_nodep link-utils
|
||||
{- dependmagic('build_libs', 'Build the libraries libssl and libcrypto'); -}: build_libs_nodep
|
||||
{- dependmagic('build_modules', 'Build the modules (i.e. providers and engines)'); -}: build_modules_nodep
|
||||
@ -69,7 +74,7 @@ index 70ac47b73c..98c11f7a0f 100644
|
||||
|
||||
all: build_sw {- "build_docs" if !$disabled{docs}; -} ## Build software and documentation
|
||||
debuginfo: $(SHLIBS)
|
||||
@@ -553,6 +555,7 @@ build_generated: $(GENERATED_MANDATORY)
|
||||
@@ -566,6 +568,7 @@ build_generated: $(GENERATED_MANDATORY)
|
||||
build_libs_nodep: $(LIBS) {- join(" ",map { platform->sharedlib_simple($_) // platform->sharedlib_import($_) // platform->sharedlib($_) // () } @{$unified_info{libraries}}) -}
|
||||
build_modules_nodep: $(MODULES)
|
||||
build_programs_nodep: $(PROGRAMS) $(SCRIPTS)
|
||||
@ -77,7 +82,7 @@ index 70ac47b73c..98c11f7a0f 100644
|
||||
|
||||
# Kept around for backward compatibility
|
||||
build_apps build_tests: build_programs
|
||||
@@ -671,7 +674,7 @@ uninstall_docs: uninstall_man_docs uninstall_html_docs ## Uninstall manpages and
|
||||
@@ -680,7 +683,7 @@ uninstall_docs: uninstall_man_docs uninstall_html_docs ## Uninstall manpages and
|
||||
$(RM) -r "$(DESTDIR)$(DOCDIR)"
|
||||
|
||||
{- output_off() if $disabled{fips}; "" -}
|
||||
@ -86,7 +91,7 @@ index 70ac47b73c..98c11f7a0f 100644
|
||||
@[ -n "$(INSTALLTOP)" ] || (echo INSTALLTOP should not be empty; exit 1)
|
||||
@$(PERL) $(SRCDIR)/util/mkdir-p.pl "$(DESTDIR)$(MODULESDIR)"
|
||||
@$(PERL) $(SRCDIR)/util/mkdir-p.pl "$(DESTDIR)$(OPENSSLDIR)"
|
||||
@@ -956,7 +959,7 @@ install_runtime_libs: build_libs
|
||||
@@ -966,7 +969,7 @@ install_runtime_libs: build_libs
|
||||
: {- output_on() if windowsdll(); "" -}; \
|
||||
done
|
||||
|
||||
@ -149,5 +154,5 @@ index a1614fe8a9..e88ff4bae1 100755
|
||||
if (/^##@/) {
|
||||
printf "\n\033[1m%s\033[0m\n", substr($Fld[$_], (5)-1);
|
||||
--
|
||||
2.50.1
|
||||
2.52.0
|
||||
|
||||
@ -1,176 +0,0 @@
|
||||
From 0db63fff91327d06502027441104665f462be922 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Pavol=20=C5=BD=C3=A1=C4=8Dik?= <zacik.pa@gmail.com>
|
||||
Date: Mon, 11 Aug 2025 12:02:03 +0200
|
||||
Subject: [PATCH 1/2] apps/speed.c: Disable testing of composite signature
|
||||
algorithms
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Creating public key context from name would always fail
|
||||
for composite signature algorithms (such as RSA-SHA256)
|
||||
because the public key algorithm name (e.g., RSA) does
|
||||
not match the name of the composite algorithm.
|
||||
|
||||
Relates to #27855.
|
||||
|
||||
Signed-off-by: Pavol Žáčik <zacik.pa@gmail.com>
|
||||
---
|
||||
apps/speed.c | 8 +++++---
|
||||
1 file changed, 5 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/apps/speed.c b/apps/speed.c
|
||||
index 2c3ec37d1239e..a6d239c8cda81 100644
|
||||
--- a/apps/speed.c
|
||||
+++ b/apps/speed.c
|
||||
@@ -2281,9 +2281,11 @@ int speed_main(int argc, char **argv)
|
||||
}
|
||||
#endif /* OPENSSL_NO_DSA */
|
||||
/* skipping these algs as tested elsewhere - and b/o setup is a pain */
|
||||
- else if (strcmp(sig_name, "ED25519") &&
|
||||
- strcmp(sig_name, "ED448") &&
|
||||
- strcmp(sig_name, "ECDSA") &&
|
||||
+ else if (strncmp(sig_name, "RSA", 3) &&
|
||||
+ strncmp(sig_name, "DSA", 3) &&
|
||||
+ strncmp(sig_name, "ED25519", 7) &&
|
||||
+ strncmp(sig_name, "ED448", 5) &&
|
||||
+ strncmp(sig_name, "ECDSA", 5) &&
|
||||
strcmp(sig_name, "HMAC") &&
|
||||
strcmp(sig_name, "SIPHASH") &&
|
||||
strcmp(sig_name, "POLY1305") &&
|
||||
|
||||
From 30d98de47c63ca84df41ee57f9d230b2f56bf9ef Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Pavol=20=C5=BD=C3=A1=C4=8Dik?= <zacik.pa@gmail.com>
|
||||
Date: Mon, 11 Aug 2025 12:19:59 +0200
|
||||
Subject: [PATCH 2/2] apps/speed.c: Support more signature algorithms
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Some signature algorithms (e.g., ML-DSA-65) cannot be initialized
|
||||
via EVP_PKEY_sign_init, so try also EVP_PKEY_sign_message_init
|
||||
before reporting an error.
|
||||
|
||||
Fixes #27108.
|
||||
|
||||
Signed-off-by: Pavol Žáčik <zacik.pa@gmail.com>
|
||||
---
|
||||
apps/speed.c | 69 ++++++++++++++++++++++++++++++++++++++++------------
|
||||
1 file changed, 53 insertions(+), 16 deletions(-)
|
||||
|
||||
diff --git a/apps/speed.c b/apps/speed.c
|
||||
index a6d239c8cda81..059183ddc77d3 100644
|
||||
--- a/apps/speed.c
|
||||
+++ b/apps/speed.c
|
||||
@@ -4254,6 +4254,7 @@ int speed_main(int argc, char **argv)
|
||||
EVP_PKEY_CTX *sig_gen_ctx = NULL;
|
||||
EVP_PKEY_CTX *sig_sign_ctx = NULL;
|
||||
EVP_PKEY_CTX *sig_verify_ctx = NULL;
|
||||
+ EVP_SIGNATURE *alg = NULL;
|
||||
unsigned char md[SHA256_DIGEST_LENGTH];
|
||||
unsigned char *sig;
|
||||
char sfx[MAX_ALGNAME_SUFFIX];
|
||||
@@ -4314,21 +4315,48 @@ int speed_main(int argc, char **argv)
|
||||
sig_name);
|
||||
goto sig_err_break;
|
||||
}
|
||||
+
|
||||
+ /*
|
||||
+ * Try explicitly fetching the signature algoritm implementation to
|
||||
+ * use in case the algorithm does not support EVP_PKEY_sign_init
|
||||
+ */
|
||||
+ ERR_set_mark();
|
||||
+ alg = EVP_SIGNATURE_fetch(app_get0_libctx(), sig_name, app_get0_propq());
|
||||
+ ERR_pop_to_mark();
|
||||
+
|
||||
/* Now prepare signature data structs */
|
||||
sig_sign_ctx = EVP_PKEY_CTX_new_from_pkey(app_get0_libctx(),
|
||||
pkey,
|
||||
app_get0_propq());
|
||||
- if (sig_sign_ctx == NULL
|
||||
- || EVP_PKEY_sign_init(sig_sign_ctx) <= 0
|
||||
- || (use_params == 1
|
||||
- && (EVP_PKEY_CTX_set_rsa_padding(sig_sign_ctx,
|
||||
- RSA_PKCS1_PADDING) <= 0))
|
||||
- || EVP_PKEY_sign(sig_sign_ctx, NULL, &max_sig_len,
|
||||
- md, md_len) <= 0) {
|
||||
- BIO_printf(bio_err,
|
||||
- "Error while initializing signing data structs for %s.\n",
|
||||
- sig_name);
|
||||
- goto sig_err_break;
|
||||
+ if (sig_sign_ctx == NULL) {
|
||||
+ BIO_printf(bio_err,
|
||||
+ "Error while initializing signing ctx for %s.\n",
|
||||
+ sig_name);
|
||||
+ goto sig_err_break;
|
||||
+ }
|
||||
+ ERR_set_mark();
|
||||
+ if (EVP_PKEY_sign_init(sig_sign_ctx) <= 0
|
||||
+ && (alg == NULL
|
||||
+ || EVP_PKEY_sign_message_init(sig_sign_ctx, alg, NULL) <= 0)) {
|
||||
+ ERR_clear_last_mark();
|
||||
+ BIO_printf(bio_err,
|
||||
+ "Error while initializing signing data structs for %s.\n",
|
||||
+ sig_name);
|
||||
+ goto sig_err_break;
|
||||
+ }
|
||||
+ ERR_pop_to_mark();
|
||||
+ if (use_params == 1 &&
|
||||
+ EVP_PKEY_CTX_set_rsa_padding(sig_sign_ctx, RSA_PKCS1_PADDING) <= 0) {
|
||||
+ BIO_printf(bio_err,
|
||||
+ "Error while initializing padding for %s.\n",
|
||||
+ sig_name);
|
||||
+ goto sig_err_break;
|
||||
+ }
|
||||
+ if (EVP_PKEY_sign(sig_sign_ctx, NULL, &max_sig_len, md, md_len) <= 0) {
|
||||
+ BIO_printf(bio_err,
|
||||
+ "Error while obtaining signature bufffer length for %s.\n",
|
||||
+ sig_name);
|
||||
+ goto sig_err_break;
|
||||
}
|
||||
sig = app_malloc(sig_len = max_sig_len, "signature buffer");
|
||||
if (sig == NULL) {
|
||||
@@ -4344,16 +4372,23 @@ int speed_main(int argc, char **argv)
|
||||
sig_verify_ctx = EVP_PKEY_CTX_new_from_pkey(app_get0_libctx(),
|
||||
pkey,
|
||||
app_get0_propq());
|
||||
- if (sig_verify_ctx == NULL
|
||||
- || EVP_PKEY_verify_init(sig_verify_ctx) <= 0
|
||||
- || (use_params == 1
|
||||
- && (EVP_PKEY_CTX_set_rsa_padding(sig_verify_ctx,
|
||||
- RSA_PKCS1_PADDING) <= 0))) {
|
||||
+ if (sig_verify_ctx == NULL) {
|
||||
+ BIO_printf(bio_err,
|
||||
+ "Error while initializing verify ctx for %s.\n",
|
||||
+ sig_name);
|
||||
+ goto sig_err_break;
|
||||
+ }
|
||||
+ ERR_set_mark();
|
||||
+ if (EVP_PKEY_verify_init(sig_verify_ctx) <= 0
|
||||
+ && (alg == NULL
|
||||
+ || EVP_PKEY_verify_message_init(sig_verify_ctx, alg, NULL) <= 0)) {
|
||||
+ ERR_clear_last_mark();
|
||||
BIO_printf(bio_err,
|
||||
"Error while initializing verify data structs for %s.\n",
|
||||
sig_name);
|
||||
goto sig_err_break;
|
||||
}
|
||||
+ ERR_pop_to_mark();
|
||||
if (EVP_PKEY_verify(sig_verify_ctx, sig, sig_len, md, md_len) <= 0) {
|
||||
BIO_printf(bio_err, "Verify error for %s.\n", sig_name);
|
||||
goto sig_err_break;
|
||||
@@ -4369,12 +4404,14 @@ int speed_main(int argc, char **argv)
|
||||
loopargs[i].sig_act_sig_len[testnum] = sig_len;
|
||||
loopargs[i].sig_sig[testnum] = sig;
|
||||
EVP_PKEY_free(pkey);
|
||||
+ EVP_SIGNATURE_free(alg);
|
||||
pkey = NULL;
|
||||
continue;
|
||||
|
||||
sig_err_break:
|
||||
dofail();
|
||||
EVP_PKEY_free(pkey);
|
||||
+ EVP_SIGNATURE_free(alg);
|
||||
op_count = 1;
|
||||
sig_checks = 0;
|
||||
break;
|
||||
@ -0,0 +1,27 @@
|
||||
From 3ffdc68f16d6b326ff0854053fc9206be3dabcc2 Mon Sep 17 00:00:00 2001
|
||||
From: Dmitry Belyavskiy <beldmit@gmail.com>
|
||||
Date: Wed, 21 Jan 2026 18:13:43 +0100
|
||||
Subject: [PATCH 57/57] Disable RSA-PKCS1.5 FIPS POST, not relevant for RHEL
|
||||
|
||||
---
|
||||
providers/fips/self_test_kats.c | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/providers/fips/self_test_kats.c b/providers/fips/self_test_kats.c
|
||||
index f453b2f2fb..5b37387d83 100644
|
||||
--- a/providers/fips/self_test_kats.c
|
||||
+++ b/providers/fips/self_test_kats.c
|
||||
@@ -1190,8 +1190,8 @@ int SELF_TEST_kats(OSSL_SELF_TEST *st, OSSL_LIB_CTX *libctx)
|
||||
ret = 0;
|
||||
if (!self_test_kems(st, libctx))
|
||||
ret = 0;
|
||||
- if (!self_test_asym_ciphers(st, libctx))
|
||||
- ret = 0;
|
||||
+/* if (!self_test_asym_ciphers(st, libctx))
|
||||
+ ret = 0; */
|
||||
|
||||
RAND_set0_private(libctx, saved_rand);
|
||||
return ret;
|
||||
--
|
||||
2.52.0
|
||||
|
||||
@ -1,48 +0,0 @@
|
||||
From 899623b29caa02f25e069acbcef581d19fe0a64e Mon Sep 17 00:00:00 2001
|
||||
From: Holger Dengler <dengler@linux.ibm.com>
|
||||
Date: Wed, 20 Aug 2025 17:55:43 +0200
|
||||
Subject: [PATCH] aes-s390x.pl: Initialize reserved and unused memory
|
||||
|
||||
The reserved bytes in the parameter block (bytes 0-11) for the KMA
|
||||
instruction should be set to zero to be compatible in case of future
|
||||
architecture changes.
|
||||
|
||||
While at it, also the following unused parts of the parameter block
|
||||
(bytes 48-63) are also cleared to avoid false positives with various
|
||||
memory checkers like valgrind.
|
||||
|
||||
As it makes - performance wise - no difference to process 12, 48 or 64
|
||||
bytes with one XC call, but two XC calls are slower than one call, the
|
||||
first 64 bytes of the parameter block will be cleared with a single XC
|
||||
call. This will also initialize the counter in the parameter block
|
||||
(bytes 12-15), although it is not strictly necessary.
|
||||
|
||||
Co-developed-by: Juergen Christ <jchrist@linux.ibm.com>
|
||||
Signed-off-by: Juergen Christ <jchrist@linux.ibm.com>
|
||||
Signed-off-by: Holger Dengler <dengler@linux.ibm.com>
|
||||
|
||||
Reviewed-by: Tomas Mraz <tomas@openssl.org>
|
||||
Reviewed-by: Paul Dale <ppzgs1@gmail.com>
|
||||
Reviewed-by: Neil Horman <nhorman@openssl.org>
|
||||
(Merged from https://github.com/openssl/openssl/pull/28315)
|
||||
---
|
||||
crypto/aes/asm/aes-s390x.pl | 3 +++
|
||||
1 file changed, 3 insertions(+)
|
||||
|
||||
diff --git a/crypto/aes/asm/aes-s390x.pl b/crypto/aes/asm/aes-s390x.pl
|
||||
index 78aa6dacfc..891d33bb7d 100644
|
||||
--- a/crypto/aes/asm/aes-s390x.pl
|
||||
+++ b/crypto/aes/asm/aes-s390x.pl
|
||||
@@ -1431,6 +1431,9 @@ $code.=<<___ if (!$softonly);
|
||||
st${g} $s3,0($sp) # backchain
|
||||
la %r1,$stdframe($sp)
|
||||
|
||||
+ xc $stdframe+0(64,$sp),$stdframe+0($sp) # clear reserved/unused
|
||||
+ # in parameter block
|
||||
+
|
||||
lmg $s2,$s3,0($key) # copy key
|
||||
stg $s2,$stdframe+80($sp)
|
||||
stg $s3,$stdframe+88($sp)
|
||||
--
|
||||
2.50.1
|
||||
|
||||
@ -1,33 +0,0 @@
|
||||
From 9c462be2cea54ebfc62953224220b56f8ba22a0c Mon Sep 17 00:00:00 2001
|
||||
From: Viktor Dukhovni <openssl-users@dukhovni.org>
|
||||
Date: Thu, 11 Sep 2025 18:10:12 +0200
|
||||
Subject: [PATCH] kek_unwrap_key(): Fix incorrect check of unwrapped key size
|
||||
|
||||
Fixes CVE-2025-9230
|
||||
|
||||
The check is off by 8 bytes so it is possible to overread by
|
||||
up to 8 bytes and overwrite up to 4 bytes.
|
||||
|
||||
Reviewed-by: Neil Horman <nhorman@openssl.org>
|
||||
Reviewed-by: Matt Caswell <matt@openssl.org>
|
||||
Reviewed-by: Tomas Mraz <tomas@openssl.org>
|
||||
---
|
||||
crypto/cms/cms_pwri.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/crypto/cms/cms_pwri.c b/crypto/cms/cms_pwri.c
|
||||
index 106bd98dc7..ba8646f93c 100644
|
||||
--- a/crypto/cms/cms_pwri.c
|
||||
+++ b/crypto/cms/cms_pwri.c
|
||||
@@ -243,7 +243,7 @@ static int kek_unwrap_key(unsigned char *out, size_t *outlen,
|
||||
/* Check byte failure */
|
||||
goto err;
|
||||
}
|
||||
- if (inlen < (size_t)(tmp[0] - 4)) {
|
||||
+ if (inlen < 4 + (size_t)tmp[0]) {
|
||||
/* Invalid length value */
|
||||
goto err;
|
||||
}
|
||||
--
|
||||
2.51.0
|
||||
|
||||
25
openssl.spec
25
openssl.spec
@ -28,8 +28,8 @@ print(string.sub(hash, 0, 16))
|
||||
|
||||
Summary: Utilities from the general purpose cryptography library with TLS implementation
|
||||
Name: openssl
|
||||
Version: 3.5.1
|
||||
Release: 6%{?dist}
|
||||
Version: 3.5.5
|
||||
Release: 1%{?dist}
|
||||
Epoch: 1
|
||||
Source0: openssl-%{version}.tar.gz
|
||||
Source1: fips-hmacify.sh
|
||||
@ -97,10 +97,8 @@ Patch0053: 0053-Allow-hybrid-MLKEM-in-FIPS-mode.patch
|
||||
%endif
|
||||
Patch0054: 0054-Temporarily-disable-SLH-DSA-FIPS-self-tests.patch
|
||||
Patch0055: 0055-Add-a-define-to-disable-symver-attributes.patch
|
||||
Patch0056: 0056-Speed-test-signatures-without-errors.patch
|
||||
Patch0057: 0057-Targets-to-skip-build-of-non-installable-programs.patch
|
||||
Patch0058: 0058-aes-s390x.pl-Initialize-reserved-and-unused-memory.patch
|
||||
Patch0059: 0059-Fix-incorrect-check-of-unwrapped-key-size.patch
|
||||
Patch0056: 0056-Add-targets-to-skip-build-of-non-installable-program.patch
|
||||
Patch0057: 0057-Disable-RSA-PKCS1.5-FIPS-POST-not-relevant-for-RHEL.patch
|
||||
|
||||
License: Apache-2.0
|
||||
URL: http://www.openssl.org/
|
||||
@ -461,6 +459,21 @@ touch $RPM_BUILD_ROOT/%{_prefix}/include/openssl/engine.h
|
||||
%ldconfig_scriptlets libs
|
||||
|
||||
%changelog
|
||||
* Tue Jan 27 2026 Dmitry Belyavskiy <dbelyavs@redhat.com> - 1:3.5.5-1
|
||||
- Rebase to OpenSSL 3.5.5
|
||||
Resolves: RHEL-122599
|
||||
Resolves: RHEL-141987
|
||||
Resolves: RHEL-142009
|
||||
Resolves: RHEL-142022
|
||||
Resolves: RHEL-142026
|
||||
Resolves: RHEL-142030
|
||||
Resolves: RHEL-142034
|
||||
Resolves: RHEL-142038
|
||||
Resolves: RHEL-142042
|
||||
Resolves: RHEL-142046
|
||||
Resolves: RHEL-142050
|
||||
Resolves: RHEL-142054
|
||||
|
||||
* Wed Oct 22 2025 Pavol Žáčik <pzacik@redhat.com> - 1:3.5.1-6
|
||||
- Fix CVE-2025-9230
|
||||
Resolves: RHEL-115883
|
||||
|
||||
2
sources
2
sources
@ -1 +1 @@
|
||||
SHA512 (openssl-3.5.1.tar.gz) = 0fa152ae59ab5ea066319de039dfb1d24cbb247172d7512feb5dd920db3740f219d76b0195ea562f84fe5eae36c23772302eddfbb3509df13761452b4dafb9d3
|
||||
SHA512 (openssl-3.5.5.tar.gz) = 7cf0eb91bac175f7fe0adcafef457790d43fe7f98e2d4bef681c2fd5ca365e1fa5b562c645a60ab602365adedf9d91c074624eea66d3d7e155639fc50d5861ec
|
||||
|
||||
Loading…
Reference in New Issue
Block a user