3bbcd0c5 | 29-Jul-2024 |
Tomas Mraz |
3DES ciphersuites are not allowed in FIPS anymore Reviewed-by: Neil Horman <nhorman@openssl.org> Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/
3DES ciphersuites are not allowed in FIPS anymore Reviewed-by: Neil Horman <nhorman@openssl.org> Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/25028)
show more ...
|
3bc097d8 | 29-Jul-2024 |
Tomas Mraz |
Add enable-weak-ssl-ciphers to full_featured CI job Reviewed-by: Neil Horman <nhorman@openssl.org> Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openss
Add enable-weak-ssl-ciphers to full_featured CI job Reviewed-by: Neil Horman <nhorman@openssl.org> Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/25028)
show more ...
|
5cec58bd | 31-Jul-2024 |
Clemens Lang |
Speed up SSL_add_{file,dir}_cert_subjects_to_stack The X509_NAME comparison function converts its arguments to DER using i2d_X509_NAME before comparing the results using memcmp(). For ev
Speed up SSL_add_{file,dir}_cert_subjects_to_stack The X509_NAME comparison function converts its arguments to DER using i2d_X509_NAME before comparing the results using memcmp(). For every invocation of the comparison function (of which there are many when loading many certificates), it allocates two buffers of the appropriate size for the DER encoding. Switching to static buffers (possibly of X509_NAME_MAX size as defined in crypto/x509/x_name.c) would not work with multithreaded use, e.g., when two threads sort two separate STACK_OF(X509_NAME)s at the same time. A suitable re-usable buffer could have been added to the STACK_OF(X509_NAME) if sk_X509_NAME_compfunc did have a void* argument, or a pointer to the STACK_OF(X509_NAME) – but it does not. Instead, copy the solution chosen in SSL_load_client_CA_file() by filling an LHASH_OF(X509_NAME) with all existing names in the stack and using that to deduplicate, rather than relying on sk_X509_NAME_find(), which ends up being very slow. Adjust SSL_add_dir_cert_subjects_to_stack() to keep a local LHASH_OF(X509_NAME)s over the complete directory it is processing. In a small benchmark that calls SSL_add_dir_cert_subjects_to_stack() twice, once on a directory with one entry, and once with a directory with 1000 certificates, and repeats this in a loop 10 times, this change yields a speed-up of 5.32: | Benchmark 1: ./bench 10 dir-1 dir-1000 | Time (mean ± σ): 6.685 s ± 0.017 s [User: 6.402 s, System: 0.231 s] | Range (min … max): 6.658 s … 6.711 s 10 runs | | Benchmark 2: LD_LIBRARY_PATH=. ./bench 10 dir-1 dir-1000 | Time (mean ± σ): 1.256 s ± 0.013 s [User: 1.034 s, System: 0.212 s] | Range (min … max): 1.244 s … 1.286 s 10 runs | | Summary | LD_LIBRARY_PATH=. ./bench 10 dir-1 dir-1000 ran | 5.32 ± 0.06 times faster than ./bench 10 dir-1 dir-1000 In the worst case scenario where many entries are added to a stack that is then repeatedly used to add more certificates, and with a larger test size, the speedup is still very significant. With 15000 certificates, a single pass to load them, followed by attempting to load a subset of 1000 of these 15000 certificates, followed by a single certificate, the new approach is ~85 times faster: | Benchmark 1: ./bench 1 dir-15000 dir-1000 dir-1 | Time (mean ± σ): 176.295 s ± 4.147 s [User: 174.593 s, System: 0.448 s] | Range (min … max): 173.774 s … 185.594 s 10 runs | | Benchmark 2: LD_LIBRARY_PATH=. ./bench 1 dir-15000 dir-1000 dir-1 | Time (mean ± σ): 2.087 s ± 0.034 s [User: 1.679 s, System: 0.393 s] | Range (min … max): 2.057 s … 2.167 s 10 runs | | Summary | LD_LIBRARY_PATH=. ./bench 1 dir-15000 dir-1000 dir-1 ran | 84.48 ± 2.42 times faster than ./bench 1 dir-15000 dir-1000 dir-1 Signed-off-by: Clemens Lang <cllang@redhat.com> Reviewed-by: Dmitry Belyavskiy <beldmit@gmail.com> Reviewed-by: Tomas Mraz <tomas@openssl.org> (Merged from https://github.com/openssl/openssl/pull/25056)
show more ...
|
871c534d | 30-Jul-2024 |
Marc Brooks |
Free fetched digest in show_digests Fixes #24892 Reviewed-by: Paul Dale <ppzgs1@gmail.com> Reviewed-by: Shane Lontis <shane.lontis@oracle.com> Reviewed-by: Tom Cosgrove <tom
Free fetched digest in show_digests Fixes #24892 Reviewed-by: Paul Dale <ppzgs1@gmail.com> Reviewed-by: Shane Lontis <shane.lontis@oracle.com> Reviewed-by: Tom Cosgrove <tom.cosgrove@arm.com> Reviewed-by: Neil Horman <nhorman@openssl.org> (Merged from https://github.com/openssl/openssl/pull/25046)
show more ...
|
6fa9a843 | 30-Jul-2024 |
pohsingwu |
Update documentation Reviewed-by: Shane Lontis <shane.lontis@oracle.com> Reviewed-by: Paul Dale <ppzgs1@gmail.com> (Merged from https://github.com/openssl/openssl/pull/23900) |
81bb8848 | 30-Jul-2024 |
pohsingwu |
Call key_check_passed in set_ctx_params Reviewed-by: Shane Lontis <shane.lontis@oracle.com> Reviewed-by: Paul Dale <ppzgs1@gmail.com> (Merged from https://github.com/openssl/openssl/
Call key_check_passed in set_ctx_params Reviewed-by: Shane Lontis <shane.lontis@oracle.com> Reviewed-by: Paul Dale <ppzgs1@gmail.com> (Merged from https://github.com/openssl/openssl/pull/23900)
show more ...
|
ba977226 | 12-Jul-2024 |
pohsingwu |
Add FIPS indicator tests for KDFs Reviewed-by: Shane Lontis <shane.lontis@oracle.com> Reviewed-by: Paul Dale <ppzgs1@gmail.com> (Merged from https://github.com/openssl/openssl/pull/2
Add FIPS indicator tests for KDFs Reviewed-by: Shane Lontis <shane.lontis@oracle.com> Reviewed-by: Paul Dale <ppzgs1@gmail.com> (Merged from https://github.com/openssl/openssl/pull/23900)
show more ...
|
1b838621 | 02-Jun-2024 |
pohsingwu |
Restrict the length of key-derivation key used in KDFs Reviewed-by: Shane Lontis <shane.lontis@oracle.com> Reviewed-by: Paul Dale <ppzgs1@gmail.com> (Merged from https://github.com/o
Restrict the length of key-derivation key used in KDFs Reviewed-by: Shane Lontis <shane.lontis@oracle.com> Reviewed-by: Paul Dale <ppzgs1@gmail.com> (Merged from https://github.com/openssl/openssl/pull/23900)
show more ...
|
96b59ec4 | 18-Jul-2024 |
Tomas Mraz |
CMS_get1_crls(): Remove redundant check for NULL crls Fixes Coverity 1610380 Reviewed-by: Tom Cosgrove <tom.cosgrove@arm.com> Reviewed-by: Neil Horman <nhorman@openssl.org>
CMS_get1_crls(): Remove redundant check for NULL crls Fixes Coverity 1610380 Reviewed-by: Tom Cosgrove <tom.cosgrove@arm.com> Reviewed-by: Neil Horman <nhorman@openssl.org> Reviewed-by: Dmitry Belyavskiy <beldmit@gmail.com> (Merged from https://github.com/openssl/openssl/pull/24928)
show more ...
|
7408d587 | 29-Jul-2024 |
Neil Horman |
disable rwlocks on nonstop klt model It appears nonstops new threading model defines some level of rwlock pthread api, but its not working properly. Disable rwlocks for _KLT_MODEL_
disable rwlocks on nonstop klt model It appears nonstops new threading model defines some level of rwlock pthread api, but its not working properly. Disable rwlocks for _KLT_MODEL_ for now Reviewed-by: Tomas Mraz <tomas@openssl.org> Reviewed-by: Tom Cosgrove <tom.cosgrove@arm.com> (Merged from https://github.com/openssl/openssl/pull/24969)
show more ...
|
9bd5e92a | 29-Jul-2024 |
Neil Horman |
Add error checking to CRYPTO_atomic_[load|store] calls Noted that we didn't check return codes of the atomic loads/stores in the new hashtable, and they can fail Reviewed-by: To
Add error checking to CRYPTO_atomic_[load|store] calls Noted that we didn't check return codes of the atomic loads/stores in the new hashtable, and they can fail Reviewed-by: Tomas Mraz <tomas@openssl.org> Reviewed-by: Tom Cosgrove <tom.cosgrove@arm.com> (Merged from https://github.com/openssl/openssl/pull/24969)
show more ...
|
8e5cc43e | 22-Jul-2024 |
Neil Horman |
Make ossl_ht_delete use read-once semantics To ensure that the value of h->md doesn't get recomputed during a delete operation use ossl_rcu_deref on it Reviewed-by: Tomas Mraz <
Make ossl_ht_delete use read-once semantics To ensure that the value of h->md doesn't get recomputed during a delete operation use ossl_rcu_deref on it Reviewed-by: Tomas Mraz <tomas@openssl.org> Reviewed-by: Tom Cosgrove <tom.cosgrove@arm.com> (Merged from https://github.com/openssl/openssl/pull/24969)
show more ...
|
3190f5c0 | 22-Jul-2024 |
Neil Horman |
Fix CRYPTO_atomic_store If the implementation of this function falls to using a pthread lock to update a value, it should be a write lock, not a read lock Reviewed-by: Tomas Mra
Fix CRYPTO_atomic_store If the implementation of this function falls to using a pthread lock to update a value, it should be a write lock, not a read lock Reviewed-by: Tomas Mraz <tomas@openssl.org> Reviewed-by: Tom Cosgrove <tom.cosgrove@arm.com> (Merged from https://github.com/openssl/openssl/pull/24969)
show more ...
|
454ca902 | 19-Jul-2024 |
Tomas Mraz |
evp_get_digest/cipherbyname_ex(): Try to fetch if not found If the name is not found in namemap, we need to try to fetch the algorithm and query the namemap again. Fixes #19
evp_get_digest/cipherbyname_ex(): Try to fetch if not found If the name is not found in namemap, we need to try to fetch the algorithm and query the namemap again. Fixes #19338 Reviewed-by: Neil Horman <nhorman@openssl.org> Reviewed-by: Paul Dale <ppzgs1@gmail.com> Reviewed-by: Shane Lontis <shane.lontis@oracle.com> (Merged from https://github.com/openssl/openssl/pull/24940)
show more ...
|
4fa9d1f4 | 18-Jul-2024 |
Tomas Mraz |
Avoid leaking *ba_ret on reconnections Also fixes Coverity 1604639 There is no point in checking ba_ret as it can never be NULL. Reviewed-by: Tom Cosgrove <tom.cosgrove@arm.com>
Avoid leaking *ba_ret on reconnections Also fixes Coverity 1604639 There is no point in checking ba_ret as it can never be NULL. Reviewed-by: Tom Cosgrove <tom.cosgrove@arm.com> Reviewed-by: Paul Dale <ppzgs1@gmail.com> (Merged from https://github.com/openssl/openssl/pull/24931)
show more ...
|
f41b5ffe | 16-Jul-2024 |
Dimitri John Ledkov |
jitter: retry intermittent failures Reviewed-by: Shane Lontis <shane.lontis@oracle.com> Reviewed-by: Paul Dale <pauli@openssl.org> (Merged from https://github.com/openssl/openssl/pul
jitter: retry intermittent failures Reviewed-by: Shane Lontis <shane.lontis@oracle.com> Reviewed-by: Paul Dale <pauli@openssl.org> (Merged from https://github.com/openssl/openssl/pull/24844)
show more ...
|
f8c510cd | 12-Jul-2024 |
Dimitri John Ledkov |
JITTER: implement error handling from jitter library Reviewed-by: Shane Lontis <shane.lontis@oracle.com> Reviewed-by: Paul Dale <pauli@openssl.org> (Merged from https://github.com/op
JITTER: implement error handling from jitter library Reviewed-by: Shane Lontis <shane.lontis@oracle.com> Reviewed-by: Paul Dale <pauli@openssl.org> (Merged from https://github.com/openssl/openssl/pull/24844)
show more ...
|
1e7ff7be | 11-Jul-2024 |
Dimitri John Ledkov |
JITTER: excercise all tests in CI with JITTER seed source under certain build configuration Reviewed-by: Shane Lontis <shane.lontis@oracle.com> Reviewed-by: Paul Dale <pauli@openssl.org>
JITTER: excercise all tests in CI with JITTER seed source under certain build configuration Reviewed-by: Shane Lontis <shane.lontis@oracle.com> Reviewed-by: Paul Dale <pauli@openssl.org> (Merged from https://github.com/openssl/openssl/pull/24844)
show more ...
|
8f3ebb7d | 11-Jul-2024 |
Dimitri John Ledkov |
JITTER: add documentation Reviewed-by: Shane Lontis <shane.lontis@oracle.com> Reviewed-by: Paul Dale <pauli@openssl.org> (Merged from https://github.com/openssl/openssl/pull/24844) |
b28b3128 | 10-Jul-2024 |
Dimitri John Ledkov |
jitter: add a new provider containing a jitter entropy source alone This entropy source can be used instead of SEED-SRC. Sample openssl.cnf configuration is provided. It is built as a se
jitter: add a new provider containing a jitter entropy source alone This entropy source can be used instead of SEED-SRC. Sample openssl.cnf configuration is provided. It is built as a separate provider, because it is likely to require less frequent updates than fips provider. The same build likely can span multiple generations of FIPS 140 standard revisions. Note that rand-instances currently chain from public/private instances to primary, prior to consuming the seed. Thus currently a unique ESV needs to be obtained, and resue of jitterentropy.a certificate is not possible as is. Separately a patch will be sent to allow for unchaining public/private RAND instances for the purpose of reusing ESV. Also I do wonder if it makes sense to create a fips variant of stock SEED-SRC entropy source, which in addition to using getrandom() also verifies that the kernel is operating in FIPS mode and thus is likely a validated entropy source. As in on Linux, check that /proc/sys/crypto/fips_enabled is set to 1, and similar checks on Windows / MacOS and so on. Reviewed-by: Shane Lontis <shane.lontis@oracle.com> Reviewed-by: Paul Dale <pauli@openssl.org> (Merged from https://github.com/openssl/openssl/pull/24844)
show more ...
|
4f5febe2 | 29-Jul-2024 |
slontis |
Add FIPS indicator to CMAC. There is a issue currently related to CMAC TDES, when the new provider is tested against older branches. The new strict check caused backwards compat
Add FIPS indicator to CMAC. There is a issue currently related to CMAC TDES, when the new provider is tested against older branches. The new strict check caused backwards compatibility issues when using old branch with the new FIPS provider. To get around this CMAC now allows TDES by default, but it can be either enabled via config or a settable. (i.e it uses an indicator) Where the TDES cipher check can be done turned out to be problematic. Shifting the check in the TDES cipherout of the init doesnt work because ciphers can run thru either final or cipher (and checking on every cipher call seemed bad). This means it needs to stay in the cipher init. So the check needs to be done in CMAC BEFORE the underlying TDES cipher does it check. When using an indicator the TDES cipher needs its "encrypt-check" set so that needs to be propagated from the CMAC object. This requires the ability to set the param at the time the cipher ctx is inited. An internal function was required in order to pass params to CMAC_Init. Note also that the check was done where it is, because EVP_Q_mac() calls EVP_MAC_CTX_set_params(ctx, cipher_param) EVP_MAC_CTX_set_params(ctx, params) EVP_MAC_init(ctx, key, keylen, params) Where the second call to set_params would set up "encrypt-check" after "cipher". Reviewed-by: Neil Horman <nhorman@openssl.org> Reviewed-by: Paul Dale <pauli@openssl.org> (Merged from https://github.com/openssl/openssl/pull/25022)
show more ...
|
efba3f13 | 12-Jul-2024 |
Pauli |
Add negative tests for SHAKE with PBKDF2 and X9.42 KDF Reviewed-by: Tomas Mraz <tomas@openssl.org> Reviewed-by: Shane Lontis <shane.lontis@oracle.com> (Merged from https://github.com
Add negative tests for SHAKE with PBKDF2 and X9.42 KDF Reviewed-by: Tomas Mraz <tomas@openssl.org> Reviewed-by: Shane Lontis <shane.lontis@oracle.com> (Merged from https://github.com/openssl/openssl/pull/24862)
show more ...
|
a5827910 | 12-Jul-2024 |
Pauli |
Disallow SHAKE when using PBKDF2 and X9.42 KDF The operation is non-sensical. Reviewed-by: Tomas Mraz <tomas@openssl.org> Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
Disallow SHAKE when using PBKDF2 and X9.42 KDF The operation is non-sensical. Reviewed-by: Tomas Mraz <tomas@openssl.org> Reviewed-by: Shane Lontis <shane.lontis@oracle.com> (Merged from https://github.com/openssl/openssl/pull/24862)
show more ...
|
07e4d7f4 | 29-Jul-2024 |
slontis |
Add RSA Signature restrictions for X9.31 padding in the FIPS provider. In FIPS 140-3, RSA Signing with X9.31 padding is not approved, but verification is allowed for legacy purposes. An
Add RSA Signature restrictions for X9.31 padding in the FIPS provider. In FIPS 140-3, RSA Signing with X9.31 padding is not approved, but verification is allowed for legacy purposes. An indicator has been added for RSA signing with X9.31 padding. A strict restriction on the size of the RSA modulus has been added i.e. It must be 1024 + 256 * s (which is part of the ANSI X9.31 spec). Added implementation comments to the X9.31 padding code Reviewed-by: Tomas Mraz <tomas@openssl.org> Reviewed-by: Paul Dale <ppzgs1@gmail.com> (Merged from https://github.com/openssl/openssl/pull/24021)
show more ...
|
9c57eb73 | 26-Jul-2024 |
Pauli |
drbg: streamline test for allowed digests Under FIPS, we've got a whitelist of algorithms. There is no need to then also check for XOF digests because they aren't possible. Rev
drbg: streamline test for allowed digests Under FIPS, we've got a whitelist of algorithms. There is no need to then also check for XOF digests because they aren't possible. Reviewed-by: Shane Lontis <shane.lontis@oracle.com> Reviewed-by: Tom Cosgrove <tom.cosgrove@arm.com> Reviewed-by: Neil Horman <nhorman@openssl.org> (Merged from https://github.com/openssl/openssl/pull/25007)
show more ...
|