/[smecontribs]/rpms/openssl3/contribs10/0061-Deny-SHA-1-signature-verification-in-FIPS-provider.patch
ViewVC logotype

Contents of /rpms/openssl3/contribs10/0061-Deny-SHA-1-signature-verification-in-FIPS-provider.patch

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.1 - (show annotations) (download)
Wed Jan 31 17:24:42 2024 UTC (9 months, 3 weeks ago) by jpp
Branch: MAIN
CVS Tags: openssl3-3_0_7-5_el7_sme_1, HEAD
Error occurred while calculating annotation data.
Initial import

1 From 5f4f350ce797a7cd2fdca84c474ee196da9d6fae Mon Sep 17 00:00:00 2001
2 From: Clemens Lang <cllang@redhat.com>
3 Date: Wed, 18 May 2022 17:25:59 +0200
4 Subject: [PATCH] Deny SHA-1 signature verification in FIPS provider
5
6 For RHEL, we already disable SHA-1 signatures by default in the default
7 provider, so it is unexpected that the FIPS provider would have a more
8 lenient configuration in this regard. Additionally, we do not think
9 continuing to accept SHA-1 signatures is a good idea due to the
10 published chosen-prefix collision attacks.
11
12 As a consequence, disable verification of SHA-1 signatures in the FIPS
13 provider.
14
15 This requires adjusting a few tests that would otherwise fail:
16 - 30-test_acvp: Remove the test vectors that use SHA-1.
17 - 30-test_evp: Mark tests in evppkey_rsa_common.txt and
18 evppkey_ecdsa.txt that use SHA-1 digests as "Availablein = default",
19 which will not run them when the FIPS provider is enabled.
20 - 80-test_cms: Re-create all certificates in test/smime-certificates
21 with SHA256 signatures while keeping the same private keys. These
22 certificates were signed with SHA-1 and thus fail verification in the
23 FIPS provider.
24 Fix some other tests by explicitly running them in the default
25 provider, where SHA-1 is available.
26 - 80-test_ssl_old: Skip tests that rely on SSLv3 and SHA-1 when run with
27 the FIPS provider.
28
29 Signed-off-by: Clemens Lang <cllang@redhat.com>
30 ---
31 providers/implementations/signature/dsa_sig.c | 4 --
32 .../implementations/signature/ecdsa_sig.c | 4 --
33 providers/implementations/signature/rsa_sig.c | 8 +--
34 test/acvp_test.inc | 20 -------
35 .../30-test_evp_data/evppkey_ecdsa.txt | 7 +++
36 .../30-test_evp_data/evppkey_rsa_common.txt | 51 +++++++++++++++-
37 test/recipes/80-test_cms.t | 4 +-
38 test/recipes/80-test_ssl_old.t | 4 ++
39 test/smime-certs/smdh.pem | 18 +++---
40 test/smime-certs/smdsa1.pem | 60 +++++++++----------
41 test/smime-certs/smdsa2.pem | 60 +++++++++----------
42 test/smime-certs/smdsa3.pem | 60 +++++++++----------
43 test/smime-certs/smec1.pem | 30 +++++-----
44 test/smime-certs/smec2.pem | 30 +++++-----
45 test/smime-certs/smec3.pem | 30 +++++-----
46 test/smime-certs/smroot.pem | 38 ++++++------
47 test/smime-certs/smrsa1.pem | 38 ++++++------
48 test/smime-certs/smrsa2.pem | 38 ++++++------
49 test/smime-certs/smrsa3.pem | 38 ++++++------
50 19 files changed, 286 insertions(+), 256 deletions(-)
51
52 diff --git a/providers/implementations/signature/dsa_sig.c b/providers/implementations/signature/dsa_sig.c
53 index fa3822f39f..c365d7b13a 100644
54 --- a/providers/implementations/signature/dsa_sig.c
55 +++ b/providers/implementations/signature/dsa_sig.c
56 @@ -128,11 +128,7 @@ static int dsa_setup_md(PROV_DSA_CTX *ctx,
57 EVP_MD *md = EVP_MD_fetch(ctx->libctx, mdname, mdprops);
58 int md_nid;
59 size_t mdname_len = strlen(mdname);
60 -#ifdef FIPS_MODULE
61 - int sha1_allowed = (ctx->operation != EVP_PKEY_OP_SIGN);
62 -#else
63 int sha1_allowed = 0;
64 -#endif
65 md_nid = ossl_digest_get_approved_nid_with_sha1(ctx->libctx, md,
66 sha1_allowed);
67
68 diff --git a/providers/implementations/signature/ecdsa_sig.c b/providers/implementations/signature/ecdsa_sig.c
69 index 99b228e82c..44a22832ec 100644
70 --- a/providers/implementations/signature/ecdsa_sig.c
71 +++ b/providers/implementations/signature/ecdsa_sig.c
72 @@ -237,11 +237,7 @@ static int ecdsa_setup_md(PROV_ECDSA_CTX *ctx, const char *mdname,
73 "%s could not be fetched", mdname);
74 return 0;
75 }
76 -#ifdef FIPS_MODULE
77 - sha1_allowed = (ctx->operation != EVP_PKEY_OP_SIGN);
78 -#else
79 sha1_allowed = 0;
80 -#endif
81 md_nid = ossl_digest_get_approved_nid_with_sha1(ctx->libctx, md,
82 sha1_allowed);
83 if (md_nid < 0) {
84 diff --git a/providers/implementations/signature/rsa_sig.c b/providers/implementations/signature/rsa_sig.c
85 index f66d7705c3..34f45175e8 100644
86 --- a/providers/implementations/signature/rsa_sig.c
87 +++ b/providers/implementations/signature/rsa_sig.c
88 @@ -292,11 +292,7 @@ static int rsa_setup_md(PROV_RSA_CTX *ctx, const char *mdname,
89 EVP_MD *md = EVP_MD_fetch(ctx->libctx, mdname, mdprops);
90 int md_nid;
91 size_t mdname_len = strlen(mdname);
92 -#ifdef FIPS_MODULE
93 - int sha1_allowed = (ctx->operation != EVP_PKEY_OP_SIGN);
94 -#else
95 int sha1_allowed = 0;
96 -#endif
97 md_nid = ossl_digest_rsa_sign_get_md_nid(ctx->libctx, md,
98 sha1_allowed);
99
100 @@ -1355,8 +1351,10 @@ static int rsa_set_ctx_params(void *vprsactx, const OSSL_PARAM params[])
101
102 if (prsactx->md == NULL && pmdname == NULL
103 && pad_mode == RSA_PKCS1_PSS_PADDING) {
104 +#ifdef FIPS_MODULE
105 + pmdname = RSA_DEFAULT_DIGEST_NAME_NONLEGACY;
106 +#else
107 pmdname = RSA_DEFAULT_DIGEST_NAME;
108 -#ifndef FIPS_MODULE
109 if (!ossl_ctx_legacy_digest_signatures_allowed(prsactx->libctx, 0)) {
110 pmdname = RSA_DEFAULT_DIGEST_NAME_NONLEGACY;
111 }
112 diff --git a/test/acvp_test.inc b/test/acvp_test.inc
113 index ad11d3ae1e..73b24bdb0c 100644
114 --- a/test/acvp_test.inc
115 +++ b/test/acvp_test.inc
116 @@ -1841,17 +1841,6 @@ static const struct rsa_sigver_st rsa_sigver_data[] = {
117 NO_PSS_SALT_LEN,
118 FAIL
119 },
120 - {
121 - "x931",
122 - 3072,
123 - "SHA1",
124 - ITM(rsa_sigverx931_0_msg),
125 - ITM(rsa_sigverx931_0_n),
126 - ITM(rsa_sigverx931_0_e),
127 - ITM(rsa_sigverx931_0_sig),
128 - NO_PSS_SALT_LEN,
129 - PASS
130 - },
131 {
132 "x931",
133 3072,
134 diff --git a/test/recipes/30-test_evp_data/evppkey_ecdsa.txt b/test/recipes/30-test_evp_data/evppkey_ecdsa.txt
135 index f36982845d..51e507a61c 100644
136 --- a/test/recipes/30-test_evp_data/evppkey_ecdsa.txt
137 +++ b/test/recipes/30-test_evp_data/evppkey_ecdsa.txt
138 @@ -37,12 +37,14 @@ PrivPubKeyPair = P-256:P-256-PUBLIC
139
140 Title = ECDSA tests
141
142 +Availablein = default
143 Verify = P-256
144 Ctrl = digest:SHA1
145 Input = "0123456789ABCDEF1234"
146 Output = 3045022100b1d1cb1a577035bccdd5a86c6148c2cc7c633cd42b7234139b593076d041e15202201898cdd52b41ca502098184b409cf83a21bc945006746e3b7cea52234e043ec8
147
148 # Digest too long
149 +Availablein = default
150 Verify = P-256
151 Ctrl = digest:SHA1
152 Input = "0123456789ABCDEF12345"
153 @@ -50,6 +52,7 @@ Output = 3045022100b1d1cb1a577035bccdd5a86c6148c2cc7c633cd42b7234139b593076d041e
154 Result = VERIFY_ERROR
155
156 # Digest too short
157 +Availablein = default
158 Verify = P-256
159 Ctrl = digest:SHA1
160 Input = "0123456789ABCDEF123"
161 @@ -57,6 +60,7 @@ Output = 3045022100b1d1cb1a577035bccdd5a86c6148c2cc7c633cd42b7234139b593076d041e
162 Result = VERIFY_ERROR
163
164 # Digest invalid
165 +Availablein = default
166 Verify = P-256
167 Ctrl = digest:SHA1
168 Input = "0123456789ABCDEF1235"
169 @@ -64,6 +68,7 @@ Output = 3045022100b1d1cb1a577035bccdd5a86c6148c2cc7c633cd42b7234139b593076d041e
170 Result = VERIFY_ERROR
171
172 # Invalid signature
173 +Availablein = default
174 Verify = P-256
175 Ctrl = digest:SHA1
176 Input = "0123456789ABCDEF1234"
177 @@ -79,12 +84,14 @@ Output = 3045022100b1d1cb1a577035bccdd5a86c6148c2cc7c633cd42b7234139b593076d041e
178 Result = VERIFY_ERROR
179
180 # BER signature
181 +Availablein = default
182 Verify = P-256
183 Ctrl = digest:SHA1
184 Input = "0123456789ABCDEF1234"
185 Output = 3080022100b1d1cb1a577035bccdd5a86c6148c2cc7c633cd42b7234139b593076d041e15202201898cdd52b41ca502098184b409cf83a21bc945006746e3b7cea52234e043ec80000
186 Result = VERIFY_ERROR
187
188 +Availablein = default
189 Verify = P-256-PUBLIC
190 Ctrl = digest:SHA1
191 Input = "0123456789ABCDEF1234"
192 diff --git a/test/recipes/30-test_evp_data/evppkey_rsa_common.txt b/test/recipes/30-test_evp_data/evppkey_rsa_common.txt
193 index b8d8bb2993..8dd566067b 100644
194 --- a/test/recipes/30-test_evp_data/evppkey_rsa_common.txt
195 +++ b/test/recipes/30-test_evp_data/evppkey_rsa_common.txt
196 @@ -96,6 +96,7 @@ NDL6WCBbets=
197
198 Title = RSA tests
199
200 +Availablein = default
201 Verify = RSA-2048
202 Ctrl = digest:SHA1
203 Input = "0123456789ABCDEF1234"
204 @@ -112,24 +113,28 @@ Ctrl = digest:SHA512-224
205 Input = "0123456789ABCDEF123456789ABC"
206 Output = 5f720e9488139bb21e1c2f027fd5ce5993e6d31c5a8faaee833487b3a944d66891178868ace8070cad3ee2ffbe54aa4885a15fd1a7cc5166970fe1fd8c0423e72bd3e3b56fc4a53ed80aaaeca42497f0ec3c62113edc05cd006608f5eef7ce3ad4cba1069f68731dd28a524a1f93fcdc5547112d48d45586dd943ba0d443be9635720d8a61697c54c96627f0d85c5fbeaa3b4af86a65cf2fc3800dd5de34c046985f25d0efc0bb6edccc1d08b3a4fb9c8faffe181c7e68b31e374ad1440a4a664eec9ca0dc53a9d2f5bc7d9940d866f64201bcbc63612754df45727ea24b531d7de83d1bb707444859fa35521320c33bf6f4dbeb6fb56e653adbf7af15843f17
207
208 +Availablein = default
209 VerifyRecover = RSA-2048
210 Ctrl = digest:SHA1
211 Input = c09d402423cbf233d26cae21f954547bc43fe80fd41360a0336cfdbe9aedad05bef6fd2eaee6cd60089a52482d4809a238149520df3bdde4cb9e23d9307b05c0a6f327052325a29adf2cc95b66523be7024e2a585c3d4db15dfbe146efe0ecdc0402e33fe5d40324ee96c5c3edd374a15cdc0f5d84aa243c0f07e188c6518fbfceae158a9943be398e31097da81b62074f626eff738be6160741d5a26957a482b3251fd85d8df78b98148459de10aa93305dbb4a5230aa1da291a9b0e481918f99b7638d72bb687f97661d304ae145d64a474437a4ef39d7b8059332ddeb07e92bf6e0e3acaf8afedc93795e4511737ec1e7aab6d5bc9466afc950c1c17b48ad
212 Output = "0123456789ABCDEF1234"
213
214 # Leading zero in the signature
215 +Availablein = default
216 Verify = RSA-2048
217 Ctrl = digest:SHA1
218 Input = "0123456789ABCDEF1234"
219 Output = 00c09d402423cbf233d26cae21f954547bc43fe80fd41360a0336cfdbe9aedad05bef6fd2eaee6cd60089a52482d4809a238149520df3bdde4cb9e23d9307b05c0a6f327052325a29adf2cc95b66523be7024e2a585c3d4db15dfbe146efe0ecdc0402e33fe5d40324ee96c5c3edd374a15cdc0f5d84aa243c0f07e188c6518fbfceae158a9943be398e31097da81b62074f626eff738be6160741d5a26957a482b3251fd85d8df78b98148459de10aa93305dbb4a5230aa1da291a9b0e481918f99b7638d72bb687f97661d304ae145d64a474437a4ef39d7b8059332ddeb07e92bf6e0e3acaf8afedc93795e4511737ec1e7aab6d5bc9466afc950c1c17b48ad
220 Result = VERIFY_ERROR
221
222 +Availablein = default
223 VerifyRecover = RSA-2048
224 Ctrl = digest:SHA1
225 Input = 00c09d402423cbf233d26cae21f954547bc43fe80fd41360a0336cfdbe9aedad05bef6fd2eaee6cd60089a52482d4809a238149520df3bdde4cb9e23d9307b05c0a6f327052325a29adf2cc95b66523be7024e2a585c3d4db15dfbe146efe0ecdc0402e33fe5d40324ee96c5c3edd374a15cdc0f5d84aa243c0f07e188c6518fbfceae158a9943be398e31097da81b62074f626eff738be6160741d5a26957a482b3251fd85d8df78b98148459de10aa93305dbb4a5230aa1da291a9b0e481918f99b7638d72bb687f97661d304ae145d64a474437a4ef39d7b8059332ddeb07e92bf6e0e3acaf8afedc93795e4511737ec1e7aab6d5bc9466afc950c1c17b48ad
226 Result = KEYOP_ERROR
227
228 # Mismatched digest
229 +Availablein = default
230 Verify = RSA-2048
231 Ctrl = digest:SHA1
232 Input = "0123456789ABCDEF1233"
233 @@ -137,6 +142,7 @@ Output = c09d402423cbf233d26cae21f954547bc43fe80fd41360a0336cfdbe9aedad05bef6fd2
234 Result = VERIFY_ERROR
235
236 # Corrupted signature
237 +Availablein = default
238 Verify = RSA-2048
239 Ctrl = digest:SHA1
240 Input = "0123456789ABCDEF1233"
241 @@ -144,6 +150,7 @@ Output = c09d402423cbf233d26cae21f954547bc43fe80fd41360a0336cfdbe9aedad05bef6fd2
242 Result = VERIFY_ERROR
243
244 # parameter is not NULLt
245 +Availablein = default
246 Verify = RSA-2048
247 Ctrl = digest:sha1
248 Input = "0123456789ABCDEF1234"
249 @@ -151,42 +158,49 @@ Output = 3ec3fc29eb6e122bd7aa361cd09fe1bcbe85311096a7b9e4799cedfb2351ce0ab7fe4e7
250 Result = VERIFY_ERROR
251
252 # embedded digest too long
253 +Availablein = default
254 Verify = RSA-2048
255 Ctrl = digest:sha1
256 Input = "0123456789ABCDEF1234"
257 Output = afec9a0d5330a08f54283bb4a9d4e7e7e70fc1342336c4c766fba713f66970151c6e27413c48c33864ea45a0238787004f338ed3e21b53b0fe9c1151c42c388cbc7cba5a06b706c407a5b48324fbe994dc7afc3a19fb3d2841e66222596c14cd72a0f0a7455a019d8eb554f59c0183f9552b75aa96fee8bf935945e079ca283d2bd3534a86f11351f6d6181fbf433e5b01a6d1422145c7a72214d3aacdd5d3af12b2d6bf6438f9f9a64010d8aeed801c87f0859412b236150b86a545f7239be022f4a7ad246b59df87514294cb4a4c7c5a997ee53c66054d9f38ca4e76c1f7af83c30f737ef70f83a45aebe18238ddb95e1998814ca4fc72388f1533147c169d
258 Result = VERIFY_ERROR
259
260 +Availablein = default
261 VerifyRecover = RSA-2048
262 Ctrl = digest:sha1
263 Input = afec9a0d5330a08f54283bb4a9d4e7e7e70fc1342336c4c766fba713f66970151c6e27413c48c33864ea45a0238787004f338ed3e21b53b0fe9c1151c42c388cbc7cba5a06b706c407a5b48324fbe994dc7afc3a19fb3d2841e66222596c14cd72a0f0a7455a019d8eb554f59c0183f9552b75aa96fee8bf935945e079ca283d2bd3534a86f11351f6d6181fbf433e5b01a6d1422145c7a72214d3aacdd5d3af12b2d6bf6438f9f9a64010d8aeed801c87f0859412b236150b86a545f7239be022f4a7ad246b59df87514294cb4a4c7c5a997ee53c66054d9f38ca4e76c1f7af83c30f737ef70f83a45aebe18238ddb95e1998814ca4fc72388f1533147c169d
264 Result = KEYOP_ERROR
265
266 # embedded digest too short
267 +Availablein = default
268 Verify = RSA-2048
269 Ctrl = digest:sha1
270 Input = "0123456789ABCDEF1234"
271 Output = afec9a0d5330a08f54283bb4a9d4e7e7e70fc1342336c4c766fba713f66970151c6e27413c48c33864ea45a0238787004f338ed3e21b53b0fe9c1151c42c388cbc7cba5a06b706c407a5b48324fbe994dc7afc3a19fb3d2841e66222596c14cd72a0f0a7455a019d8eb554f59c0183f9552b75aa96fee8bf935945e079ca283d2bd3534a86f11351f6d6181fbf433e5b01a6d1422145c7a72214d3aacdd5d3af12b2d6bf6438f9f9a64010d8aeed801c87f0859412b236150b86a545f7239be022f4a7ad246b59df87514294cb4a4c7c5a997ee53c66054d9f38ca4e76c1f7af83c30f737ef70f83a45aebe18238ddb95e1998814ca4fc72388f1533147c169d
272 Result = VERIFY_ERROR
273
274 +Availablein = default
275 VerifyRecover = RSA-2048
276 Ctrl = digest:sha1
277 Input = afec9a0d5330a08f54283bb4a9d4e7e7e70fc1342336c4c766fba713f66970151c6e27413c48c33864ea45a0238787004f338ed3e21b53b0fe9c1151c42c388cbc7cba5a06b706c407a5b48324fbe994dc7afc3a19fb3d2841e66222596c14cd72a0f0a7455a019d8eb554f59c0183f9552b75aa96fee8bf935945e079ca283d2bd3534a86f11351f6d6181fbf433e5b01a6d1422145c7a72214d3aacdd5d3af12b2d6bf6438f9f9a64010d8aeed801c87f0859412b236150b86a545f7239be022f4a7ad246b59df87514294cb4a4c7c5a997ee53c66054d9f38ca4e76c1f7af83c30f737ef70f83a45aebe18238ddb95e1998814ca4fc72388f1533147c169d
278 Result = KEYOP_ERROR
279
280 # Garbage after DigestInfo
281 +Availablein = default
282 Verify = RSA-2048
283 Ctrl = digest:sha1
284 Input = "0123456789ABCDEF1234"
285 Output = 9ee34872d4271a7d8808af0a4052a145a6d6a8437d00da3ed14428c7f087cd39f4d43334c41af63e7fa1ba363fee7bcef401d9d36a662abbab55ce89a696e1be0dfa19a5d09ca617dd488787b6048baaefeb29bc8688b2fe3882de2b77c905b5a8b56cf9616041e5ec934ba6de863efe93acc4eef783fe7f72a00fa65d6093ed32bf98ce527e62ccb1d56317f4be18b7e0f55d7c36617d2d0678a306e3350956b662ac15df45215dd8f6b314babb9788e6c272fa461e4c9b512a11a4b92bc77c3a4c95c903fccb238794eca5c750477bf56ea6ee6a167367d881b485ae3889e7c489af8fdf38e0c0f2aed780831182e34abedd43c39281b290774bf35cc25274
286 Result = VERIFY_ERROR
287
288 +Availablein = default
289 VerifyRecover = RSA-2048
290 Ctrl = digest:sha1
291 Input = 9ee34872d4271a7d8808af0a4052a145a6d6a8437d00da3ed14428c7f087cd39f4d43334c41af63e7fa1ba363fee7bcef401d9d36a662abbab55ce89a696e1be0dfa19a5d09ca617dd488787b6048baaefeb29bc8688b2fe3882de2b77c905b5a8b56cf9616041e5ec934ba6de863efe93acc4eef783fe7f72a00fa65d6093ed32bf98ce527e62ccb1d56317f4be18b7e0f55d7c36617d2d0678a306e3350956b662ac15df45215dd8f6b314babb9788e6c272fa461e4c9b512a11a4b92bc77c3a4c95c903fccb238794eca5c750477bf56ea6ee6a167367d881b485ae3889e7c489af8fdf38e0c0f2aed780831182e34abedd43c39281b290774bf35cc25274
292 Result = KEYOP_ERROR
293
294 # invalid tag for parameter
295 +Availablein = default
296 Verify = RSA-2048
297 Ctrl = digest:sha1
298 Input = "0123456789ABCDEF1234"
299 @@ -195,6 +209,7 @@ Result = VERIFY_ERROR
300
301 # Verify using public key
302
303 +Availablein = default
304 Verify = RSA-2048-PUBLIC
305 Ctrl = digest:SHA1
306 Input = "0123456789ABCDEF1234"
307 @@ -370,6 +385,8 @@ Input="0123456789ABCDEF0123456789ABCDEF"
308 Output=4DE433D5844043EF08D354DA03CB29068780D52706D7D1E4D50EFB7D58C9D547D83A747DDD0635A96B28F854E50145518482CB49E963054621B53C60C498D07C16E9C2789C893CF38D4D86900DE71BDE463BD2761D1271E358C7480A1AC0BAB930DDF39602AD1BC165B5D7436B516B7A7858E8EB7AB1C420EEB482F4D207F0E462B1724959320A084E13848D11D10FB593E66BF680BF6D3F345FC3E9C3DE60ABBAC37E1C6EC80A268C8D9FC49626C679097AA690BC1AA662B95EB8DB70390861AA0898229F9349B4B5FDD030D4928C47084708A933144BE23BD3C6E661B85B2C0EF9ED36D498D5B7320E8194D363D4AD478C059BAE804181965E0B81B663158A
309
310 # Verify using salt length auto detect
311 +# In the FIPS provider on RHEL-9, the default digest for PSS signatures is SHA-256
312 +Availablein = default
313 Verify = RSA-2048-PUBLIC
314 Ctrl = rsa_padding_mode:pss
315 Ctrl = rsa_pss_saltlen:auto
316 @@ -404,6 +421,10 @@ Output=4DE433D5844043EF08D354DA03CB29068780D52706D7D1E4D50EFB7D58C9D547D83A747DD
317 Result = VERIFY_ERROR
318
319 # Verify using default parameters, explicitly setting parameters
320 +# NOTE: RSA-PSS-DEFAULT contains a restriction to use SHA1 as digest, which
321 +# RHEL-9 does not support in FIPS mode; all these tests are thus marked
322 +# Availablein = default.
323 +Availablein = default
324 Verify = RSA-PSS-DEFAULT
325 Ctrl = rsa_padding_mode:pss
326 Ctrl = rsa_pss_saltlen:20
327 @@ -412,6 +433,7 @@ Input="0123456789ABCDEF0123"
328 Output = 3EFE09D88509027D837BFA5F8471CF7B69E6DF395DD999BB9CA42021F15722D9AC76670507C6BCFB73F64FB2211B611B8F140E76EBDB064BD762FDBA89D019E304A0D6B274E1C2FE1DF50005598A0306AF805416094E2A5BA60BC72BDE38CE061E853ED40F14967A8B9CA4DC739B462F89558F12FDF2D8D19FBEF16AD66FE2DDDA8BEE983ECBD873064244849D8D94B5B33F45E076871A47ED653E73257A2BE2DB3C0878094B0D2B6B682C8007DFD989425FB39A1FEEC9EED5876414601A49176EC344F5E3EDEE81CA2DDD29B7364F4638112CB3A547E2BC170E28CB66BDABE863754BE8AD5BA230567B575266F4B6B4CF81F28310ABF05351CC9E2DB85D00BF
329
330 # Verify explicitly setting parameters "digest" salt length
331 +Availablein = default
332 Verify = RSA-PSS-DEFAULT
333 Ctrl = rsa_padding_mode:pss
334 Ctrl = rsa_pss_saltlen:digest
335 @@ -420,18 +442,21 @@ Input="0123456789ABCDEF0123"
336 Output = 3EFE09D88509027D837BFA5F8471CF7B69E6DF395DD999BB9CA42021F15722D9AC76670507C6BCFB73F64FB2211B611B8F140E76EBDB064BD762FDBA89D019E304A0D6B274E1C2FE1DF50005598A0306AF805416094E2A5BA60BC72BDE38CE061E853ED40F14967A8B9CA4DC739B462F89558F12FDF2D8D19FBEF16AD66FE2DDDA8BEE983ECBD873064244849D8D94B5B33F45E076871A47ED653E73257A2BE2DB3C0878094B0D2B6B682C8007DFD989425FB39A1FEEC9EED5876414601A49176EC344F5E3EDEE81CA2DDD29B7364F4638112CB3A547E2BC170E28CB66BDABE863754BE8AD5BA230567B575266F4B6B4CF81F28310ABF05351CC9E2DB85D00BF
337
338 # Verify using salt length larger than minimum
339 +Availablein = default
340 Verify = RSA-PSS-DEFAULT
341 Ctrl = rsa_pss_saltlen:30
342 Input="0123456789ABCDEF0123"
343 Output = 6BF7EDC63A0BA184EEEC7F3020FEC8F5EBF38C2B76481881F48BCCE5796E7AB294548BA9AE810457C7723CABD1BDE94CF59CF7C0FC7461B22760C8ED703DD98E97BFDD61FA8D1181C411F6DEE5FF159F4850746D78EDEE385A363DC28E2CB373D5CAD7953F3BD5E639BE345732C03A1BDEA268814DA036EB1891C82D4012F3B903D86636055F87B96FC98806AD1B217685A4D754046A5DE0B0D7870664BE07902153EC85BA457BE7D7F89D7FE0F626D02A9CBBB2BB479DDA1A5CAE75247FB7BF6BFB15C1D3FD9E6B1573CCDBC72011C3B97716058BB11C7EA2E4E56ADAFE1F5DE6A7FD405AC5890100F9C3408EFFB5C73BF73F48177FF743B4B819D0699D507B
344
345 # Verify using maximum salt length
346 +Availablein = default
347 Verify = RSA-PSS-DEFAULT
348 Ctrl = rsa_pss_saltlen:max
349 Input="0123456789ABCDEF0123"
350 Output = 4470DCFE812DEE2E58E4301D4ED274AB348FE040B724B2CD1D8CD0914BFF375F0B86FCB32BFA8AEA9BD22BD7C4F1ADD4F3D215A5CFCC99055BAFECFC23800E9BECE19A08C66BEBC5802122D13A732E5958FC228DCC0B49B5B4B1154F032D8FA2F3564AA949C1310CC9266B0C47F86D449AC9D2E7678347E7266E2D7C888CCE1ADF44A109A293F8516AE2BD94CE220F26E137DB8E7A66BB9FCE052CDC1D0BE24D8CEBB20D10125F26B069F117044B9E1D16FDDAABCA5340AE1702F37D0E1C08A2E93801C0A41035C6C73DA02A0E32227EAFB0B85E79107B59650D0EE7DC32A6772CCCE90F06369B2880FE87ED76997BA61F5EA818091EE88F8B0D6F24D02A3FC6
351
352 # Attempt to change salt length below minimum
353 +Availablein = default
354 Verify = RSA-PSS-DEFAULT
355 Ctrl = rsa_pss_saltlen:0
356 Result = PKEY_CTRL_ERROR
357 @@ -439,21 +464,25 @@ Result = PKEY_CTRL_ERROR
358 # Attempt to change padding mode
359 # Note this used to return PKEY_CTRL_INVALID
360 # but it is limited because setparams only returns 0 or 1.
361 +Availablein = default
362 Verify = RSA-PSS-DEFAULT
363 Ctrl = rsa_padding_mode:pkcs1
364 Result = PKEY_CTRL_ERROR
365
366 # Attempt to change digest
367 +Availablein = default
368 Verify = RSA-PSS-DEFAULT
369 Ctrl = digest:sha256
370 Result = PKEY_CTRL_ERROR
371
372 # Invalid key: rejected when we try to init
373 +Availablein = default
374 Verify = RSA-PSS-BAD
375 Result = KEYOP_INIT_ERROR
376 Reason = invalid salt length
377
378 # Invalid key: rejected when we try to init
379 +Availablein = default
380 Verify = RSA-PSS-BAD2
381 Result = KEYOP_INIT_ERROR
382 Reason = invalid salt length
383 @@ -472,36 +501,42 @@ CAltWyuLbfXWce9jd8CSHLI8Jwpw4lmOb/idGfEFrMLT8Ms18pKA4Thrb2TE7yLh
384 4fINDOjP+yJJvZohNwIDAQAB
385 -----END PUBLIC KEY-----
386
387 +Availablein = default
388 Verify=RSA-PSS-1
389 Ctrl = rsa_padding_mode:pss
390 Ctrl = rsa_mgf1_md:sha1
391 Input=cd8b6538cb8e8de566b68bd067569dbf1ee2718e
392 Output=9074308fb598e9701b2294388e52f971faac2b60a5145af185df5287b5ed2887e57ce7fd44dc8634e407c8e0e4360bc226f3ec227f9d9e54638e8d31f5051215df6ebb9c2f9579aa77598a38f914b5b9c1bd83c4e2f9f382a0d0aa3542ffee65984a601bc69eb28deb27dca12c82c2d4c3f66cd500f1ff2b994d8a4e30cbb33c
393
394 +Availablein = default
395 Verify=RSA-PSS-1
396 Ctrl = rsa_padding_mode:pss
397 Ctrl = rsa_mgf1_md:sha1
398 Input=e35befc17a1d160b9ce35fbd8eb16e7ee491d3fd
399 Output=3ef7f46e831bf92b32274142a585ffcefbdca7b32ae90d10fb0f0c729984f04ef29a9df0780775ce43739b97838390db0a5505e63de927028d9d29b219ca2c4517832558a55d694a6d25b9dab66003c4cccd907802193be5170d26147d37b93590241be51c25055f47ef62752cfbe21418fafe98c22c4d4d47724fdb5669e843
400
401 +Availablein = default
402 Verify=RSA-PSS-1
403 Ctrl = rsa_padding_mode:pss
404 Ctrl = rsa_mgf1_md:sha1
405 Input=0652ec67bcee30f9d2699122b91c19abdba89f91
406 Output=666026fba71bd3e7cf13157cc2c51a8e4aa684af9778f91849f34335d141c00154c4197621f9624a675b5abc22ee7d5baaffaae1c9baca2cc373b3f33e78e6143c395a91aa7faca664eb733afd14d8827259d99a7550faca501ef2b04e33c23aa51f4b9e8282efdb728cc0ab09405a91607c6369961bc8270d2d4f39fce612b1
407
408 +Availablein = default
409 Verify=RSA-PSS-1
410 Ctrl = rsa_padding_mode:pss
411 Ctrl = rsa_mgf1_md:sha1
412 Input=39c21c4cceda9c1adf839c744e1212a6437575ec
413 Output=4609793b23e9d09362dc21bb47da0b4f3a7622649a47d464019b9aeafe53359c178c91cd58ba6bcb78be0346a7bc637f4b873d4bab38ee661f199634c547a1ad8442e03da015b136e543f7ab07c0c13e4225b8de8cce25d4f6eb8400f81f7e1833b7ee6e334d370964ca79fdb872b4d75223b5eeb08101591fb532d155a6de87
414
415 +Availablein = default
416 Verify=RSA-PSS-1
417 Ctrl = rsa_padding_mode:pss
418 Ctrl = rsa_mgf1_md:sha1
419 Input=36dae913b77bd17cae6e7b09453d24544cebb33c
420 Output=1d2aad221ca4d31ddf13509239019398e3d14b32dc34dc5af4aeaea3c095af73479cf0a45e5629635a53a018377615b16cb9b13b3e09d671eb71e387b8545c5960da5a64776e768e82b2c93583bf104c3fdb23512b7b4e89f633dd0063a530db4524b01c3f384c09310e315a79dcd3d684022a7f31c865a664e316978b759fad
421
422 +Availablein = default
423 Verify=RSA-PSS-1
424 Ctrl = rsa_padding_mode:pss
425 Ctrl = rsa_mgf1_md:sha1
426 @@ -517,36 +552,42 @@ swU7R97S7NSkyu/WFIM9yLtiLzF+0Ha4BX/o3j+ESArV6D5KYZBKTySPs5cCc1fh
427 0w5GMTmBXG/U/VrFuBcqRSMOy2MYoE8UVdhOWosCAwEAAQ==
428 -----END PUBLIC KEY-----
429
430 +Availablein = default
431 Verify=RSA-PSS-9
432 Ctrl = rsa_padding_mode:pss
433 Ctrl = rsa_mgf1_md:sha1
434 Input=2715a49b8b0012cd7aee84c116446e6dfe3faec0
435 Output=586107226c3ce013a7c8f04d1a6a2959bb4b8e205ba43a27b50f124111bc35ef589b039f5932187cb696d7d9a32c0c38300a5cdda4834b62d2eb240af33f79d13dfbf095bf599e0d9686948c1964747b67e89c9aba5cd85016236f566cc5802cb13ead51bc7ca6bef3b94dcbdbb1d570469771df0e00b1a8a06777472d2316279edae86474668d4e1efff95f1de61c6020da32ae92bbf16520fef3cf4d88f61121f24bbd9fe91b59caf1235b2a93ff81fc403addf4ebdea84934a9cdaf8e1a9e
436
437 +Availablein = default
438 Verify=RSA-PSS-9
439 Ctrl = rsa_padding_mode:pss
440 Ctrl = rsa_mgf1_md:sha1
441 Input=2dac956d53964748ac364d06595827c6b4f143cd
442 Output=80b6d643255209f0a456763897ac9ed259d459b49c2887e5882ecb4434cfd66dd7e1699375381e51cd7f554f2c271704b399d42b4be2540a0eca61951f55267f7c2878c122842dadb28b01bd5f8c025f7e228418a673c03d6bc0c736d0a29546bd67f786d9d692ccea778d71d98c2063b7a71092187a4d35af108111d83e83eae46c46aa34277e06044589903788f1d5e7cee25fb485e92949118814d6f2c3ee361489016f327fb5bc517eb50470bffa1afa5f4ce9aa0ce5b8ee19bf5501b958
443
444 +Availablein = default
445 Verify=RSA-PSS-9
446 Ctrl = rsa_padding_mode:pss
447 Ctrl = rsa_mgf1_md:sha1
448 Input=28d98c46cccafbd3bc04e72f967a54bd3ea12298
449 Output=484408f3898cd5f53483f80819efbf2708c34d27a8b2a6fae8b322f9240237f981817aca1846f1084daa6d7c0795f6e5bf1af59c38e1858437ce1f7ec419b98c8736adf6dd9a00b1806d2bd3ad0a73775e05f52dfef3a59ab4b08143f0df05cd1ad9d04bececa6daa4a2129803e200cbc77787caf4c1d0663a6c5987b605952019782caf2ec1426d68fb94ed1d4be816a7ed081b77e6ab330b3ffc073820fecde3727fcbe295ee61a050a343658637c3fd659cfb63736de32d9f90d3c2f63eca
450
451 +Availablein = default
452 Verify=RSA-PSS-9
453 Ctrl = rsa_padding_mode:pss
454 Ctrl = rsa_mgf1_md:sha1
455 Input=0866d2ff5a79f25ef668cd6f31b42dee421e4c0e
456 Output=84ebeb481be59845b46468bafb471c0112e02b235d84b5d911cbd1926ee5074ae0424495cb20e82308b8ebb65f419a03fb40e72b78981d88aad143053685172c97b29c8b7bf0ae73b5b2263c403da0ed2f80ff7450af7828eb8b86f0028bd2a8b176a4d228cccea18394f238b09ff758cc00bc04301152355742f282b54e663a919e709d8da24ade5500a7b9aa50226e0ca52923e6c2d860ec50ff480fa57477e82b0565f4379f79c772d5c2da80af9fbf325ece6fc20b00961614bee89a183e
457
458 +Availablein = default
459 Verify=RSA-PSS-9
460 Ctrl = rsa_padding_mode:pss
461 Ctrl = rsa_mgf1_md:sha1
462 Input=6a5b4be4cd36cc97dfde9995efbf8f097a4a991a
463 Output=82102df8cb91e7179919a04d26d335d64fbc2f872c44833943241de8454810274cdf3db5f42d423db152af7135f701420e39b494a67cbfd19f9119da233a23da5c6439b5ba0d2bc373eee3507001378d4a4073856b7fe2aba0b5ee93b27f4afec7d4d120921c83f606765b02c19e4d6a1a3b95fa4c422951be4f52131077ef17179729cddfbdb56950dbaceefe78cb16640a099ea56d24389eef10f8fecb31ba3ea3b227c0a86698bb89e3e9363905bf22777b2a3aa521b65b4cef76d83bde4c
464
465 +Availablein = default
466 Verify=RSA-PSS-9
467 Ctrl = rsa_padding_mode:pss
468 Ctrl = rsa_mgf1_md:sha1
469 @@ -564,36 +605,42 @@ F7jfF3jbOB3OCctK0FilEQAac4GY7ifPVaE7dUU5kGWC7IsXS9WNXR89dnxhNyGu
470 BQIDAQAB
471 -----END PUBLIC KEY-----
472
473 +Availablein = default
474 Verify=RSA-PSS-10
475 Ctrl = rsa_padding_mode:pss
476 Ctrl = rsa_mgf1_md:sha1
477 Input=9596bb630cf6a8d4ea4600422b9eba8b13675dd4
478 Output=82c2b160093b8aa3c0f7522b19f87354066c77847abf2a9fce542d0e84e920c5afb49ffdfdace16560ee94a1369601148ebad7a0e151cf16331791a5727d05f21e74e7eb811440206935d744765a15e79f015cb66c532c87a6a05961c8bfad741a9a6657022894393e7223739796c02a77455d0f555b0ec01ddf259b6207fd0fd57614cef1a5573baaff4ec00069951659b85f24300a25160ca8522dc6e6727e57d019d7e63629b8fe5e89e25cc15beb3a647577559299280b9b28f79b0409000be25bbd96408ba3b43cc486184dd1c8e62553fa1af4040f60663de7f5e49c04388e257f1ce89c95dab48a315d9b66b1b7628233876ff2385230d070d07e1666
479
480 +Availablein = default
481 Verify=RSA-PSS-10
482 Ctrl = rsa_padding_mode:pss
483 Ctrl = rsa_mgf1_md:sha1
484 Input=b503319399277fd6c1c8f1033cbf04199ea21716
485 Output=14ae35d9dd06ba92f7f3b897978aed7cd4bf5ff0b585a40bd46ce1b42cd2703053bb9044d64e813d8f96db2dd7007d10118f6f8f8496097ad75e1ff692341b2892ad55a633a1c55e7f0a0ad59a0e203a5b8278aec54dd8622e2831d87174f8caff43ee6c46445345d84a59659bfb92ecd4c818668695f34706f66828a89959637f2bf3e3251c24bdba4d4b7649da0022218b119c84e79a6527ec5b8a5f861c159952e23ec05e1e717346faefe8b1686825bd2b262fb2531066c0de09acde2e4231690728b5d85e115a2f6b92b79c25abc9bd9399ff8bcf825a52ea1f56ea76dd26f43baafa18bfa92a504cbd35699e26d1dcc5a2887385f3c63232f06f3244c3
486
487 +Availablein = default
488 Verify=RSA-PSS-10
489 Ctrl = rsa_padding_mode:pss
490 Ctrl = rsa_mgf1_md:sha1
491 Input=50aaede8536b2c307208b275a67ae2df196c7628
492 Output=6e3e4d7b6b15d2fb46013b8900aa5bbb3939cf2c095717987042026ee62c74c54cffd5d7d57efbbf950a0f5c574fa09d3fc1c9f513b05b4ff50dd8df7edfa20102854c35e592180119a70ce5b085182aa02d9ea2aa90d1df03f2daae885ba2f5d05afdac97476f06b93b5bc94a1a80aa9116c4d615f333b098892b25fface266f5db5a5a3bcc10a824ed55aad35b727834fb8c07da28fcf416a5d9b2224f1f8b442b36f91e456fdea2d7cfe3367268de0307a4c74e924159ed33393d5e0655531c77327b89821bdedf880161c78cd4196b5419f7acc3f13e5ebf161b6e7c6724716ca33b85c2e25640192ac2859651d50bde7eb976e51cec828b98b6563b86bb
493
494 +Availablein = default
495 Verify=RSA-PSS-10
496 Ctrl = rsa_padding_mode:pss
497 Ctrl = rsa_mgf1_md:sha1
498 Input=aa0b72b8b371ddd10c8ae474425ccccf8842a294
499 Output=34047ff96c4dc0dc90b2d4ff59a1a361a4754b255d2ee0af7d8bf87c9bc9e7ddeede33934c63ca1c0e3d262cb145ef932a1f2c0a997aa6a34f8eaee7477d82ccf09095a6b8acad38d4eec9fb7eab7ad02da1d11d8e54c1825e55bf58c2a23234b902be124f9e9038a8f68fa45dab72f66e0945bf1d8bacc9044c6f07098c9fcec58a3aab100c805178155f030a124c450e5acbda47d0e4f10b80a23f803e774d023b0015c20b9f9bbe7c91296338d5ecb471cafb032007b67a60be5f69504a9f01abb3cb467b260e2bce860be8d95bf92c0c8e1496ed1e528593a4abb6df462dde8a0968dffe4683116857a232f5ebf6c85be238745ad0f38f767a5fdbf486fb
500
501 +Availablein = default
502 Verify=RSA-PSS-10
503 Ctrl = rsa_padding_mode:pss
504 Ctrl = rsa_mgf1_md:sha1
505 Input=fad3902c9750622a2bc672622c48270cc57d3ea8
506 Output=7e0935ea18f4d6c1d17ce82eb2b3836c55b384589ce19dfe743363ac9948d1f346b7bfddfe92efd78adb21faefc89ade42b10f374003fe122e67429a1cb8cbd1f8d9014564c44d120116f4990f1a6e38774c194bd1b8213286b077b0499d2e7b3f434ab12289c556684deed78131934bb3dd6537236f7c6f3dcb09d476be07721e37e1ceed9b2f7b406887bd53157305e1c8b4f84d733bc1e186fe06cc59b6edb8f4bd7ffefdf4f7ba9cfb9d570689b5a1a4109a746a690893db3799255a0cb9215d2d1cd490590e952e8c8786aa0011265252470c041dfbc3eec7c3cbf71c24869d115c0cb4a956f56d530b80ab589acfefc690751ddf36e8d383f83cedd2cc
507
508 +Availablein = default
509 Verify=RSA-PSS-10
510 Ctrl = rsa_padding_mode:pss
511 Ctrl = rsa_mgf1_md:sha1
512 @@ -1329,11 +1376,13 @@ Title = RSA FIPS tests
513
514 # FIPS tests
515
516 -# Verifying with SHA1 is permitted in fips mode for older applications
517 +# Verifying with SHA1 is not permitted on RHEL-9 in FIPS mode
518 +Availablein = fips
519 DigestVerify = SHA1
520 Key = RSA-2048
521 Input = "Hello "
522 Output = 87ea0e2226ef35e5a2aec9ca1222fcbe39ba723f05b3203564f671dd3601271806ead3240e61d424359ee3b17bd3e32f54b82df83998a8ac4148410710361de0400f9ddf98278618fbc87747a0531972543e6e5f18ab2fdfbfda02952f6ac69690e43864690af271bf43d4be9705b303d4ff994ab3abd4d5851562b73e59be3edc01cec41a4cc13b68206329bad1a46c6608d3609e951faa321d0fdbc765d54e9a7c59248d2f67913c9903e932b769c9c8a45520cabea06e8c0b231dd3bcc7f7ec55b46b0157ccb5fc5011fa57353cd3df32edcbadcb8d168133cbd0acfb64444cb040e1298f621508a38f79e14ae8c2c5c857f90aa9d24ef5fc07d34bf23859
523 +Result = DIGESTVERIFYINIT_ERROR
524
525 # Verifying with a 1024 bit key is permitted in fips mode for older applications
526 DigestVerify = SHA256
527 diff --git a/test/recipes/80-test_cms.t b/test/recipes/80-test_cms.t
528 index 48a92f735d..34afe91b88 100644
529 --- a/test/recipes/80-test_cms.t
530 +++ b/test/recipes/80-test_cms.t
531 @@ -162,7 +162,7 @@ my @smime_pkcs7_tests = (
532 [ "{cmd1}", @defaultprov, "-sign", "-in", $smcont, "-md", "sha1",
533 "-certfile", $smroot,
534 "-signer", $smrsa1, "-out", "{output}.cms" ],
535 - [ "{cmd2}", @prov, "-verify", "-in", "{output}.cms",
536 + [ "{cmd2}", @defaultprov, "-verify", "-in", "{output}.cms",
537 "-CAfile", $smroot, "-out", "{output}.txt" ],
538 \&final_compare
539 ],
540 @@ -170,7 +170,7 @@ my @smime_pkcs7_tests = (
541 [ "signed zero-length content S/MIME format, RSA key SHA1",
542 [ "{cmd1}", @defaultprov, "-sign", "-in", $smcont_zero, "-md", "sha1",
543 "-certfile", $smroot, "-signer", $smrsa1, "-out", "{output}.cms" ],
544 - [ "{cmd2}", @prov, "-verify", "-in", "{output}.cms",
545 + [ "{cmd2}", @defaultprov, "-verify", "-in", "{output}.cms",
546 "-CAfile", $smroot, "-out", "{output}.txt" ],
547 \&zero_compare
548 ],
549 diff --git a/test/recipes/80-test_ssl_old.t b/test/recipes/80-test_ssl_old.t
550 index 8c52b637fc..ff75c5b6ec 100644
551 --- a/test/recipes/80-test_ssl_old.t
552 +++ b/test/recipes/80-test_ssl_old.t
553 @@ -394,6 +394,9 @@ sub testssl {
554 'test sslv2/sslv3 with 1024bit DHE via BIO pair');
555 }
556
557 + SKIP: {
558 + skip "SSLv3 is not supported by the FIPS provider", 4
559 + if $provider eq "fips";
560 ok(run(test([@ssltest, "-bio_pair", "-server_auth", @CA])),
561 'test sslv2/sslv3 with server authentication');
562 ok(run(test([@ssltest, "-bio_pair", "-client_auth", @CA])),
563 @@ -402,6 +405,7 @@ sub testssl {
564 'test sslv2/sslv3 with both client and server authentication via BIO pair');
565 ok(run(test([@ssltest, "-bio_pair", "-server_auth", "-client_auth", "-app_verify", @CA])),
566 'test sslv2/sslv3 with both client and server authentication via BIO pair and app verify');
567 + }
568
569 SKIP: {
570 skip "No IPv4 available on this machine", 4

admin@koozali.org
ViewVC Help
Powered by ViewVC 1.2.1 RSS 2.0 feed