Initialize for openssl-3
This commit is contained in:
commit
b166a01e49
26 changed files with 3533 additions and 0 deletions
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
||||||
|
openssl-3.0.8.tar.gz
|
1
.openssl-3.metadata
Normal file
1
.openssl-3.metadata
Normal file
|
@ -0,0 +1 @@
|
||||||
|
3ec911e6930e0e2ebbcc77bb2b36896e7376a2f559156f50f355b0d4f8bc90cb openssl-3.0.8.tar.gz
|
8
baselibs.conf
Normal file
8
baselibs.conf
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
libopenssl3
|
||||||
|
obsoletes "libopenssl1_1_0-<targettype>"
|
||||||
|
obsoletes "libopenssl1_1-<targettype>"
|
||||||
|
libopenssl-3-devel
|
||||||
|
provides "libopenssl-devel-<targettype> = <version>"
|
||||||
|
conflicts "otherproviders(libopenssl-devel-<targettype>)"
|
||||||
|
requires -"openssl-3-<targettype>"
|
||||||
|
requires "libopenssl3-<targettype> = <version>"
|
13
fix-config-in-tests.patch
Normal file
13
fix-config-in-tests.patch
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
Index: openssl-3.0.1/test/run_tests.pl
|
||||||
|
===================================================================
|
||||||
|
--- openssl-3.0.1.orig/test/run_tests.pl
|
||||||
|
+++ openssl-3.0.1/test/run_tests.pl
|
||||||
|
@@ -33,7 +33,7 @@ my $recipesdir = catdir($srctop, "test",
|
||||||
|
my $libdir = rel2abs(catdir($srctop, "util", "perl"));
|
||||||
|
my $jobs = $ENV{HARNESS_JOBS} // 1;
|
||||||
|
|
||||||
|
-$ENV{OPENSSL_CONF} = rel2abs(catfile($srctop, "apps", "openssl.cnf"));
|
||||||
|
+$ENV{OPENSSL_CONF} = rel2abs(catfile($srctop, "apps", "openssl3.cnf"));
|
||||||
|
$ENV{OPENSSL_CONF_INCLUDE} = rel2abs(catdir($bldtop, "test"));
|
||||||
|
$ENV{OPENSSL_MODULES} = rel2abs(catdir($bldtop, "providers"));
|
||||||
|
$ENV{OPENSSL_ENGINES} = rel2abs(catdir($bldtop, "engines"));
|
13
openssl-1.1.0-no-html.patch
Normal file
13
openssl-1.1.0-no-html.patch
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
Index: openssl-3.0.0-alpha1/Configurations/unix-Makefile.tmpl
|
||||||
|
===================================================================
|
||||||
|
--- openssl-3.0.0-alpha1.orig/Configurations/unix-Makefile.tmpl 2020-04-23 22:56:27.365853133 +0200
|
||||||
|
+++ openssl-3.0.0-alpha1/Configurations/unix-Makefile.tmpl 2020-04-23 22:56:52.474004636 +0200
|
||||||
|
@@ -544,7 +544,7 @@ install_sw: install_dev install_engines
|
||||||
|
|
||||||
|
uninstall_sw: uninstall_runtime uninstall_modules uninstall_engines uninstall_dev
|
||||||
|
|
||||||
|
-install_docs: install_man_docs install_html_docs
|
||||||
|
+install_docs: install_man_docs
|
||||||
|
|
||||||
|
uninstall_docs: uninstall_man_docs uninstall_html_docs
|
||||||
|
$(RM) -r $(DESTDIR)$(DOCDIR)
|
16
openssl-3.0.8.tar.gz.asc
Normal file
16
openssl-3.0.8.tar.gz.asc
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
-----BEGIN PGP SIGNATURE-----
|
||||||
|
|
||||||
|
iQIzBAABCgAdFiEEeVOsH7w9yLOykjk+1enkP3357owFAmPiVZsACgkQ1enkP335
|
||||||
|
7owJ6BAAk2EnBElYMTM3SuqLDp4fdf2EhSfhxWG45Q9oV8BQ3Th/l8zia/pIOLs7
|
||||||
|
Pt6MXYhdd6IdVij5HMMR/ZMUJi/YnYG9lhhJ+p4NTHP+Tc4UjHoexJQuDZk9jM6y
|
||||||
|
zynSONsuIZRAXI4hiJ2Lg5X0iLhEuYBblPUDDdkO8ojTYkEohMQDj4Jt63vVPylV
|
||||||
|
m+tIDFVfYVQpXnORvy0LNDyjQhDb+gEEnAt8XwpE9FnrvkREHM1WQgmI4+1FLXBc
|
||||||
|
MaCWoFGEmFRMqxbqEjrtnCCafFcCKGYQnozrdN8VK62xGhDEOwEwjgzW00rm1TIG
|
||||||
|
eKOp9XOwcZehM5VR622eD/N4A96ET5Q3WOgqc76I8sWmx0lu/PaXl5bZcAeZpG4v
|
||||||
|
dYI926XSaSsrQ2ADhpgl02vLTVISMejmTNrxZjci0Ce76xjFfcxutD8wppL9Zqg4
|
||||||
|
dwmpW8+qpgXZ+ABN6qYWsIXVHijJcyJgmFdQdcF/FfjVRxviCncz2i5dyUNUgw6Z
|
||||||
|
+nLlYNfk+6v0EVIgIA3rw8TGKGom3m1+d41KAMdEAET6n1D/SKbJxCyyYlBBGZBT
|
||||||
|
7Vd5u2zEjMK4b0Iv81Nq4YsActWk69PULfkYLgRGSvBFtpIn9g9RgV7hKlFTvZ/5
|
||||||
|
S4A8XH/qrlSk+jb2Bl7qlgyZceDti8Ef6Ktz9YDdH0O133BRxAQ=
|
||||||
|
=FUbH
|
||||||
|
-----END PGP SIGNATURE-----
|
957
openssl-3.changes
Normal file
957
openssl-3.changes
Normal file
|
@ -0,0 +1,957 @@
|
||||||
|
* Thu Jul 20 2023 pmonreal@suse.com
|
||||||
|
- Security fix: [bsc#1213487, CVE-2023-3446]
|
||||||
|
* Fix DH_check() excessive time with over sized modulus.
|
||||||
|
* The function DH_check() performs various checks on DH parameters.
|
||||||
|
One of those checks confirms that the modulus ("p" parameter) is
|
||||||
|
not too large. Trying to use a very large modulus is slow and
|
||||||
|
OpenSSL will not normally use a modulus which is over 10,000 bits
|
||||||
|
in length.
|
||||||
|
However the DH_check() function checks numerous aspects of the
|
||||||
|
key or parameters that have been supplied. Some of those checks
|
||||||
|
use the supplied modulus value even if it has already been found
|
||||||
|
to be too large.
|
||||||
|
A new limit has been added to DH_check of 32,768 bits. Supplying
|
||||||
|
a key/parameters with a modulus over this size will simply cause
|
||||||
|
DH_check() to fail.
|
||||||
|
* Add openssl-CVE-2023-3446.patch openssl-CVE-2023-3446-test.patch
|
||||||
|
* Tue Jul 18 2023 pmonreal@suse.com
|
||||||
|
- Security fix: [bsc#1213383, CVE-2023-2975]
|
||||||
|
* AES-SIV implementation ignores empty associated data entries
|
||||||
|
* Add openssl-CVE-2023-2975.patch
|
||||||
|
* Mon May 22 2023 otto.hollmann@suse.com
|
||||||
|
- Security Fix: [CVE-2023-1255, bsc#1210714]
|
||||||
|
* Input buffer over-read in AES-XTS implementation on 64 bit ARM
|
||||||
|
* Add openssl-CVE-2023-1255.patch
|
||||||
|
- Security Fix: [CVE-2023-2650, bsc#1211430]
|
||||||
|
* Possible DoS translating ASN.1 object identifiers
|
||||||
|
* Add openssl-CVE-2023-2650.patch
|
||||||
|
* Mon Apr 3 2023 otto.hollmann@suse.com
|
||||||
|
- Security Fix: [CVE-2023-0465, bsc#1209878]
|
||||||
|
* Invalid certificate policies in leaf certificates are silently ignored
|
||||||
|
* Add openssl-CVE-2023-0465.patch
|
||||||
|
- Security Fix: [CVE-2023-0466, bsc#1209873]
|
||||||
|
* Certificate policy check not enabled
|
||||||
|
* Add openssl-CVE-2023-0466.patch
|
||||||
|
* Fri Mar 24 2023 otto.hollmann@suse.com
|
||||||
|
- Security Fix: [CVE-2023-0464, bsc#1209624]
|
||||||
|
* Excessive Resource Usage Verifying X.509 Policy Constraints
|
||||||
|
* Add openssl-CVE-2023-0464.patch
|
||||||
|
* Tue Feb 7 2023 otto.hollmann@suse.com
|
||||||
|
- Update to version 3.0.8 in SLE15-SP5 [jsc#PED-544]
|
||||||
|
* Fixed NULL dereference during PKCS7 data verification.
|
||||||
|
A NULL pointer can be dereferenced when signatures are being
|
||||||
|
verified on PKCS7 signed or signedAndEnveloped data. In case the hash
|
||||||
|
algorithm used for the signature is known to the OpenSSL library but
|
||||||
|
the implementation of the hash algorithm is not available the digest
|
||||||
|
initialization will fail. There is a missing check for the return
|
||||||
|
value from the initialization function which later leads to invalid
|
||||||
|
usage of the digest API most likely leading to a crash.
|
||||||
|
([bsc#1207541, CVE-2023-0401])
|
||||||
|
PKCS7 data is processed by the SMIME library calls and also by the
|
||||||
|
time stamp (TS) library calls. The TLS implementation in OpenSSL does
|
||||||
|
not call these functions however third party applications would be
|
||||||
|
affected if they call these functions to verify signatures on untrusted
|
||||||
|
data.
|
||||||
|
* Fixed X.400 address type confusion in X.509 GeneralName.
|
||||||
|
There is a type confusion vulnerability relating to X.400 address processing
|
||||||
|
inside an X.509 GeneralName. X.400 addresses were parsed as an ASN1_STRING
|
||||||
|
but the public structure definition for GENERAL_NAME incorrectly specified
|
||||||
|
the type of the x400Address field as ASN1_TYPE. This field is subsequently
|
||||||
|
interpreted by the OpenSSL function GENERAL_NAME_cmp as an ASN1_TYPE rather
|
||||||
|
than an ASN1_STRING.
|
||||||
|
When CRL checking is enabled (i.e. the application sets the
|
||||||
|
X509_V_FLAG_CRL_CHECK flag), this vulnerability may allow an attacker to
|
||||||
|
pass arbitrary pointers to a memcmp call, enabling them to read memory
|
||||||
|
contents or enact a denial of service.
|
||||||
|
([bsc#1207533, CVE-2023-0286])
|
||||||
|
* Fixed NULL dereference validating DSA public key.
|
||||||
|
An invalid pointer dereference on read can be triggered when an
|
||||||
|
application tries to check a malformed DSA public key by the
|
||||||
|
EVP_PKEY_public_check() function. This will most likely lead
|
||||||
|
to an application crash. This function can be called on public
|
||||||
|
keys supplied from untrusted sources which could allow an attacker
|
||||||
|
to cause a denial of service attack.
|
||||||
|
The TLS implementation in OpenSSL does not call this function
|
||||||
|
but applications might call the function if there are additional
|
||||||
|
security requirements imposed by standards such as FIPS 140-3.
|
||||||
|
([bsc#1207540, CVE-2023-0217])
|
||||||
|
* Fixed Invalid pointer dereference in d2i_PKCS7 functions.
|
||||||
|
An invalid pointer dereference on read can be triggered when an
|
||||||
|
application tries to load malformed PKCS7 data with the
|
||||||
|
d2i_PKCS7(), d2i_PKCS7_bio() or d2i_PKCS7_fp() functions.
|
||||||
|
The result of the dereference is an application crash which could
|
||||||
|
lead to a denial of service attack. The TLS implementation in OpenSSL
|
||||||
|
does not call this function however third party applications might
|
||||||
|
call these functions on untrusted data.
|
||||||
|
([bsc#1207539, CVE-2023-0216])
|
||||||
|
* Fixed Use-after-free following BIO_new_NDEF.
|
||||||
|
The public API function BIO_new_NDEF is a helper function used for
|
||||||
|
streaming ASN.1 data via a BIO. It is primarily used internally to OpenSSL
|
||||||
|
to support the SMIME, CMS and PKCS7 streaming capabilities, but may also
|
||||||
|
be called directly by end user applications.
|
||||||
|
The function receives a BIO from the caller, prepends a new BIO_f_asn1
|
||||||
|
filter BIO onto the front of it to form a BIO chain, and then returns
|
||||||
|
the new head of the BIO chain to the caller. Under certain conditions,
|
||||||
|
for example if a CMS recipient public key is invalid, the new filter BIO
|
||||||
|
is freed and the function returns a NULL result indicating a failure.
|
||||||
|
However, in this case, the BIO chain is not properly cleaned up and the
|
||||||
|
BIO passed by the caller still retains internal pointers to the previously
|
||||||
|
freed filter BIO. If the caller then goes on to call BIO_pop() on the BIO
|
||||||
|
then a use-after-free will occur. This will most likely result in a crash.
|
||||||
|
([bsc#1207536, CVE-2023-0215])
|
||||||
|
* Fixed Double free after calling PEM_read_bio_ex.
|
||||||
|
The function PEM_read_bio_ex() reads a PEM file from a BIO and parses and
|
||||||
|
decodes the "name" (e.g. "CERTIFICATE"), any header data and the payload
|
||||||
|
data. If the function succeeds then the "name_out", "header" and "data"
|
||||||
|
arguments are populated with pointers to buffers containing the relevant
|
||||||
|
decoded data. The caller is responsible for freeing those buffers. It is
|
||||||
|
possible to construct a PEM file that results in 0 bytes of payload data.
|
||||||
|
In this case PEM_read_bio_ex() will return a failure code but will populate
|
||||||
|
the header argument with a pointer to a buffer that has already been freed.
|
||||||
|
If the caller also frees this buffer then a double free will occur. This
|
||||||
|
will most likely lead to a crash.
|
||||||
|
The functions PEM_read_bio() and PEM_read() are simple wrappers around
|
||||||
|
PEM_read_bio_ex() and therefore these functions are also directly affected.
|
||||||
|
These functions are also called indirectly by a number of other OpenSSL
|
||||||
|
functions including PEM_X509_INFO_read_bio_ex() and
|
||||||
|
SSL_CTX_use_serverinfo_file() which are also vulnerable. Some OpenSSL
|
||||||
|
internal uses of these functions are not vulnerable because the caller does
|
||||||
|
not free the header argument if PEM_read_bio_ex() returns a failure code.
|
||||||
|
([bsc#1207538, CVE-2022-4450])
|
||||||
|
* Fixed Timing Oracle in RSA Decryption.
|
||||||
|
A timing based side channel exists in the OpenSSL RSA Decryption
|
||||||
|
implementation which could be sufficient to recover a plaintext across
|
||||||
|
a network in a Bleichenbacher style attack. To achieve a successful
|
||||||
|
decryption an attacker would have to be able to send a very large number
|
||||||
|
of trial messages for decryption. The vulnerability affects all RSA padding
|
||||||
|
modes: PKCS#1 v1.5, RSA-OEAP and RSASVE.
|
||||||
|
([bsc#1207534, CVE-2022-4304])
|
||||||
|
* Fixed X.509 Name Constraints Read Buffer Overflow.
|
||||||
|
A read buffer overrun can be triggered in X.509 certificate verification,
|
||||||
|
specifically in name constraint checking. The read buffer overrun might
|
||||||
|
result in a crash which could lead to a denial of service attack.
|
||||||
|
In a TLS client, this can be triggered by connecting to a malicious
|
||||||
|
server. In a TLS server, this can be triggered if the server requests
|
||||||
|
client authentication and a malicious client connects.
|
||||||
|
([bsc#1207535, CVE-2022-4203])
|
||||||
|
* Fixed X.509 Policy Constraints Double Locking security issue.
|
||||||
|
If an X.509 certificate contains a malformed policy constraint and
|
||||||
|
policy processing is enabled, then a write lock will be taken twice
|
||||||
|
recursively. On some operating systems (most widely: Windows) this
|
||||||
|
results in a denial of service when the affected process hangs. Policy
|
||||||
|
processing being enabled on a publicly facing server is not considered
|
||||||
|
to be a common setup.
|
||||||
|
([CVE-2022-3996])
|
||||||
|
* Our provider implementations of `OSSL_FUNC_KEYMGMT_EXPORT` and
|
||||||
|
`OSSL_FUNC_KEYMGMT_GET_PARAMS` for EC and SM2 keys now honor
|
||||||
|
`OSSL_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT` as set (and
|
||||||
|
default to `POINT_CONVERSION_UNCOMPRESSED`) when exporting
|
||||||
|
`OSSL_PKEY_PARAM_PUB_KEY`, instead of unconditionally using
|
||||||
|
`POINT_CONVERSION_COMPRESSED` as in previous 3.x releases.
|
||||||
|
For symmetry, our implementation of `EVP_PKEY_ASN1_METHOD->export_to`
|
||||||
|
for legacy EC and SM2 keys is also changed similarly to honor the
|
||||||
|
equivalent conversion format flag as specified in the underlying
|
||||||
|
`EC_KEY` object being exported to a provider, when this function is
|
||||||
|
called through `EVP_PKEY_export()`.
|
||||||
|
* Removed openssl-3-Fix-double-locking-problem.patch,
|
||||||
|
contained in upstream.
|
||||||
|
* Rebased openssl-Add-support-for-PROFILE-SYSTEM-system-default-cipher.patch
|
||||||
|
* Update openssl.keyring with key
|
||||||
|
7953 AC1F BC3D C8B3 B292 393E D5E9 E43F 7DF9 EE8C (Richard Levitte)
|
||||||
|
* Thu Jan 5 2023 otto.hollmann@suse.com
|
||||||
|
- Update openssl.keyring:
|
||||||
|
pub rsa4096 2021-07-16 [SC] [expires: 2031-07-14]
|
||||||
|
A21FAB74B0088AA361152586B8EF1A6BA9DA2D5C
|
||||||
|
uid Tomáš Mráz <tm@t8m.info>
|
||||||
|
uid Tomáš Mráz <tomas@arleto.cz>
|
||||||
|
uid Tomáš Mráz <tomas@openssl.org>
|
||||||
|
* Wed Jan 4 2023 otto.hollmann@suse.com
|
||||||
|
- Update to version 3.0.7 in SLE15-SP5 [jsc#PED-544]
|
||||||
|
- Remove patches (already present in 3.0.7):
|
||||||
|
* openssl-3-CVE-2022-1343.patch
|
||||||
|
* openssl-CVE-2022-0778.patch
|
||||||
|
* openssl-CVE-2022-0778-tests.patch
|
||||||
|
* openssl-CVE-2022-1292.patch
|
||||||
|
* openssl-3-Fix-EC-ASM-flag-passing.patch
|
||||||
|
* openssl-update_expired_certificates.patch
|
||||||
|
* openssl-3-CVE-2022-3358.patch
|
||||||
|
* openssl-3-Fix-SHA-SHAKE-and-KECCAK-ASM-flag-passing.patch
|
||||||
|
* openssl-3-CVE-2022-3602_2.patch
|
||||||
|
* openssl-3-CVE-2022-3602_1.patch
|
||||||
|
* openssl-CVE-2022-2097.patch
|
||||||
|
* openssl-3-CVE-2022-1434.patch
|
||||||
|
* openssl-3-CVE-2022-1473.patch
|
||||||
|
* openssl-3-Fix-file-operations-in-c_rehash.patch
|
||||||
|
- Enable tests: test_req test_verify_store test_ca test_ssl_old
|
||||||
|
* Wed Dec 14 2022 otto.hollmann@suse.com
|
||||||
|
- Fix X.509 Policy Constraints Double Locking [bsc#1206374, CVE-2022-3996]
|
||||||
|
* Add patch: openssl-3-Fix-double-locking-problem.patch
|
||||||
|
* Tue Nov 1 2022 otto.hollmann@suse.com
|
||||||
|
- Update to 3.0.7: [bsc#1204714, CVE-2022-3602,CVE-2022-3786]
|
||||||
|
* Fixed two buffer overflows in punycode decoding functions.
|
||||||
|
A buffer overrun can be triggered in X.509 certificate verification,
|
||||||
|
specifically in name constraint checking. Note that this occurs after
|
||||||
|
certificate chain signature verification and requires either a CA to
|
||||||
|
have signed the malicious certificate or for the application to continue
|
||||||
|
certificate verification despite failure to construct a path to a trusted
|
||||||
|
issuer.
|
||||||
|
In a TLS client, this can be triggered by connecting to a malicious
|
||||||
|
server. In a TLS server, this can be triggered if the server requests
|
||||||
|
client authentication and a malicious client connects.
|
||||||
|
An attacker can craft a malicious email address to overflow
|
||||||
|
an arbitrary number of bytes containing the `.` character (decimal 46)
|
||||||
|
on the stack. This buffer overflow could result in a crash (causing a
|
||||||
|
denial of service).
|
||||||
|
([CVE-2022-3786])
|
||||||
|
An attacker can craft a malicious email address to overflow four
|
||||||
|
attacker-controlled bytes on the stack. This buffer overflow could
|
||||||
|
result in a crash (causing a denial of service) or potentially remote code
|
||||||
|
execution depending on stack layout for any given platform/compiler.
|
||||||
|
([CVE-2022-3602])
|
||||||
|
* Removed all references to invalid OSSL_PKEY_PARAM_RSA names for CRT
|
||||||
|
parameters in OpenSSL code.
|
||||||
|
Applications should not use the names OSSL_PKEY_PARAM_RSA_FACTOR,
|
||||||
|
OSSL_PKEY_PARAM_RSA_EXPONENT and OSSL_PKEY_PARAM_RSA_COEFFICIENT.
|
||||||
|
Use the numbered names such as OSSL_PKEY_PARAM_RSA_FACTOR1 instead.
|
||||||
|
Using these invalid names may cause algorithms to use slower methods
|
||||||
|
that ignore the CRT parameters.
|
||||||
|
* Fixed a regression introduced in 3.0.6 version raising errors on some stack
|
||||||
|
operations.
|
||||||
|
* Fixed a regression introduced in 3.0.6 version not refreshing the certificate
|
||||||
|
data to be signed before signing the certificate.
|
||||||
|
* Added RIPEMD160 to the default provider.
|
||||||
|
* Ensured that the key share group sent or accepted for the key exchange
|
||||||
|
is allowed for the protocol version.
|
||||||
|
* Tue Nov 1 2022 otto.hollmann@suse.com
|
||||||
|
- Update to 3.0.6: [bsc#1204226, CVE-2022-3358]
|
||||||
|
* OpenSSL supports creating a custom cipher via the legacy
|
||||||
|
EVP_CIPHER_meth_new() function and associated function calls. This function
|
||||||
|
was deprecated in OpenSSL 3.0 and application authors are instead encouraged
|
||||||
|
to use the new provider mechanism in order to implement custom ciphers.
|
||||||
|
* OpenSSL versions 3.0.0 to 3.0.5 incorrectly handle legacy custom ciphers
|
||||||
|
passed to the EVP_EncryptInit_ex2(), EVP_DecryptInit_ex2() and
|
||||||
|
EVP_CipherInit_ex2() functions (as well as other similarly named encryption
|
||||||
|
and decryption initialisation functions). Instead of using the custom cipher
|
||||||
|
directly it incorrectly tries to fetch an equivalent cipher from the
|
||||||
|
available providers. An equivalent cipher is found based on the NID passed
|
||||||
|
to EVP_CIPHER_meth_new(). This NID is supposed to represent the unique NID
|
||||||
|
for a given cipher. However it is possible for an application to incorrectly
|
||||||
|
pass NID_undef as this value in the call to EVP_CIPHER_meth_new(). When
|
||||||
|
NID_undef is used in this way the OpenSSL encryption/decryption
|
||||||
|
initialisation function will match the NULL cipher as being equivalent and
|
||||||
|
will fetch this from the available providers. This will succeed if the
|
||||||
|
default provider has been loaded (or if a third party provider has been
|
||||||
|
loaded that offers this cipher). Using the NULL cipher means that the
|
||||||
|
plaintext is emitted as the ciphertext.
|
||||||
|
* Applications are only affected by this issue if they call
|
||||||
|
EVP_CIPHER_meth_new() using NID_undef and subsequently use it in a call to
|
||||||
|
an encryption/decryption initialisation function. Applications that only use
|
||||||
|
SSL/TLS are not impacted by this issue. ([CVE-2022-3358])
|
||||||
|
* Fix LLVM vs Apple LLVM version numbering confusion that caused build
|
||||||
|
failures on MacOS 10.11
|
||||||
|
* Fixed the linux-mips64 Configure target which was missing the SIXTY_FOUR_BIT
|
||||||
|
bn_ops flag. This was causing heap corruption on that platform.
|
||||||
|
* Fix handling of a ticket key callback that returns 0 in TLSv1.3 to not send
|
||||||
|
a ticket
|
||||||
|
* Correctly handle a retransmitted ClientHello in DTLS
|
||||||
|
* Fixed detection of ktls support in cross-compile environment on Linux
|
||||||
|
* Fixed some regressions and test failures when running the 3.0.0 FIPS
|
||||||
|
provider against 3.0.x
|
||||||
|
* Fixed SSL_pending() and SSL_has_pending() with DTLS which were failing to
|
||||||
|
report correct results in some cases
|
||||||
|
* Fix UWP builds by defining VirtualLock
|
||||||
|
* For known safe primes use the minimum key length according to RFC 7919.
|
||||||
|
Longer private key sizes unnecessarily raise the cycles needed to compute
|
||||||
|
the shared secret without any increase of the real security. This fixes a
|
||||||
|
regression from 1.1.1 where these shorter keys were generated for the known
|
||||||
|
safe primes.
|
||||||
|
* Added the loongarch64 target
|
||||||
|
* Fixed EC ASM flag passing. Flags for ASM implementations of EC curves were
|
||||||
|
only passed to the FIPS provider and not to the default or legacy provider.
|
||||||
|
* Fixed reported performance degradation on aarch64. Restored the
|
||||||
|
implementation prior to commit 2621751 ("aes/asm/aesv8-armx.pl: avoid 32-bit
|
||||||
|
lane assignment in CTR mode") for 64bit targets only, since it is reportedly
|
||||||
|
2-17%% slower and the silicon errata only affects 32bit targets. The new
|
||||||
|
algorithm is still used for 32 bit targets.
|
||||||
|
* Added a missing header for memcmp that caused compilation failure on some
|
||||||
|
platforms
|
||||||
|
* Wed Sep 14 2022 brunopitrus@hotmail.com
|
||||||
|
- Do not make libopenssl3-32bit obsolete libopenssl1_1-32bit.
|
||||||
|
They are independent libraries and can be installed simultaneously.
|
||||||
|
* Thu Jul 21 2022 pmonreal@suse.com
|
||||||
|
- Update to 3.0.5:
|
||||||
|
* The OpenSSL 3.0.4 release introduced a serious bug in the RSA
|
||||||
|
implementation for X86_64 CPUs supporting the AVX512IFMA instructions.
|
||||||
|
This issue makes the RSA implementation with 2048 bit private keys
|
||||||
|
incorrect on such machines and memory corruption will happen during
|
||||||
|
the computation. As a consequence of the memory corruption an attacker
|
||||||
|
may be able to trigger a remote code execution on the machine performing
|
||||||
|
the computation.
|
||||||
|
SSL/TLS servers or other servers using 2048 bit RSA private keys running
|
||||||
|
on machines supporting AVX512IFMA instructions of the X86_64 architecture
|
||||||
|
are affected by this issue. [bsc#1201148, CVE-2022-2274]
|
||||||
|
* AES OCB mode for 32-bit x86 platforms using the AES-NI assembly optimised
|
||||||
|
implementation would not encrypt the entirety of the data under some
|
||||||
|
circumstances. This could reveal sixteen bytes of data that was
|
||||||
|
preexisting in the memory that wasn't written. In the special case of
|
||||||
|
"in place" encryption, sixteen bytes of the plaintext would be revealed.
|
||||||
|
Since OpenSSL does not support OCB based cipher suites for TLS and DTLS,
|
||||||
|
they are both unaffected. [bsc#1201099, CVE-2022-2097]
|
||||||
|
- Rebase patches:
|
||||||
|
* openssl-Add-support-for-PROFILE-SYSTEM-system-default-cipher.patch
|
||||||
|
* Mon Jul 18 2022 pmonreal@suse.com
|
||||||
|
- Update to 3.0.4: [bsc#1199166, bsc#1200550, CVE-2022-1292, CVE-2022-2068]
|
||||||
|
* In addition to the c_rehash shell command injection identified in
|
||||||
|
CVE-2022-1292, further bugs where the c_rehash script does not
|
||||||
|
properly sanitise shell metacharacters to prevent command injection
|
||||||
|
have been fixed.
|
||||||
|
When the CVE-2022-1292 was fixed it was not discovered that there
|
||||||
|
are other places in the script where the file names of certificates
|
||||||
|
being hashed were possibly passed to a command executed through the shell.
|
||||||
|
This script is distributed by some operating systems in a manner where
|
||||||
|
it is automatically executed. On such operating systems, an attacker
|
||||||
|
could execute arbitrary commands with the privileges of the script.
|
||||||
|
Use of the c_rehash script is considered obsolete and should be replaced
|
||||||
|
by the OpenSSL rehash command line tool.
|
||||||
|
* Case insensitive string comparison no longer uses locales.
|
||||||
|
It has instead been directly implemented.
|
||||||
|
* Mon Jul 18 2022 pmonreal@suse.com
|
||||||
|
- Update to 3.0.3:
|
||||||
|
* Case insensitive string comparison is reimplemented via new locale-agnostic
|
||||||
|
comparison functions OPENSSL_str[n]casecmp always using the POSIX locale for
|
||||||
|
comparison. The previous implementation had problems when the Turkish locale
|
||||||
|
was used.
|
||||||
|
* Fixed a bug in the c_rehash script which was not properly sanitising shell
|
||||||
|
metacharacters to prevent command injection. This script is distributed by
|
||||||
|
some operating systems in a manner where it is automatically executed. On
|
||||||
|
such operating systems, an attacker could execute arbitrary commands with the
|
||||||
|
privileges of the script.
|
||||||
|
Use of the c_rehash script is considered obsolete and should be replaced
|
||||||
|
by the OpenSSL rehash command line tool. [bsc#1199166, CVE-2022-1292]
|
||||||
|
* Fixed a bug in the function 'OCSP_basic_verify' that verifies the signer
|
||||||
|
certificate on an OCSP response. The bug caused the function in the case
|
||||||
|
where the (non-default) flag OCSP_NOCHECKS is used to return a postivie
|
||||||
|
response (meaning a successful verification) even in the case where the
|
||||||
|
response signing certificate fails to verify.
|
||||||
|
It is anticipated that most users of 'OCSP_basic_verify' will not use the
|
||||||
|
OCSP_NOCHECKS flag. In this case the 'OCSP_basic_verify' function will return
|
||||||
|
a negative value (indicating a fatal error) in the case of a certificate
|
||||||
|
verification failure. The normal expected return value in this case would be 0.
|
||||||
|
This issue also impacts the command line OpenSSL "ocsp" application. When
|
||||||
|
verifying an ocsp response with the "-no_cert_checks" option the command line
|
||||||
|
application will report that the verification is successful even though it
|
||||||
|
has in fact failed. In this case the incorrect successful response will also
|
||||||
|
be accompanied by error messages showing the failure and contradicting the
|
||||||
|
apparently successful result. [bsc#1199167, CVE-2022-1343]
|
||||||
|
* Fixed a bug where the RC4-MD5 ciphersuite incorrectly used the
|
||||||
|
AAD data as the MAC key. This made the MAC key trivially predictable.
|
||||||
|
An attacker could exploit this issue by performing a man-in-the-middle attack
|
||||||
|
to modify data being sent from one endpoint to an OpenSSL 3.0 recipient such
|
||||||
|
that the modified data would still pass the MAC integrity check.
|
||||||
|
Note that data sent from an OpenSSL 3.0 endpoint to a non-OpenSSL 3.0
|
||||||
|
endpoint will always be rejected by the recipient and the connection will
|
||||||
|
fail at that point. Many application protocols require data to be sent from
|
||||||
|
the client to the server first. Therefore, in such a case, only an OpenSSL
|
||||||
|
3.0 server would be impacted when talking to a non-OpenSSL 3.0 client.
|
||||||
|
[bsc#1199168, CVE-2022-1434]
|
||||||
|
* Fix a bug in the OPENSSL_LH_flush() function that breaks reuse of the memory
|
||||||
|
occuppied by the removed hash table entries.
|
||||||
|
This function is used when decoding certificates or keys. If a long lived
|
||||||
|
process periodically decodes certificates or keys its memory usage will
|
||||||
|
expand without bounds and the process might be terminated by the operating
|
||||||
|
system causing a denial of service. Also traversing the empty hash table
|
||||||
|
entries will take increasingly more time. Typically such long lived processes
|
||||||
|
might be TLS clients or TLS servers configured to accept client certificate
|
||||||
|
authentication. [bsc#1199169, CVE-2022-1473]
|
||||||
|
* The functions 'OPENSSL_LH_stats' and 'OPENSSL_LH_stats_bio' now only report
|
||||||
|
the 'num_items', 'num_nodes' and 'num_alloc_nodes' statistics. All other
|
||||||
|
statistics are no longer supported. For compatibility, these statistics are
|
||||||
|
still listed in the output but are now always reported as zero.
|
||||||
|
* Thu Jun 2 2022 jsikes@suse.com
|
||||||
|
- Added openssl-update_expired_certificates.patch
|
||||||
|
* Openssl failed tests because of expired certificates.
|
||||||
|
* bsc#1185637
|
||||||
|
* Sat Mar 19 2022 pmonreal@suse.com
|
||||||
|
- Enable zlib compression support [bsc#1195149]
|
||||||
|
* Fri Mar 18 2022 pmonreal@suse.com
|
||||||
|
- Add crypto-policies support.
|
||||||
|
* Fix some tests that couldn't find the openssl3.cnf location
|
||||||
|
* Rebase patch:
|
||||||
|
openssl-Add-support-for-PROFILE-SYSTEM-system-default-cipher.patch
|
||||||
|
* Tue Mar 15 2022 pmonreal@suse.com
|
||||||
|
- Update to 3.0.2: [bsc#1196877, CVE-2022-0778]
|
||||||
|
* Security fix [CVE-2022-0778]: Infinite loop for non-prime moduli
|
||||||
|
in BN_mod_sqrt() reachable when parsing certificates.
|
||||||
|
* Add ciphersuites based on DHE_PSK (RFC 4279) and ECDHE_PSK
|
||||||
|
(RFC 5489) to the list of ciphersuites providing Perfect Forward
|
||||||
|
Secrecy as required by SECLEVEL >= 3.
|
||||||
|
* Made the AES constant time code for no-asm configurations
|
||||||
|
optional due to the resulting 95%% performance degradation.
|
||||||
|
The AES constant time code can be enabled, for no assembly
|
||||||
|
builds, with: ./config no-asm -DOPENSSL_AES_CONST_TIME
|
||||||
|
* Fixed PEM_write_bio_PKCS8PrivateKey() to make it possible to
|
||||||
|
use empty passphrase strings.
|
||||||
|
* The negative return value handling of the certificate
|
||||||
|
verification callback was reverted. The replacement is to set
|
||||||
|
the verification retry state with the SSL_set_retry_verify()
|
||||||
|
function.
|
||||||
|
* Rebase openssl-use-versioned-config.patch
|
||||||
|
* Tue Feb 22 2022 pmonreal@suse.com
|
||||||
|
- Keep CA_default and tsa_config1 default paths in openssl3.cnf
|
||||||
|
- Rebase patches:
|
||||||
|
* openssl-Override-default-paths-for-the-CA-directory-tree.patch
|
||||||
|
* openssl-use-versioned-config.patch
|
||||||
|
* Tue Feb 1 2022 danilo.spinella@suse.com
|
||||||
|
- Fix conflict with openssl and libressl
|
||||||
|
* Fri Jan 28 2022 simonf.lees@suse.com
|
||||||
|
- Remove /etc/pki/CA from the [jsc#SLE-17856, jsc#SLE-19044]
|
||||||
|
openssl-Override-default-paths-for-the-CA-directory-tree.patch
|
||||||
|
- Remove unused patches
|
||||||
|
* Fri Jan 21 2022 simonf.lees@suse.com
|
||||||
|
- Ship openssl-3 as binary names [jsc#SLE-17856, jsc#SLE-19044]
|
||||||
|
- Use openssl3.cnf
|
||||||
|
* openssl-use-versioned-config.patch
|
||||||
|
* fix-config-in-tests.patch
|
||||||
|
- Support crypto policies
|
||||||
|
* openssl-Add-support-for-PROFILE-SYSTEM-system-default-cipher.patch
|
||||||
|
* openssl-Override-default-paths-for-the-CA-directory-tree.patch
|
||||||
|
- Remove obsolets, not ready to force an upgrade yet
|
||||||
|
* Thu Jan 13 2022 pmonreal@suse.com
|
||||||
|
- Update to 3.0.1: [bsc#1193740, CVE-2021-4044]
|
||||||
|
* RNDR and RNDRRS support in provider functions to provide
|
||||||
|
random number generation for Arm CPUs (aarch64).
|
||||||
|
* s_client and s_server apps now explicitly say when the TLS
|
||||||
|
version does not include the renegotiation mechanism. This
|
||||||
|
avoids confusion between that scenario versus when the TLS
|
||||||
|
version includes secure renegotiation but the peer lacks
|
||||||
|
support for it.
|
||||||
|
* The default SSL/TLS security level has been changed from 1 to 2.
|
||||||
|
RSA, DSA and DH keys of 1024 bits and above and less than 2048
|
||||||
|
bits and ECC keys of 160 bits and above and less than 224 bits
|
||||||
|
were previously accepted by default but are now no longer
|
||||||
|
allowed. By default TLS compression was already disabled in
|
||||||
|
previous OpenSSL versions. At security level 2 it cannot be
|
||||||
|
enabled.
|
||||||
|
* The SSL_CTX_set_cipher_list family functions now accept
|
||||||
|
ciphers using their IANA standard names.
|
||||||
|
* The PVK key derivation function has been moved from
|
||||||
|
b2i_PVK_bio_ex() into the legacy crypto provider as an
|
||||||
|
EVP_KDF. Applications requiring this KDF will need to load
|
||||||
|
the legacy crypto provider.
|
||||||
|
* The various OBJ_* functions have been made thread safe.
|
||||||
|
* CCM8 cipher suites in TLS have been downgraded to security
|
||||||
|
level zero because they use a short authentication tag which
|
||||||
|
lowers their strength.
|
||||||
|
* Subject or issuer names in X.509 objects are now displayed
|
||||||
|
as UTF-8 strings by default.
|
||||||
|
* Parallel dual-prime 1536/2048-bit modular exponentiation
|
||||||
|
for AVX512_IFMA capable processors.
|
||||||
|
* Tue Sep 7 2021 pmonreal@suse.com
|
||||||
|
- Update to 3.0.0
|
||||||
|
* The full list of changes since version 1.1.1 can be found in:
|
||||||
|
https://github.com/openssl/openssl/blob/master/CHANGES.md#openssl-30
|
||||||
|
* OpenSSL 3.0 wiki: https://wiki.openssl.org/index.php/OpenSSL_3.0
|
||||||
|
* The Migration guide:
|
||||||
|
https://github.com/openssl/openssl/blob/master/doc/man7/migration_guide.pod
|
||||||
|
* Thu Jul 29 2021 pmonreal@suse.com
|
||||||
|
- Update to 3.0.0 Beta 2
|
||||||
|
* The ERR_GET_FUNC() function was removed. With the loss of
|
||||||
|
meaningful function codes, this function can only cause problems
|
||||||
|
for calling applications.
|
||||||
|
* While a callback function set via 'SSL_CTX_set_cert_verify_callback()'
|
||||||
|
is not allowed to return a value > 1, this is no more taken as
|
||||||
|
failure.
|
||||||
|
* Deprecated the obsolete X9.31 RSA key generation related
|
||||||
|
functions BN_X931_generate_Xpq(), BN_X931_derive_prime_ex(),
|
||||||
|
and BN_X931_generate_prime_ex().
|
||||||
|
- Remove openssl-ppc64-fix-build.patch fixed upstream
|
||||||
|
* Mon Jul 5 2021 pmonreal@suse.com
|
||||||
|
- Update to 3.0.0 Beta 1
|
||||||
|
* Add a configurable flag to output date formats as ISO 8601.
|
||||||
|
Does not change the default date format.
|
||||||
|
* Version of MSVC earlier than 1300 could get link warnings, which
|
||||||
|
could be suppressed if the undocumented -DI_CAN_LIVE_WITH_LNK4049
|
||||||
|
was set. Support for this flag has been removed.
|
||||||
|
* Rework and make DEBUG macros consistent. Remove unused
|
||||||
|
- DCONF_DEBUG, -DBN_CTX_DEBUG, and REF_PRINT. Add a new tracing
|
||||||
|
category and use it for printing reference counts. Rename
|
||||||
|
- DDEBUG_UNUSED to -DUNUSED_RESULT_DEBUG. Fix BN_DEBUG_RAND so it
|
||||||
|
compiles and, when set, force DEBUG_RAND to be set also. Rename
|
||||||
|
engine_debug_ref to be ENGINE_REF_PRINT also for consistency.
|
||||||
|
* The public definitions of conf_method_st and conf_st have been
|
||||||
|
deprecated. They will be made opaque in a future release.
|
||||||
|
* Many functions in the EVP_ namespace that are getters of values
|
||||||
|
from implementations or contexts were renamed to include get or
|
||||||
|
get0 in their names. Old names are provided as macro aliases for
|
||||||
|
compatibility and are not deprecated.
|
||||||
|
* PKCS#5 PBKDF1 key derivation has been moved from PKCS5_PBE_keyivgen()
|
||||||
|
into the legacy crypto provider as an EVP_KDF. Applications requiring
|
||||||
|
this KDF will need to load the legacy crypto provider. This includes
|
||||||
|
these PBE algorithms which use this KDF:
|
||||||
|
- NID_pbeWithMD2AndDES_CBC - NID_pbeWithMD5AndDES_CBC
|
||||||
|
- NID_pbeWithSHA1AndRC2_CBC - NID_pbeWithMD2AndRC2_CBC
|
||||||
|
- NID_pbeWithMD5AndRC2_CBC - NID_pbeWithSHA1AndDES_CBC
|
||||||
|
* Deprecated obsolete BIO_set_callback(), BIO_get_callback(), and
|
||||||
|
BIO_debug_callback() functions.
|
||||||
|
- Fix build on ppc and ppc64
|
||||||
|
* Add openssl-ppc64-fix-build.patch
|
||||||
|
* See https://github.com/openssl/openssl/issues/15923
|
||||||
|
* Fri Jun 11 2021 pmonreal@suse.com
|
||||||
|
- Update to 3.0.0 Alpha 17
|
||||||
|
* Added migration guide to man7
|
||||||
|
* Implemented support for fully "pluggable" TLSv1.3 groups
|
||||||
|
* Added convenience functions for generating asymmetric key pairs.
|
||||||
|
* Added a proper HTTP client supporting GET with optional redirection,
|
||||||
|
POST, arbitrary request and response content types, TLS, persistent
|
||||||
|
connections, connections via HTTP(s) proxies, connections and
|
||||||
|
exchange via user-defined BIOs (allowing implicit connections), and
|
||||||
|
timeout checks.
|
||||||
|
* Mon May 10 2021 jsikes@suse.com
|
||||||
|
- Update to 3.0.0. Alpha 16
|
||||||
|
* Mark pop/clear error stack in der2key_decode_p8
|
||||||
|
* Sat May 1 2021 jsikes@suse.com
|
||||||
|
- Update to 3.0.0 Alpha 15
|
||||||
|
* The default manual page suffix ($MANSUFFIX) has been changed to "ossl"
|
||||||
|
* Added support for Kernel TLS (KTLS). In order to use KTLS, support for it
|
||||||
|
must be compiled in using the "enable-ktls" compile time option. It must
|
||||||
|
also be enabled at run time using the SSL_OP_ENABLE_KTLS option.
|
||||||
|
* The error return values from some control calls (ctrl) have changed.
|
||||||
|
One significant change is that controls which used to return -2 for
|
||||||
|
invalid inputs, now return -1 indicating a generic error condition instead.
|
||||||
|
* Removed EVP_PKEY_set_alias_type().
|
||||||
|
* All of these low level RSA functions have been deprecated without
|
||||||
|
replacement:
|
||||||
|
RSA_blinding_off, RSA_blinding_on, RSA_clear_flags, RSA_get_version,
|
||||||
|
RSAPrivateKey_dup, RSAPublicKey_dup, RSA_set_flags, RSA_setup_blinding and
|
||||||
|
RSA_test_flags.
|
||||||
|
* All of these RSA flags have been deprecated without replacement:
|
||||||
|
RSA_FLAG_BLINDING, RSA_FLAG_CACHE_PRIVATE, RSA_FLAG_CACHE_PUBLIC,
|
||||||
|
RSA_FLAG_EXT_PKEY, RSA_FLAG_NO_BLINDING, RSA_FLAG_THREAD_SAFE and
|
||||||
|
RSA_METHOD_FLAG_NO_CHECK.
|
||||||
|
* These low level DH functions have been deprecated without replacement:
|
||||||
|
DH_clear_flags, DH_get_1024_160, DH_get_2048_224, DH_get_2048_256,
|
||||||
|
DH_set_flags and DH_test_flags.
|
||||||
|
The DH_FLAG_CACHE_MONT_P flag has been deprecated without replacement.
|
||||||
|
The DH_FLAG_TYPE_DH and DH_FLAG_TYPE_DHX have been deprecated. Use
|
||||||
|
EVP_PKEY_is_a() to determine the type of a key. There is no replacement for
|
||||||
|
setting these flags.
|
||||||
|
* These low level DSA functions have been deprecated without replacement:
|
||||||
|
DSA_clear_flags, DSA_dup_DH, DSAparams_dup, DSA_set_flags and
|
||||||
|
DSA_test_flags.
|
||||||
|
* The DSA_FLAG_CACHE_MONT_P flag has been deprecated without replacement.
|
||||||
|
* Reworked the treatment of EC EVP_PKEYs with the SM2 curve to
|
||||||
|
automatically become EVP_PKEY_SM2 rather than EVP_PKEY_EC. This is a breaking
|
||||||
|
change from previous OpenSSL versions.
|
||||||
|
Unlike in previous OpenSSL versions, this means that applications must not
|
||||||
|
call 'EVP_PKEY_set_alias_type(pkey, EVP_PKEY_SM2)' to get SM2 computations.
|
||||||
|
The 'EVP_PKEY_set_alias_type' function has now been removed.
|
||||||
|
* Parameter and key generation is also reworked to make it possible
|
||||||
|
to generate EVP_PKEY_SM2 parameters and keys. Applications must now generate
|
||||||
|
SM2 keys directly and must not create an EVP_PKEY_EC key first.
|
||||||
|
* Mon Apr 19 2021 pmonreal@suse.com
|
||||||
|
- Update to 3.0.0 Alpha 14
|
||||||
|
* A public key check is now performed during EVP_PKEY_derive_set_peer().
|
||||||
|
Previously DH was internally doing this during EVP_PKEY_derive().
|
||||||
|
* The EVP_PKEY_CTRL_PKCS7_ENCRYPT, EVP_PKEY_CTRL_PKCS7_DECRYPT,
|
||||||
|
EVP_PKEY_CTRL_PKCS7_SIGN, EVP_PKEY_CTRL_CMS_ENCRYPT,
|
||||||
|
EVP_PKEY_CTRL_CMS_DECRYPT, and EVP_PKEY_CTRL_CMS_SIGN control operations
|
||||||
|
are deprecated. They are not invoked by the OpenSSL library anymore and
|
||||||
|
are replaced by direct checks of the key operation against the key type
|
||||||
|
when the operation is initialized.
|
||||||
|
* The EVP_PKEY_public_check() and EVP_PKEY_param_check() functions now work for
|
||||||
|
more key types including RSA, DSA, ED25519, X25519, ED448 and X448.
|
||||||
|
Previously (in 1.1.1) they would return -2. For key types that do not have
|
||||||
|
parameters then EVP_PKEY_param_check() will always return 1.
|
||||||
|
* The output from numerous "printing" functions such as X509_signature_print(),
|
||||||
|
X509_print_ex(), X509_CRL_print_ex(), and other similar functions has been
|
||||||
|
amended such that there may be cosmetic differences between the output
|
||||||
|
observed in 1.1.1 and 3.0. This also applies to the "-text" output from the
|
||||||
|
x509 and crl applications.
|
||||||
|
* Improved adherence to Enhanced Security Services (ESS, RFC 2634 and RFC 5035)
|
||||||
|
for the TSP and CMS Advanced Electronic Signatures (CAdES) implementations.
|
||||||
|
As required by RFC 5035 check both ESSCertID and ESSCertIDv2 if both present.
|
||||||
|
Correct the semantics of checking the validation chain in case ESSCertID{,v2}
|
||||||
|
contains more than one certificate identifier: This means that all
|
||||||
|
certificates referenced there MUST be part of the validation chain.
|
||||||
|
* Parallel dual-prime 1024-bit modular exponentiation for AVX512_IFMA
|
||||||
|
capable processors.
|
||||||
|
* Added the AuthEnvelopedData content type structure (RFC 5083) with AES-GCM
|
||||||
|
parameter (RFC 5084) for the Cryptographic Message Syntax (CMS). Its purpose
|
||||||
|
is to support encryption and decryption of a digital envelope that is both
|
||||||
|
authenticated and encrypted using AES GCM mode.
|
||||||
|
* Wed Apr 14 2021 pmonreal@suse.com
|
||||||
|
- Update to 3.0.0 Alpha 13
|
||||||
|
* A public key check is now performed during EVP_PKEY_derive_set_peer().
|
||||||
|
Previously DH was internally doing this during EVP_PKEY_derive().
|
||||||
|
To disable this check use EVP_PKEY_derive_set_peer_ex(dh, peer, 0). This
|
||||||
|
may mean that an error can occur in EVP_PKEY_derive_set_peer() rather than
|
||||||
|
during EVP_PKEY_derive().
|
||||||
|
* The EVP_PKEY_CTRL_PKCS7_ENCRYPT, EVP_PKEY_CTRL_PKCS7_DECRYPT,
|
||||||
|
EVP_PKEY_CTRL_PKCS7_SIGN, EVP_PKEY_CTRL_CMS_ENCRYPT,
|
||||||
|
EVP_PKEY_CTRL_CMS_DECRYPT, and EVP_PKEY_CTRL_CMS_SIGN control operations
|
||||||
|
are deprecated. They are not invoked by the OpenSSL library anymore and
|
||||||
|
are replaced by direct checks of the key operation against the key type
|
||||||
|
when the operation is initialized.
|
||||||
|
* The EVP_PKEY_public_check() and EVP_PKEY_param_check() functions now work for
|
||||||
|
more key types including RSA, DSA, ED25519, X25519, ED448 and X448.
|
||||||
|
Previously (in 1.1.1) they would return -2. For key types that do not have
|
||||||
|
parameters then EVP_PKEY_param_check() will always return 1.
|
||||||
|
* The output from numerous "printing" functions such as X509_signature_print(),
|
||||||
|
X509_print_ex(), X509_CRL_print_ex(), and other similar functions has been
|
||||||
|
amended such that there may be cosmetic differences between the output
|
||||||
|
observed in 1.1.1 and 3.0. This also applies to the "-text" output from the
|
||||||
|
x509 and crl applications.
|
||||||
|
* Improved adherence to Enhanced Security Services (ESS, RFC 2634 and RFC 5035)
|
||||||
|
for the TSP and CMS Advanced Electronic Signatures (CAdES) implementations.
|
||||||
|
As required by RFC 5035 check both ESSCertID and ESSCertIDv2 if both present.
|
||||||
|
Correct the semantics of checking the validation chain in case ESSCertID{,v2}
|
||||||
|
contains more than one certificate identifier: This means that all
|
||||||
|
certificates referenced there MUST be part of the validation chain.
|
||||||
|
* Parallel dual-prime 1024-bit modular exponentiation for AVX512_IFMA
|
||||||
|
capable processors.
|
||||||
|
* Added the AuthEnvelopedData content type structure (RFC 5083) with AES-GCM
|
||||||
|
parameter (RFC 5084) for the Cryptographic Message Syntax (CMS). Its purpose
|
||||||
|
is to support encryption and decryption of a digital envelope that is both
|
||||||
|
authenticated and encrypted using AES GCM mode.
|
||||||
|
* Fri Feb 19 2021 pmonreal@suse.com
|
||||||
|
- Update to 3.0.0 Alpha 12
|
||||||
|
* The SRP APIs have been deprecated. The old APIs do not work via
|
||||||
|
providers, and there is no EVP interface to them. Unfortunately
|
||||||
|
there is no replacement for these APIs at this time.
|
||||||
|
* Add a compile time option to prevent the caching of provider
|
||||||
|
fetched algorithms. This is enabled by including the
|
||||||
|
no-cached-fetch option at configuration time.
|
||||||
|
* Combining the Configure options no-ec and no-dh no longer
|
||||||
|
disables TLSv1.3. Typically if OpenSSL has no EC or DH algorithms
|
||||||
|
then it cannot support connections with TLSv1.3. However OpenSSL
|
||||||
|
now supports "pluggable" groups through providers.
|
||||||
|
* The undocumented function X509_certificate_type() has been
|
||||||
|
deprecated; applications can use X509_get0_pubkey() and
|
||||||
|
X509_get0_signature() to get the same information.
|
||||||
|
* Deprecated the obsolete BN_pseudo_rand() and BN_pseudo_rand_range()
|
||||||
|
functions. They are identical to BN_rand() and BN_rand_range()
|
||||||
|
respectively.
|
||||||
|
* The default key generation method for the regular 2-prime RSA keys
|
||||||
|
was changed to the FIPS 186-4 B.3.6 method (Generation of Probable
|
||||||
|
Primes with Conditions Based on Auxiliary Probable Primes). This
|
||||||
|
method is slower than the original method.
|
||||||
|
* Deprecated the BN_is_prime_ex() and BN_is_prime_fasttest_ex()
|
||||||
|
functions. They are replaced with the BN_check_prime() function
|
||||||
|
that avoids possible misuse and always uses at least 64 rounds of
|
||||||
|
the Miller-Rabin primality test.
|
||||||
|
* Deprecated EVP_MD_CTX_set_update_fn() and EVP_MD_CTX_update_fn()
|
||||||
|
as they are not useful with non-deprecated functions.
|
||||||
|
* Fri Feb 12 2021 pmonreal@suse.com
|
||||||
|
- Update to 3.0.0 Alpha 11
|
||||||
|
* Deprecated the obsolete X9.31 RSA key generation related
|
||||||
|
functions BN_X931_generate_Xpq(), BN_X931_derive_prime_ex(),
|
||||||
|
and BN_X931_generate_prime_ex().
|
||||||
|
* Deprecated the type OCSP_REQ_CTX and the functions OCSP_REQ_CTX_*().
|
||||||
|
These were used to collect all necessary data to form a HTTP
|
||||||
|
request, and to perform the HTTP transfer with that request.
|
||||||
|
With OpenSSL 3.0, the type is OSSL_HTTP_REQ_CTX, and the
|
||||||
|
deprecated functions are replaced with OSSL_HTTP_REQ_CTX_*().
|
||||||
|
* Validation of SM2 keys has been separated from the validation of
|
||||||
|
regular EC keys, allowing to improve the SM2 validation process
|
||||||
|
to reject loaded private keys that are not conforming to the SM2
|
||||||
|
ISO standard. In particular, a private scalar 'k' outside the
|
||||||
|
range '1 <= k < n-1' is now correctly rejected.
|
||||||
|
* Behavior of the 'pkey' app is changed, when using the '-check'
|
||||||
|
or '-pubcheck' switches: a validation failure triggers an early
|
||||||
|
exit, returning a failure exit status to the parent process.
|
||||||
|
* Changed behavior of SSL_CTX_set_ciphersuites() and
|
||||||
|
SSL_set_ciphersuites() to ignore unknown ciphers.
|
||||||
|
* All of the low level EC_KEY functions have been deprecated.
|
||||||
|
* Functions that read and write EC_KEY objects and that assign or
|
||||||
|
obtain EC_KEY objects from an EVP_PKEY are also deprecated.
|
||||||
|
* Added the '-copy_extensions' option to the 'x509' command for use
|
||||||
|
with '-req' and '-x509toreq'. When given with the 'copy' or
|
||||||
|
'copyall' argument, all extensions in the request are copied to
|
||||||
|
the certificate or vice versa.
|
||||||
|
* Added the '-copy_extensions' option to the 'req' command for use
|
||||||
|
with '-x509'. When given with the 'copy' or 'copyall' argument,
|
||||||
|
all extensions in the certification request are copied to the
|
||||||
|
certificate.
|
||||||
|
* The 'x509', 'req', and 'ca' commands now make sure that X.509v3
|
||||||
|
certificates they generate are by default RFC 5280 compliant in
|
||||||
|
the following sense: There is a subjectKeyIdentifier extension
|
||||||
|
with a hash value of the public key and for not self-signed certs
|
||||||
|
there is an authorityKeyIdentifier extension with a keyIdentifier
|
||||||
|
field or issuer information identifying the signing key. This is
|
||||||
|
done unless some configuration overrides the new default behavior,
|
||||||
|
such as 'subjectKeyIdentifier = none' and 'authorityKeyIdentifier
|
||||||
|
= none'.
|
||||||
|
* Sat Jan 9 2021 pmonreal@suse.com
|
||||||
|
- Update to 3.0.0 Alpha 10 (CVE-2020-1971)
|
||||||
|
* See full changelog: www.openssl.org/news/changelog.html
|
||||||
|
* Fixed NULL pointer deref in the GENERAL_NAME_cmp function
|
||||||
|
This function could crash if both GENERAL_NAMEs contain an
|
||||||
|
EDIPARTYNAME. If an attacker can control both items being
|
||||||
|
compared then this could lead to a possible denial of service
|
||||||
|
attack. OpenSSL itself uses the GENERAL_NAME_cmp function for
|
||||||
|
two purposes:
|
||||||
|
1) Comparing CRL distribution point names between an available
|
||||||
|
CRL and a CRL distribution point embedded in an X509 certificate
|
||||||
|
2) When verifying that a timestamp response token signer matches
|
||||||
|
the timestamp authority name (exposed via the API functions
|
||||||
|
TS_RESP_verify_response and TS_RESP_verify_token)
|
||||||
|
* The -cipher-commands and -digest-commands options of the
|
||||||
|
command line utility list has been deprecated. Instead use
|
||||||
|
the -cipher-algorithms and -digest-algorithms options.
|
||||||
|
* Additionally functions that read and write DH objects such as
|
||||||
|
d2i_DHparams, i2d_DHparams, PEM_read_DHparam, PEM_write_DHparams
|
||||||
|
and other similar functions have also been deprecated.
|
||||||
|
Applications should instead use the OSSL_DECODER and OSSL_ENCODER
|
||||||
|
APIs to read and write DH files.
|
||||||
|
* Thu Dec 17 2020 pmonreal@suse.com
|
||||||
|
- Update to 3.0.0 Alpha 9
|
||||||
|
* See also https://www.openssl.org/news/changelog.html
|
||||||
|
* Deprecated all the libcrypto and libssl error string loading
|
||||||
|
functions. Calling these functions is not necessary since
|
||||||
|
OpenSSL 1.1.0, as OpenSSL now loads error strings automatically.
|
||||||
|
* The functions SSL_CTX_set_tmp_dh_callback and SSL_set_tmp_dh_callback, as
|
||||||
|
well as the macros SSL_CTX_set_tmp_dh() and SSL_set_tmp_dh() have been
|
||||||
|
deprecated. These are used to set the Diffie-Hellman (DH) parameters that
|
||||||
|
are to be used by servers requiring ephemeral DH keys. Instead applications
|
||||||
|
should consider using the built-in DH parameters that are available by
|
||||||
|
calling SSL_CTX_set_dh_auto() or SSL_set_dh_auto().
|
||||||
|
* The -crypt option to the passwd command line tool has been removed.
|
||||||
|
* The -C option to the x509, dhparam, dsaparam, and ecparam commands
|
||||||
|
has been removed.
|
||||||
|
* Added several checks to X509_verify_cert() according to requirements in
|
||||||
|
RFC 5280 in case 'X509_V_FLAG_X509_STRICT' is set (which may be done by
|
||||||
|
using the CLI option '-x509_strict'):
|
||||||
|
- The basicConstraints of CA certificates must be marked critical.
|
||||||
|
- CA certificates must explicitly include the keyUsage extension.
|
||||||
|
- If a pathlenConstraint is given the key usage keyCertSign must be allowed.
|
||||||
|
- The issuer name of any certificate must not be empty.
|
||||||
|
- The subject name of CA certs, certs with keyUsage crlSign,
|
||||||
|
and certs without subjectAlternativeName must not be empty.
|
||||||
|
- If a subjectAlternativeName extension is given it must not be empty.
|
||||||
|
- The signatureAlgorithm field and the cert signature must be consistent.
|
||||||
|
- Any given authorityKeyIdentifier and any given subjectKeyIdentifier
|
||||||
|
must not be marked critical.
|
||||||
|
- The authorityKeyIdentifier must be given for X.509v3 certs
|
||||||
|
unless they are self-signed.
|
||||||
|
- The subjectKeyIdentifier must be given for all X.509v3 CA certs.
|
||||||
|
* Certificate verification using X509_verify_cert() meanwhile rejects EC keys
|
||||||
|
with explicit curve parameters (specifiedCurve) as required by RFC 5480.
|
||||||
|
* Thu Nov 5 2020 pmonreal@suse.com
|
||||||
|
- Update to 3.0.0 Alpha 8
|
||||||
|
* Add support for AES Key Wrap inverse ciphers to the EVP layer.
|
||||||
|
The algorithms are: "AES-128-WRAP-INV", "AES-192-WRAP-INV",
|
||||||
|
"AES-256-WRAP-INV", "AES-128-WRAP-PAD-INV", "AES-192-WRAP-PAD-INV"
|
||||||
|
and "AES-256-WRAP-PAD-INV". The inverse ciphers use AES decryption
|
||||||
|
for wrapping, and AES encryption for unwrapping.
|
||||||
|
* Deprecated EVP_PKEY_set1_tls_encodedpoint() and
|
||||||
|
EVP_PKEY_get1_tls_encodedpoint(). These functions were previously
|
||||||
|
used by libssl to set or get an encoded public key in/from an
|
||||||
|
EVP_PKEY object. With OpenSSL 3.0 these are replaced by the more
|
||||||
|
generic functions EVP_PKEY_set1_encoded_public_key() and
|
||||||
|
EVP_PKEY_get1_encoded_public_key(). The old versions have been
|
||||||
|
converted to deprecated macros that just call the new functions.
|
||||||
|
* The security callback, which can be customised by application
|
||||||
|
code, supports the security operation SSL_SECOP_TMP_DH. This is
|
||||||
|
defined to take an EVP_PKEY in the "other" parameter. In most
|
||||||
|
places this is what is passed. All these places occur server side.
|
||||||
|
However there was one client side call of this security operation
|
||||||
|
and it passed a DH object instead. This is incorrect according to
|
||||||
|
the definition of SSL_SECOP_TMP_DH, and is inconsistent with all
|
||||||
|
of the other locations. Therefore this client side call has been
|
||||||
|
changed to pass an EVP_PKEY instead.
|
||||||
|
* Added new option for 'openssl list', '-providers', which will
|
||||||
|
display the list of loaded providers, their names, version and
|
||||||
|
status. It optionally displays their gettable parameters.
|
||||||
|
* Deprecated pthread fork support methods. These were unused so no
|
||||||
|
replacement is required. OPENSSL_fork_prepare(),
|
||||||
|
OPENSSL_fork_parent() and OPENSSL_fork_child().
|
||||||
|
- Remove openssl-AES_XTS.patch fixed upstream
|
||||||
|
* Fri Oct 16 2020 pmonreal@suse.com
|
||||||
|
- Fix build on ppc* architectures
|
||||||
|
* Fix tests failing: 30-test_acvp.t and 30-test_evp.t
|
||||||
|
* https://github.com/openssl/openssl/pull/13133
|
||||||
|
- Add openssl-AES_XTS.patch for ppc64, ppc64le and aarch64
|
||||||
|
* Fri Oct 16 2020 pmonreal@suse.com
|
||||||
|
- Re-enable test 81-test_cmp_cli.t fixed upstream
|
||||||
|
* Thu Oct 15 2020 pmonreal@suse.com
|
||||||
|
- Update to 3.0.0 Alpha 7
|
||||||
|
* Add PKCS7_get_octet_string() and PKCS7_type_is_other() to the public
|
||||||
|
interface. Their functionality remains unchanged.
|
||||||
|
* Deprecated EVP_PKEY_set_alias_type(). This function was previously
|
||||||
|
needed as a workaround to recognise SM2 keys. With OpenSSL 3.0, this key
|
||||||
|
type is internally recognised so the workaround is no longer needed.
|
||||||
|
* Deprecated EVP_PKEY_CTX_set_rsa_keygen_pubexp() & introduced
|
||||||
|
EVP_PKEY_CTX_set1_rsa_keygen_pubexp(), which is now preferred.
|
||||||
|
* Changed all "STACK" functions to be macros instead of inline functions.
|
||||||
|
Macro parameters are still checked for type safety at compile time via
|
||||||
|
helper inline functions.
|
||||||
|
* Remove the RAND_DRBG API:
|
||||||
|
The RAND_DRBG API did not fit well into the new provider concept as
|
||||||
|
implemented by EVP_RAND and EVP_RAND_CTX. The main reason is that the
|
||||||
|
RAND_DRBG API is a mixture of 'front end' and 'back end' API calls
|
||||||
|
and some of its API calls are rather low-level. This holds in particular
|
||||||
|
for the callback mechanism (RAND_DRBG_set_callbacks()).
|
||||||
|
Adding a compatibility layer to continue supporting the RAND_DRBG API as
|
||||||
|
a legacy API for a regular deprecation period turned out to come at the
|
||||||
|
price of complicating the new provider API unnecessarily. Since the
|
||||||
|
RAND_DRBG API exists only since version 1.1.1, it was decided by the OMC
|
||||||
|
to drop it entirely.
|
||||||
|
* Added the options '-crl_lastupdate' and '-crl_nextupdate' to 'openssl ca',
|
||||||
|
allowing the 'lastUpdate' and 'nextUpdate' fields in the generated CRL to
|
||||||
|
be set explicitly.
|
||||||
|
* 'PKCS12_parse' now maintains the order of the parsed certificates
|
||||||
|
when outputting them via '*ca' (rather than reversing it).
|
||||||
|
- Update openssl-DEFAULT_SUSE_cipher.patch
|
||||||
|
* Fri Aug 7 2020 callumjfarmer13@gmail.com
|
||||||
|
- Removed 0001-Fix-typo-for-SSL_get_peer_certificate.patch:
|
||||||
|
contained in upstream.
|
||||||
|
- Update to 3.0.0 Alpha 6
|
||||||
|
* Added util/check-format.pl for checking adherence to the coding guidelines.
|
||||||
|
* Allow SSL_set1_host() and SSL_add1_host() to take IP literal addresses
|
||||||
|
as well as actual hostnames.
|
||||||
|
* The 'MinProtocol' and 'MaxProtocol' configuration commands now silently
|
||||||
|
ignore TLS protocol version bounds when configuring DTLS-based contexts, and
|
||||||
|
conversely, silently ignore DTLS protocol version bounds when configuring
|
||||||
|
TLS-based contexts. The commands can be repeated to set bounds of both
|
||||||
|
types. The same applies with the corresponding "min_protocol" and
|
||||||
|
"max_protocol" command-line switches, in case some application uses both TLS
|
||||||
|
and DTLS. SSL_CTX instances that are created for a fixed protocol version (e.g.
|
||||||
|
TLSv1_server_method()) also silently ignore version bounds. Previously
|
||||||
|
attempts to apply bounds to these protocol versions would result in an
|
||||||
|
error. Now only the "version-flexible" SSL_CTX instances are subject to
|
||||||
|
limits in configuration files in command-line options.
|
||||||
|
* Mon Jul 20 2020 vcizek@suse.com
|
||||||
|
- Fix linking when the deprecated SSL_get_per_certificate() is in use
|
||||||
|
* https://github.com/openssl/openssl/pull/12468
|
||||||
|
* add 0001-Fix-typo-for-SSL_get_peer_certificate.patch
|
||||||
|
* Fri Jul 17 2020 pmonrealgonzalez@suse.com
|
||||||
|
- Update to 3.0.0 Alpha 5
|
||||||
|
* Deprecated the 'ENGINE' API. Engines should be replaced with
|
||||||
|
providers going forward.
|
||||||
|
* Reworked the recorded ERR codes to make better space for system errors.
|
||||||
|
To distinguish them, the macro 'ERR_SYSTEM_ERROR()' indicates
|
||||||
|
if the given code is a system error (true) or an OpenSSL error (false).
|
||||||
|
* Reworked the test perl framework to better allow parallel testing.
|
||||||
|
* Added ciphertext stealing algorithms AES-128-CBC-CTS, AES-192-CBC-CTS and
|
||||||
|
AES-256-CBC-CTS to the providers. CS1, CS2 and CS3 variants are supported.
|
||||||
|
* 'Configure' has been changed to figure out the configuration target if
|
||||||
|
none is given on the command line. Consequently, the 'config' script is
|
||||||
|
now only a mere wrapper. All documentation is changed to only mention
|
||||||
|
'Configure'.
|
||||||
|
* Added a library context that applications as well as other libraries can use
|
||||||
|
to form a separate context within which libcrypto operations are performed.
|
||||||
|
- There are two ways this can be used:
|
||||||
|
1) Directly, by passing a library context to functions that take
|
||||||
|
such an argument, such as 'EVP_CIPHER_fetch' and similar algorithm
|
||||||
|
fetching functions.
|
||||||
|
2) Indirectly, by creating a new library context and then assigning
|
||||||
|
it as the new default, with 'OPENSSL_CTX_set0_default'.
|
||||||
|
- All public OpenSSL functions that take an 'OPENSSL_CTX' pointer,
|
||||||
|
apart from the functions directly related to 'OPENSSL_CTX', accept
|
||||||
|
NULL to indicate that the default library context should be used.
|
||||||
|
- Library code that changes the default library context using
|
||||||
|
'OPENSSL_CTX_set0_default' should take care to restore it with a
|
||||||
|
second call before returning to the caller.
|
||||||
|
* The security strength of SHA1 and MD5 based signatures in TLS has been
|
||||||
|
reduced. This results in SSL 3, TLS 1.0, TLS 1.1 and DTLS 1.0 no longer
|
||||||
|
working at the default security level of 1 and instead requires security
|
||||||
|
level 0. The security level can be changed either using the cipher string
|
||||||
|
with @SECLEVEL, or calling SSL_CTX_set_security_level().
|
||||||
|
* The SSL option SSL_OP_CLEANSE_PLAINTEXT is introduced. If that option is
|
||||||
|
set, openssl cleanses (zeroize) plaintext bytes from internal buffers
|
||||||
|
after delivering them to the application. Note, the application is still
|
||||||
|
responsible for cleansing other copies (e.g.: data received by SSL_read(3)).
|
||||||
|
- Update openssl-ppc64-config.patch
|
||||||
|
* Fri Jun 26 2020 vcizek@suse.com
|
||||||
|
- Update to 3.0.0 Alpha 4
|
||||||
|
* general improvements to the built-in providers, the providers API and the internal plumbing and the provider-aware mechanisms for libssl
|
||||||
|
* general improvements and fixes in the CLI apps
|
||||||
|
* support for Automated Cryptographic Validation Protocol (ACVP) tests
|
||||||
|
* fully pluggable TLS key exchange capability from providers
|
||||||
|
* finalization of the Certificate Management Protocol (CMP) contribution, adding an impressive amount of tests for the new features
|
||||||
|
* default to the newer SP800-56B compliant algorithm for RSA keygen
|
||||||
|
* provider-rand: PRNG functionality backed by providers
|
||||||
|
* refactored naming scheme for dispatched functions (#12222)
|
||||||
|
* fixes for various issues
|
||||||
|
* extended and improved test coverage
|
||||||
|
* additions and improvements to the documentations
|
||||||
|
- Fix license: Apache-2.0
|
||||||
|
- temporarily disable broken 81-test_cmp_cli.t test
|
||||||
|
* https://github.com/openssl/openssl/issues/12324
|
||||||
|
* Thu Jun 4 2020 vcizek@suse.com
|
||||||
|
- Update to 3.0.0 Alpha 3
|
||||||
|
* general improvements to the built-in providers, the providers API and the internal plumbing and the provider-aware mechanisms for libssl;
|
||||||
|
* general improvements and fixes in the CLI apps;
|
||||||
|
* cleanup of the EC API:
|
||||||
|
EC_METHOD became an internal-only concept, and functions using or returning EC_METHOD arguments have been deprecated;
|
||||||
|
EC_POINT_make_affine() and EC_POINTs_make_affine() have been deprecated in favor of automatic internal handling of conversions when needed;
|
||||||
|
EC_GROUP_precompute_mult(), EC_GROUP_have_precompute_mult(), and EC_KEY_precompute_mult() have been deprecated, as such precomputation data is now rarely used;
|
||||||
|
EC_POINTs_mul() has been deprecated, as for cryptographic applications EC_POINT_mul() is enough.
|
||||||
|
* the CMS API got support for CAdES-BES signature verification;
|
||||||
|
* introduction of a new SSL_OP_IGNORE_UNEXPECTED_EOF option;
|
||||||
|
* improvements to the RSA OAEP support;
|
||||||
|
* FFDH support in the speed app;
|
||||||
|
* CI: added external testing through the GOST engine;
|
||||||
|
* fixes for various issues;
|
||||||
|
* extended and improved test coverage;
|
||||||
|
* additions and improvements to the documentations.
|
||||||
|
* Sat May 23 2020 jengelh@inai.de
|
||||||
|
- Use find -exec +. Replace 'pwd' by simply $PWD.
|
||||||
|
- Drop Obsoletes on libopenssl1*. libopenssl3 has a new SONAME and
|
||||||
|
does not conflict with anything previously.
|
||||||
|
* Wed May 20 2020 vcizek@suse.com
|
||||||
|
- Obsolete openssl 1.1
|
||||||
|
- Update baselibs.conf
|
||||||
|
- Set man page permissions to 644
|
||||||
|
* Fri May 15 2020 vcizek@suse.com
|
||||||
|
- Update to 3.0.0 Alpha 2
|
||||||
|
* general improvements to the built-in providers, the providers API and the internal plumbing;
|
||||||
|
* the removal of legacy API functions related to FIPS mode, replaced by new provider-based mechanisms;
|
||||||
|
* the addition of a new cmp app for RFC 4210;
|
||||||
|
* extended and improved test coverage;
|
||||||
|
* improvements to the documentations;
|
||||||
|
* fixes for various issues.
|
||||||
|
- drop obsolete version.patch
|
||||||
|
* Thu Apr 23 2020 vcizek@suse.com
|
||||||
|
- Initial packaging 3.0.0 Alpha 1
|
||||||
|
* Major Release
|
||||||
|
OpenSSL 3.0 is a major release and consequently any application
|
||||||
|
that currently uses an older version of OpenSSL will at the
|
||||||
|
very least need to be recompiled in order to work with the new version.
|
||||||
|
It is the intention that the large majority of applications will
|
||||||
|
work unchanged with OpenSSL 3.0 if those applications previously
|
||||||
|
worked with OpenSSL 1.1.1. However this is not guaranteed and
|
||||||
|
some changes may be required in some cases.
|
||||||
|
* Providers and FIPS support
|
||||||
|
Providers collect together and make available algorithm implementations.
|
||||||
|
With OpenSSL 3.0 it is possible to specify, either programmatically
|
||||||
|
or via a config file, which providers you want to use for any given application
|
||||||
|
* Low Level APIs
|
||||||
|
Use of the low level APIs have been deprecated.
|
||||||
|
* Legacy Algorithms
|
||||||
|
Some cryptographic algorithms that were available via the EVP APIs
|
||||||
|
are now considered legacy and their use is strongly discouraged.
|
||||||
|
These legacy EVP algorithms are still available in OpenSSL 3.0 but not by default.
|
||||||
|
If you want to use them then you must load the legacy provider.
|
||||||
|
* Engines and "METHOD" APIs
|
||||||
|
The ENGINE API and any function that creates or modifies custom "METHODS"
|
||||||
|
are being deprecated in OpenSSL 3.0
|
||||||
|
Authors and maintainers of external engines are strongly encouraged to
|
||||||
|
refactor their code transforming engines into providers using
|
||||||
|
the new Provider API and avoiding deprecated methods.
|
||||||
|
* Versioning Scheme
|
||||||
|
The OpenSSL versioning scheme has changed with the 3.0 release.
|
||||||
|
The new versioning scheme has this format: MAJOR.MINOR.PATCH
|
||||||
|
The patch level is indicated by the third number instead of a letter
|
||||||
|
at the end of the release version number.
|
||||||
|
A change in the second (MINOR) number indicates that new features may have been added.
|
||||||
|
OpenSSL versions with the same major number are API and ABI compatible.
|
||||||
|
If the major number changes then API and ABI compatibility is not guaranteed.
|
||||||
|
* Other major new features
|
||||||
|
Implementation of the Certificate Management Protocol (CMP, RFC 4210)
|
||||||
|
also covering CRMF (RFC 4211) and HTTP transfer (RFC 6712).
|
||||||
|
A proper HTTP(S) client in libcrypto supporting GET and POST,
|
||||||
|
redirection, plain and ASN.1-encoded contents, proxies, and timeouts
|
||||||
|
EVP_KDF APIs have been introduced for working with Key Derivation Functions
|
||||||
|
EVP_MAC APIs have been introduced for working with MACs
|
||||||
|
Support for Linux Kernel TLS
|
253
openssl-3.spec
Normal file
253
openssl-3.spec
Normal file
|
@ -0,0 +1,253 @@
|
||||||
|
#
|
||||||
|
# spec file for package openssl-3
|
||||||
|
#
|
||||||
|
# Copyright (c) 2022-2023 ZhuningOS
|
||||||
|
#
|
||||||
|
|
||||||
|
|
||||||
|
%define ssletcdir %{_sysconfdir}/ssl
|
||||||
|
%define sover 3
|
||||||
|
%define _rname openssl
|
||||||
|
Name: openssl-3
|
||||||
|
# Don't forget to update the version in the "openssl" package!
|
||||||
|
Version: 3.0.8
|
||||||
|
Release: 150500.5.8.1
|
||||||
|
Summary: Secure Sockets and Transport Layer Security
|
||||||
|
License: Apache-2.0
|
||||||
|
URL: https://www.openssl.org/
|
||||||
|
Source: https://www.%{_rname}.org/source/%{_rname}-%{version}.tar.gz
|
||||||
|
# to get mtime of file:
|
||||||
|
Source1: %{name}.changes
|
||||||
|
Source2: baselibs.conf
|
||||||
|
Source3: https://www.%{_rname}.org/source/%{_rname}-%{version}.tar.gz.asc
|
||||||
|
# https://www.openssl.org/about/
|
||||||
|
# http://pgp.mit.edu:11371/pks/lookup?op=get&search=0xA2D29B7BF295C759#/openssl.keyring
|
||||||
|
Source4: %{_rname}.keyring
|
||||||
|
Source5: showciphers.c
|
||||||
|
# PATCH-FIX-OPENSUSE: do not install html mans as it takes ages
|
||||||
|
Patch1: openssl-1.1.0-no-html.patch
|
||||||
|
Patch2: openssl-truststore.patch
|
||||||
|
Patch3: openssl-pkgconfig.patch
|
||||||
|
Patch4: openssl-DEFAULT_SUSE_cipher.patch
|
||||||
|
Patch5: openssl-ppc64-config.patch
|
||||||
|
Patch6: openssl-no-date.patch
|
||||||
|
# Patches for crypto-policies
|
||||||
|
Patch7: openssl-Add-support-for-PROFILE-SYSTEM-system-default-cipher.patch
|
||||||
|
Patch8: openssl-Override-default-paths-for-the-CA-directory-tree.patch
|
||||||
|
# use openssl3.cnf
|
||||||
|
Patch9: openssl-use-versioned-config.patch
|
||||||
|
Patch10: fix-config-in-tests.patch
|
||||||
|
# PATCH-FIX-UPSTREAM: bsc#1209624, CVE-2023-0464 Excessive Resource Usage Verifying X.509 Policy Constraints
|
||||||
|
Patch11: openssl-CVE-2023-0464.patch
|
||||||
|
# PATCH-FIX-UPSTREAM: bsc#1209878, CVE-2023-0465 Invalid certificate policies in leaf certificates are silently ignored
|
||||||
|
Patch12: openssl-CVE-2023-0465.patch
|
||||||
|
# PATCH-FIX-UPSTREAM: bsc#1209873, CVE-2023-0466 Certificate policy check not enabled
|
||||||
|
Patch13: openssl-CVE-2023-0466.patch
|
||||||
|
# PATCH-FIX-UPSTREAM: bsc#1210714, CVE-2023-1255: Input buffer over-read in AES-XTS implementation on 64 bit ARM
|
||||||
|
Patch14: openssl-CVE-2023-1255.patch
|
||||||
|
# PATCH-FIX-UPSTREAM: bsc#1211430, CVE-2023-2650 Possible DoS translating ASN.1 object identifiers
|
||||||
|
Patch15: openssl-CVE-2023-2650.patch
|
||||||
|
# PATCH-FIX-UPSTREAM: bsc#1213383, CVE-2023-2975 AES-SIV ignores empty data entries
|
||||||
|
Patch16: openssl-CVE-2023-2975.patch
|
||||||
|
# PATCH-FIX-UPSTREAM: bsc#1213487 CVE-2023-3446 DH_check() excessive time with over sized modulus
|
||||||
|
Patch17: openssl-CVE-2023-3446.patch
|
||||||
|
Patch18: openssl-CVE-2023-3446-test.patch
|
||||||
|
BuildRequires: pkgconfig
|
||||||
|
BuildRequires: pkgconfig(zlib)
|
||||||
|
# Add requires for ct_log_list.cnf{,.dist}
|
||||||
|
Requires: openssl
|
||||||
|
%if 0%{?suse_version} >= 1550 || 0%{?sle_version} >= 150400
|
||||||
|
Requires: crypto-policies
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%description
|
||||||
|
OpenSSL is a software library to be used in applications that need to
|
||||||
|
secure communications over computer networks against eavesdropping or
|
||||||
|
need to ascertain the identity of the party at the other end.
|
||||||
|
OpenSSL contains an implementation of the SSL and TLS protocols.
|
||||||
|
|
||||||
|
%package -n libopenssl3
|
||||||
|
Summary: Secure Sockets and Transport Layer Security
|
||||||
|
%if 0%{?suse_version} >= 1550 || 0%{?sle_version} >= 150400
|
||||||
|
Requires: crypto-policies
|
||||||
|
%endif
|
||||||
|
Recommends: ca-certificates-mozilla
|
||||||
|
|
||||||
|
%description -n libopenssl3
|
||||||
|
OpenSSL is a software library to be used in applications that need to
|
||||||
|
secure communications over computer networks against eavesdropping or
|
||||||
|
need to ascertain the identity of the party at the other end.
|
||||||
|
OpenSSL contains an implementation of the SSL and TLS protocols.
|
||||||
|
|
||||||
|
%package -n libopenssl-3-devel
|
||||||
|
Summary: Development files for OpenSSL
|
||||||
|
Requires: libopenssl3 = %{version}
|
||||||
|
Requires: pkgconfig(zlib)
|
||||||
|
Recommends: %{name} = %{version}
|
||||||
|
# We need to have around only the exact version we are able to operate with
|
||||||
|
Conflicts: libopenssl-devel < %{version}
|
||||||
|
Conflicts: libopenssl-devel > %{version}
|
||||||
|
Conflicts: libressl-devel
|
||||||
|
Conflicts: ssl-devel
|
||||||
|
|
||||||
|
%description -n libopenssl-3-devel
|
||||||
|
This subpackage contains header files for developing applications
|
||||||
|
that want to make use of the OpenSSL C API.
|
||||||
|
|
||||||
|
%package doc
|
||||||
|
Summary: Additional Package Documentation
|
||||||
|
Conflicts: openssl-doc
|
||||||
|
Provides: openssl-doc = %{version}
|
||||||
|
Obsoletes: openssl-doc < %{version}
|
||||||
|
BuildArch: noarch
|
||||||
|
|
||||||
|
%description doc
|
||||||
|
This package contains optional documentation provided in addition to
|
||||||
|
this package's base documentation.
|
||||||
|
|
||||||
|
%prep
|
||||||
|
%autosetup -p1 -n %{_rname}-%{version}
|
||||||
|
|
||||||
|
%build
|
||||||
|
%ifarch armv5el armv5tel
|
||||||
|
export MACHINE=armv5el
|
||||||
|
%endif
|
||||||
|
%ifarch armv6l armv6hl
|
||||||
|
export MACHINE=armv6l
|
||||||
|
%endif
|
||||||
|
|
||||||
|
./config \
|
||||||
|
no-idea \
|
||||||
|
no-ec2m \
|
||||||
|
enable-rfc3779 \
|
||||||
|
%ifarch x86_64 aarch64 ppc64le
|
||||||
|
enable-ec_nistp_64_gcc_128 \
|
||||||
|
%endif
|
||||||
|
enable-camellia \
|
||||||
|
zlib \
|
||||||
|
--prefix=%{_prefix} \
|
||||||
|
--libdir=%{_lib} \
|
||||||
|
--openssldir=%{ssletcdir} \
|
||||||
|
%{optflags} \
|
||||||
|
-Wa,--noexecstack \
|
||||||
|
-Wl,-z,relro,-z,now \
|
||||||
|
-fno-common \
|
||||||
|
-DTERMIO \
|
||||||
|
-DPURIFY \
|
||||||
|
-D_GNU_SOURCE \
|
||||||
|
-DOPENSSL_NO_BUF_FREELISTS \
|
||||||
|
$(getconf LFS_CFLAGS) \
|
||||||
|
-Wall \
|
||||||
|
--with-rand-seed=getrandom \
|
||||||
|
--system-ciphers-file=%{_sysconfdir}/crypto-policies/back-ends/openssl.config
|
||||||
|
|
||||||
|
# Show build configuration
|
||||||
|
perl configdata.pm --dump
|
||||||
|
|
||||||
|
# util/mkdef.pl crypto update
|
||||||
|
%make_build depend
|
||||||
|
%make_build all
|
||||||
|
|
||||||
|
%check
|
||||||
|
|
||||||
|
# We must revert patch8 before running tests, otherwise they will fail.
|
||||||
|
patch -p1 -R < %{P:8}
|
||||||
|
|
||||||
|
export MALLOC_CHECK_=3
|
||||||
|
export MALLOC_PERTURB_=$(($RANDOM % 255 + 1))
|
||||||
|
# export HARNESS_VERBOSE=yes
|
||||||
|
LD_LIBRARY_PATH="$PWD" make TESTS='-test_evp_fetch_prov -test_tsa' test -j1
|
||||||
|
# show ciphers
|
||||||
|
gcc -o showciphers %{optflags} -I%{buildroot}%{_includedir} %{SOURCE5} -L%{buildroot}%{_libdir} -lssl -lcrypto
|
||||||
|
LD_LIBRARY_PATH=%{buildroot}%{_libdir} ./showciphers
|
||||||
|
|
||||||
|
%install
|
||||||
|
%make_install %{?_smp_mflags}
|
||||||
|
|
||||||
|
# Kill static libs
|
||||||
|
rm -f %{buildroot}%{_libdir}/lib*.a
|
||||||
|
# Remove the cnf.dist
|
||||||
|
rm -f %{buildroot}%{_sysconfdir}/ssl/openssl3.cnf.dist
|
||||||
|
mkdir %{buildroot}/%{_datadir}/ssl-3
|
||||||
|
mv %{buildroot}/%{ssletcdir}/misc %{buildroot}/%{_datadir}/ssl-3/
|
||||||
|
ln -sf ./%{_rname} %{buildroot}/%{_includedir}/ssl
|
||||||
|
mkdir %{buildroot}/%{_datadir}/ssl
|
||||||
|
# Rename binary
|
||||||
|
mv %{buildroot}%{_bindir}/%{_rname} %{buildroot}%{_bindir}/%{name}
|
||||||
|
# Avoid file conflicts with man pages from other packages
|
||||||
|
pushd %{buildroot}/%{_mandir}
|
||||||
|
find . -type f -exec chmod 644 {} +
|
||||||
|
# Some man pages now contain spaces. This makes several
|
||||||
|
# scripts go havoc, among them /usr/sbin/Check.
|
||||||
|
# Replace spaces by underscores
|
||||||
|
# for i in man?/*\ *; do mv -v "$i" "${i// /_}"; done
|
||||||
|
|
||||||
|
touch $OLDPWD/filelist.doc $OLDPWD/filelist
|
||||||
|
which readlink &>/dev/null || function readlink { ( set +x; target=$(file $1 2>/dev/null); target=${target//* }; test -f $target && echo $target; ) }
|
||||||
|
for i in man?/*; do
|
||||||
|
if test -L $i ; then
|
||||||
|
LDEST=`readlink $i`
|
||||||
|
rm -f $i ${i}ssl
|
||||||
|
ln -sf ${LDEST}ssl-3 ${i}ssl-3
|
||||||
|
else
|
||||||
|
mv $i ${i}ssl-3
|
||||||
|
fi
|
||||||
|
case "$i" in
|
||||||
|
*.1)
|
||||||
|
# These are the pages mentioned in openssl(1). They go into the main package.
|
||||||
|
echo %doc %{_mandir}/${i}ssl-3%{?ext_man} >> $OLDPWD/filelist;;
|
||||||
|
*)
|
||||||
|
# The rest goes into the openssl-doc package.
|
||||||
|
echo %doc %{_mandir}/${i}ssl-3%{?ext_man} >> $OLDPWD/filelist.doc;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
popd
|
||||||
|
|
||||||
|
mv %{buildroot}%{_bindir}/c_rehash %{buildroot}%{_bindir}/c_rehash-3
|
||||||
|
|
||||||
|
# They are provided by openssl package
|
||||||
|
rm %{buildroot}%{ssletcdir}/ct_log_list.cnf*
|
||||||
|
|
||||||
|
# Do not install demo scripts executable under /usr/share/doc
|
||||||
|
find demos -type f -perm /111 -exec chmod 644 {} +
|
||||||
|
|
||||||
|
# Place showciphers.c for %%doc macro
|
||||||
|
cp %{SOURCE5} .
|
||||||
|
|
||||||
|
%post -n libopenssl3 -p /sbin/ldconfig
|
||||||
|
%postun -n libopenssl3 -p /sbin/ldconfig
|
||||||
|
|
||||||
|
%files -n libopenssl3
|
||||||
|
%license LICENSE.txt
|
||||||
|
%{_libdir}/libssl.so.%{sover}
|
||||||
|
%{_libdir}/libcrypto.so.%{sover}
|
||||||
|
%{_libdir}/engines-%{sover}
|
||||||
|
%dir %{_libdir}/ossl-modules
|
||||||
|
#%%{_libdir}/ossl-modules/fips.so
|
||||||
|
%{_libdir}/ossl-modules/legacy.so
|
||||||
|
|
||||||
|
%files -n libopenssl-3-devel
|
||||||
|
%{_includedir}/%{_rname}/
|
||||||
|
%{_includedir}/ssl
|
||||||
|
%{_libdir}/libssl.so
|
||||||
|
%{_libdir}/libcrypto.so
|
||||||
|
%{_libdir}/pkgconfig/libcrypto.pc
|
||||||
|
%{_libdir}/pkgconfig/libssl.pc
|
||||||
|
%{_libdir}/pkgconfig/openssl.pc
|
||||||
|
|
||||||
|
%files doc -f filelist.doc
|
||||||
|
%doc doc/* demos
|
||||||
|
%doc showciphers.c
|
||||||
|
|
||||||
|
%files -f filelist
|
||||||
|
%doc CHANGE*
|
||||||
|
%dir %{ssletcdir}
|
||||||
|
%config (noreplace) %{ssletcdir}/openssl3.cnf
|
||||||
|
%attr(700,root,root) %{ssletcdir}/private
|
||||||
|
|
||||||
|
%dir %{_datadir}/ssl-3
|
||||||
|
%{_datadir}/ssl-3/misc
|
||||||
|
%{_bindir}/c_rehash-3
|
||||||
|
%{_bindir}/%{name}
|
||||||
|
|
||||||
|
%changelog
|
|
@ -0,0 +1,305 @@
|
||||||
|
From 736d709ec194b3a763e004696df22792c62a11fc Mon Sep 17 00:00:00 2001
|
||||||
|
From: Tomas Mraz <tmraz@fedoraproject.org>
|
||||||
|
Date: Thu, 24 Sep 2020 10:16:46 +0200
|
||||||
|
Subject: Add support for PROFILE=SYSTEM system default cipherlist
|
||||||
|
|
||||||
|
(was openssl-1.1.1-system-cipherlist.patch)
|
||||||
|
---
|
||||||
|
Configurations/unix-Makefile.tmpl | 5 ++
|
||||||
|
Configure | 11 ++++
|
||||||
|
doc/man1/openssl-ciphers.pod.in | 9 +++
|
||||||
|
include/openssl/ssl.h.in | 5 ++
|
||||||
|
ssl/ssl_ciph.c | 87 +++++++++++++++++++++++++++++++++-----
|
||||||
|
ssl/ssl_lib.c | 4 -
|
||||||
|
test/cipherlist_test.c | 2
|
||||||
|
util/libcrypto.num | 1
|
||||||
|
8 files changed, 110 insertions(+), 14 deletions(-)
|
||||||
|
|
||||||
|
--- a/Configurations/unix-Makefile.tmpl
|
||||||
|
+++ b/Configurations/unix-Makefile.tmpl
|
||||||
|
@@ -315,6 +315,10 @@ MANDIR=$(INSTALLTOP)/share/man
|
||||||
|
DOCDIR=$(INSTALLTOP)/share/doc/$(BASENAME)
|
||||||
|
HTMLDIR=$(DOCDIR)/html
|
||||||
|
|
||||||
|
+{- output_off() if $config{system_ciphers_file} eq ""; "" -}
|
||||||
|
+SYSTEM_CIPHERS_FILE_DEFINE=-DSYSTEM_CIPHERS_FILE="\"{- $config{system_ciphers_file} -}\""
|
||||||
|
+{- output_on() if $config{system_ciphers_file} eq ""; "" -}
|
||||||
|
+
|
||||||
|
# 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.
|
||||||
|
@@ -338,6 +342,7 @@ CC=$(CROSS_COMPILE){- $config{CC} -}
|
||||||
|
CXX={- $config{CXX} ? "\$(CROSS_COMPILE)$config{CXX}" : '' -}
|
||||||
|
CPPFLAGS={- our $cppflags1 = join(" ",
|
||||||
|
(map { "-D".$_} @{$config{CPPDEFINES}}),
|
||||||
|
+ "\$(SYSTEM_CIPHERS_FILE_DEFINE)",
|
||||||
|
(map { "-I".$_} @{$config{CPPINCLUDES}}),
|
||||||
|
@{$config{CPPFLAGS}}) -}
|
||||||
|
CFLAGS={- join(' ', @{$config{CFLAGS}}) -}
|
||||||
|
--- a/Configure
|
||||||
|
+++ b/Configure
|
||||||
|
@@ -27,7 +27,7 @@ use OpenSSL::config;
|
||||||
|
my $orig_death_handler = $SIG{__DIE__};
|
||||||
|
$SIG{__DIE__} = \&death_handler;
|
||||||
|
|
||||||
|
-my $usage="Usage: Configure [no-<cipher> ...] [enable-<cipher> ...] [-Dxxx] [-lxxx] [-Lxxx] [-fxxx] [-Kxxx] [no-hw-xxx|no-hw] [[no-]threads] [[no-]shared] [[no-]zlib|zlib-dynamic] [no-asm] [no-egd] [sctp] [386] [--prefix=DIR] [--openssldir=OPENSSLDIR] [--with-xxx[=vvv]] [--config=FILE] os/compiler[:flags]\n";
|
||||||
|
+my $usage="Usage: Configure [no-<cipher> ...] [enable-<cipher> ...] [-Dxxx] [-lxxx] [-Lxxx] [-fxxx] [-Kxxx] [no-hw-xxx|no-hw] [[no-]threads] [[no-]shared] [[no-]zlib|zlib-dynamic] [no-asm] [no-egd] [sctp] [386] [--prefix=DIR] [--openssldir=OPENSSLDIR] [--system-ciphers-file=SYSTEMCIPHERFILE] [--with-xxx[=vvv]] [--config=FILE] os/compiler[:flags]\n";
|
||||||
|
|
||||||
|
my $banner = <<"EOF";
|
||||||
|
|
||||||
|
@@ -61,6 +61,10 @@ EOF
|
||||||
|
# given with --prefix.
|
||||||
|
# This becomes the value of OPENSSLDIR in Makefile and in C.
|
||||||
|
# (Default: PREFIX/ssl)
|
||||||
|
+#
|
||||||
|
+# --system-ciphers-file A file to read cipher string from when the PROFILE=SYSTEM
|
||||||
|
+# cipher is specified (default).
|
||||||
|
+#
|
||||||
|
# --banner=".." Output specified text instead of default completion banner
|
||||||
|
#
|
||||||
|
# -w Don't wait after showing a Configure warning
|
||||||
|
@@ -387,6 +391,7 @@ $config{prefix}="";
|
||||||
|
$config{openssldir}="";
|
||||||
|
$config{processor}="";
|
||||||
|
$config{libdir}="";
|
||||||
|
+$config{system_ciphers_file}="";
|
||||||
|
my $auto_threads=1; # enable threads automatically? true by default
|
||||||
|
my $default_ranlib;
|
||||||
|
|
||||||
|
@@ -989,6 +994,10 @@ while (@argvcopy)
|
||||||
|
die "FIPS key too long (64 bytes max)\n"
|
||||||
|
if length $1 > 64;
|
||||||
|
}
|
||||||
|
+ elsif (/^--system-ciphers-file=(.*)$/)
|
||||||
|
+ {
|
||||||
|
+ $config{system_ciphers_file}=$1;
|
||||||
|
+ }
|
||||||
|
elsif (/^--banner=(.*)$/)
|
||||||
|
{
|
||||||
|
$banner = $1 . "\n";
|
||||||
|
--- a/doc/man1/openssl-ciphers.pod.in
|
||||||
|
+++ b/doc/man1/openssl-ciphers.pod.in
|
||||||
|
@@ -186,6 +186,15 @@ As of OpenSSL 1.0.0, the B<ALL> cipher s
|
||||||
|
|
||||||
|
The cipher suites not enabled by B<ALL>, currently B<eNULL>.
|
||||||
|
|
||||||
|
+=item B<PROFILE=SYSTEM>
|
||||||
|
+
|
||||||
|
+The list of enabled cipher suites will be loaded from the system crypto policy
|
||||||
|
+configuration file B</etc/crypto-policies/back-ends/openssl.config>.
|
||||||
|
+See also L<update-crypto-policies(8)>.
|
||||||
|
+This is the default behavior unless an application explicitly sets a cipher
|
||||||
|
+list. If used in a cipher list configuration value this string must be at the
|
||||||
|
+beginning of the cipher list, otherwise it will not be recognized.
|
||||||
|
+
|
||||||
|
=item B<HIGH>
|
||||||
|
|
||||||
|
"High" encryption cipher suites. This currently means those with key lengths
|
||||||
|
--- a/include/openssl/ssl.h.in
|
||||||
|
+++ b/include/openssl/ssl.h.in
|
||||||
|
@@ -210,6 +210,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.)
|
||||||
|
*/
|
||||||
|
+# ifdef SYSTEM_CIPHERS_FILE
|
||||||
|
+# define SSL_SYSTEM_DEFAULT_CIPHER_LIST "PROFILE=SYSTEM"
|
||||||
|
+# else
|
||||||
|
+# define SSL_SYSTEM_DEFAULT_CIPHER_LIST OSSL_default_cipher_list()
|
||||||
|
+# endif
|
||||||
|
|
||||||
|
/* Used in SSL_set_shutdown()/SSL_get_shutdown(); */
|
||||||
|
# define SSL_SENT_SHUTDOWN 1
|
||||||
|
--- a/ssl/ssl_ciph.c
|
||||||
|
+++ b/ssl/ssl_ciph.c
|
||||||
|
@@ -1438,6 +1438,53 @@ int SSL_set_ciphersuites(SSL *s, const c
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
+#ifdef SYSTEM_CIPHERS_FILE
|
||||||
|
+static char *load_system_str(const char *suffix)
|
||||||
|
+{
|
||||||
|
+ FILE *fp;
|
||||||
|
+ char buf[1024];
|
||||||
|
+ char *new_rules;
|
||||||
|
+ const char *ciphers_path;
|
||||||
|
+ unsigned len, slen;
|
||||||
|
+
|
||||||
|
+ if ((ciphers_path = ossl_safe_getenv("OPENSSL_SYSTEM_CIPHERS_OVERRIDE")) == NULL)
|
||||||
|
+ ciphers_path = SYSTEM_CIPHERS_FILE;
|
||||||
|
+ fp = fopen(ciphers_path, "r");
|
||||||
|
+ if (fp == NULL || fgets(buf, sizeof(buf), fp) == NULL) {
|
||||||
|
+ /* cannot open or file is empty */
|
||||||
|
+ snprintf(buf, sizeof(buf), "%s", SSL_DEFAULT_CIPHER_LIST);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ if (fp)
|
||||||
|
+ fclose(fp);
|
||||||
|
+
|
||||||
|
+ slen = strlen(suffix);
|
||||||
|
+ len = strlen(buf);
|
||||||
|
+
|
||||||
|
+ if (buf[len - 1] == '\n') {
|
||||||
|
+ len--;
|
||||||
|
+ buf[len] = 0;
|
||||||
|
+ }
|
||||||
|
+ if (buf[len - 1] == '\r') {
|
||||||
|
+ len--;
|
||||||
|
+ buf[len] = 0;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ new_rules = OPENSSL_malloc(len + slen + 1);
|
||||||
|
+ if (new_rules == 0)
|
||||||
|
+ return NULL;
|
||||||
|
+
|
||||||
|
+ memcpy(new_rules, buf, len);
|
||||||
|
+ if (slen > 0) {
|
||||||
|
+ memcpy(&new_rules[len], suffix, slen);
|
||||||
|
+ len += slen;
|
||||||
|
+ }
|
||||||
|
+ new_rules[len] = 0;
|
||||||
|
+
|
||||||
|
+ return new_rules;
|
||||||
|
+}
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
STACK_OF(SSL_CIPHER) *ssl_create_cipher_list(SSL_CTX *ctx,
|
||||||
|
STACK_OF(SSL_CIPHER) *tls13_ciphersuites,
|
||||||
|
STACK_OF(SSL_CIPHER) **cipher_list,
|
||||||
|
@@ -1452,15 +1499,25 @@ STACK_OF(SSL_CIPHER) *ssl_create_cipher_
|
||||||
|
CIPHER_ORDER *co_list = NULL, *head = NULL, *tail = NULL, *curr;
|
||||||
|
const SSL_CIPHER **ca_list = NULL;
|
||||||
|
const SSL_METHOD *ssl_method = ctx->method;
|
||||||
|
+#ifdef SYSTEM_CIPHERS_FILE
|
||||||
|
+ char *new_rules = NULL;
|
||||||
|
+
|
||||||
|
+ if (rule_str != NULL && strncmp(rule_str, "PROFILE=SYSTEM", 14) == 0) {
|
||||||
|
+ char *p = rule_str + 14;
|
||||||
|
+
|
||||||
|
+ new_rules = load_system_str(p);
|
||||||
|
+ rule_str = new_rules;
|
||||||
|
+ }
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Return with error if nothing to do.
|
||||||
|
*/
|
||||||
|
if (rule_str == NULL || cipher_list == NULL || cipher_list_by_id == NULL)
|
||||||
|
- return NULL;
|
||||||
|
+ goto err;
|
||||||
|
|
||||||
|
if (!check_suiteb_cipher_list(ssl_method, c, &rule_str))
|
||||||
|
- return NULL;
|
||||||
|
+ goto err;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* To reduce the work to do we only want to process the compiled
|
||||||
|
@@ -1482,7 +1539,7 @@ STACK_OF(SSL_CIPHER) *ssl_create_cipher_
|
||||||
|
co_list = OPENSSL_malloc(sizeof(*co_list) * num_of_ciphers);
|
||||||
|
if (co_list == NULL) {
|
||||||
|
ERR_raise(ERR_LIB_SSL, ERR_R_MALLOC_FAILURE);
|
||||||
|
- return NULL; /* Failure */
|
||||||
|
+ goto err;
|
||||||
|
}
|
||||||
|
|
||||||
|
ssl_cipher_collect_ciphers(ssl_method, num_of_ciphers,
|
||||||
|
@@ -1548,8 +1605,7 @@ STACK_OF(SSL_CIPHER) *ssl_create_cipher_
|
||||||
|
* in force within each class
|
||||||
|
*/
|
||||||
|
if (!ssl_cipher_strength_sort(&head, &tail)) {
|
||||||
|
- OPENSSL_free(co_list);
|
||||||
|
- return NULL;
|
||||||
|
+ goto err;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
@@ -1593,9 +1649,8 @@ STACK_OF(SSL_CIPHER) *ssl_create_cipher_
|
||||||
|
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);
|
||||||
|
ERR_raise(ERR_LIB_SSL, ERR_R_MALLOC_FAILURE);
|
||||||
|
- return NULL; /* Failure */
|
||||||
|
+ goto err;
|
||||||
|
}
|
||||||
|
ssl_cipher_collect_aliases(ca_list, num_of_group_aliases,
|
||||||
|
disabled_mkey, disabled_auth, disabled_enc,
|
||||||
|
@@ -1628,8 +1683,7 @@ STACK_OF(SSL_CIPHER) *ssl_create_cipher_
|
||||||
|
OPENSSL_free(ca_list); /* Not needed anymore */
|
||||||
|
|
||||||
|
if (!ok) { /* Rule processing failure */
|
||||||
|
- OPENSSL_free(co_list);
|
||||||
|
- return NULL;
|
||||||
|
+ goto err;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
@@ -1637,10 +1691,13 @@ STACK_OF(SSL_CIPHER) *ssl_create_cipher_
|
||||||
|
* if we cannot get one.
|
||||||
|
*/
|
||||||
|
if ((cipherstack = sk_SSL_CIPHER_new_null()) == NULL) {
|
||||||
|
- OPENSSL_free(co_list);
|
||||||
|
- return NULL;
|
||||||
|
+ goto err;
|
||||||
|
}
|
||||||
|
|
||||||
|
+#ifdef SYSTEM_CIPHERS_FILE
|
||||||
|
+ OPENSSL_free(new_rules); /* Not needed anymore */
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
/* 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);
|
||||||
|
@@ -1692,6 +1749,14 @@ STACK_OF(SSL_CIPHER) *ssl_create_cipher_
|
||||||
|
*cipher_list = cipherstack;
|
||||||
|
|
||||||
|
return cipherstack;
|
||||||
|
+
|
||||||
|
+err:
|
||||||
|
+ OPENSSL_free(co_list);
|
||||||
|
+#ifdef SYSTEM_CIPHERS_FILE
|
||||||
|
+ OPENSSL_free(new_rules);
|
||||||
|
+#endif
|
||||||
|
+ return NULL;
|
||||||
|
+
|
||||||
|
}
|
||||||
|
|
||||||
|
char *SSL_CIPHER_description(const SSL_CIPHER *cipher, char *buf, int len)
|
||||||
|
--- a/ssl/ssl_lib.c
|
||||||
|
+++ b/ssl/ssl_lib.c
|
||||||
|
@@ -660,7 +660,7 @@ int SSL_CTX_set_ssl_version(SSL_CTX *ctx
|
||||||
|
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;
|
||||||
|
@@ -3285,7 +3285,7 @@ SSL_CTX *SSL_CTX_new_ex(OSSL_LIB_CTX *li
|
||||||
|
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)
|
||||||
|
|| sk_SSL_CIPHER_num(ret->cipher_list) <= 0) {
|
||||||
|
ERR_raise(ERR_LIB_SSL, SSL_R_LIBRARY_HAS_NO_CIPHERS);
|
||||||
|
goto err2;
|
||||||
|
--- a/test/cipherlist_test.c
|
||||||
|
+++ b/test/cipherlist_test.c
|
||||||
|
@@ -246,7 +246,9 @@ end:
|
||||||
|
|
||||||
|
int setup_tests(void)
|
||||||
|
{
|
||||||
|
+#ifndef SYSTEM_CIPHERS_FILE
|
||||||
|
ADD_TEST(test_default_cipherlist_implicit);
|
||||||
|
+#endif
|
||||||
|
ADD_TEST(test_default_cipherlist_explicit);
|
||||||
|
ADD_TEST(test_default_cipherlist_clear);
|
||||||
|
return 1;
|
||||||
|
--- a/util/libcrypto.num
|
||||||
|
+++ b/util/libcrypto.num
|
||||||
|
@@ -5428,3 +5428,4 @@ EVP_PKEY_CTX_get0_provider
|
||||||
|
OPENSSL_strcasecmp 5556 3_0_3 EXIST::FUNCTION:
|
||||||
|
OPENSSL_strncasecmp 5557 3_0_3 EXIST::FUNCTION:
|
||||||
|
OSSL_CMP_CTX_reset_geninfo_ITAVs 5558 3_0_8 EXIST::FUNCTION:CMP
|
||||||
|
+ossl_safe_getenv ? 3_0_0 EXIST::FUNCTION:
|
814
openssl-CVE-2023-0464.patch
Normal file
814
openssl-CVE-2023-0464.patch
Normal file
|
@ -0,0 +1,814 @@
|
||||||
|
From 8481ba26a84d6d9c5b54c2b3773b3923a684d8b2 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Pauli <pauli@openssl.org>
|
||||||
|
Date: Wed, 8 Mar 2023 15:28:20 +1100
|
||||||
|
Subject: [PATCH 1/3] x509: excessive resource use verifying policy constraints
|
||||||
|
|
||||||
|
A security vulnerability has been identified in all supported versions
|
||||||
|
of OpenSSL related to the verification of X.509 certificate chains
|
||||||
|
that include policy constraints. Attackers may be able to exploit this
|
||||||
|
vulnerability by creating a malicious certificate chain that triggers
|
||||||
|
exponential use of computational resources, leading to a denial-of-service
|
||||||
|
(DoS) attack on affected systems.
|
||||||
|
|
||||||
|
Fixes CVE-2023-0464
|
||||||
|
---
|
||||||
|
CHANGES.md | 9
|
||||||
|
crypto/x509/pcy_local.h | 8
|
||||||
|
crypto/x509/pcy_node.c | 12
|
||||||
|
crypto/x509/pcy_tree.c | 36
|
||||||
|
test/recipes/80-test_policy_tree.t | 41 +
|
||||||
|
test/recipes/80-test_policy_tree_data/large_leaf.pem | 11
|
||||||
|
test/recipes/80-test_policy_tree_data/large_policy_tree.pem | 434 ++++++++++++
|
||||||
|
test/recipes/80-test_policy_tree_data/small_leaf.pem | 11
|
||||||
|
test/recipes/80-test_policy_tree_data/small_policy_tree.pem | 70 +
|
||||||
|
9 files changed, 618 insertions(+), 14 deletions(-)
|
||||||
|
|
||||||
|
--- a/CHANGES.md
|
||||||
|
+++ b/CHANGES.md
|
||||||
|
@@ -30,6 +30,15 @@ breaking changes, and mappings for the l
|
||||||
|
|
||||||
|
### Changes between 3.0.7 and 3.0.8 [7 Feb 2023]
|
||||||
|
|
||||||
|
+ * Limited the number of nodes created in a policy tree to mitigate
|
||||||
|
+ against CVE-2023-0464. The default limit is set to 1000 nodes, which
|
||||||
|
+ should be sufficient for most installations. If required, the limit
|
||||||
|
+ can be adjusted by setting the OPENSSL_POLICY_TREE_NODES_MAX build
|
||||||
|
+ time define to a desired maximum number of nodes or zero to allow
|
||||||
|
+ unlimited growth.
|
||||||
|
+
|
||||||
|
+ *Paul Dale*
|
||||||
|
+
|
||||||
|
* Fixed NULL dereference during PKCS7 data verification.
|
||||||
|
|
||||||
|
A NULL pointer can be dereferenced when signatures are being
|
||||||
|
--- a/crypto/x509/pcy_local.h
|
||||||
|
+++ b/crypto/x509/pcy_local.h
|
||||||
|
@@ -111,6 +111,11 @@ struct X509_POLICY_LEVEL_st {
|
||||||
|
};
|
||||||
|
|
||||||
|
struct X509_POLICY_TREE_st {
|
||||||
|
+ /* The number of nodes in the tree */
|
||||||
|
+ size_t node_count;
|
||||||
|
+ /* The maximum number of nodes in the tree */
|
||||||
|
+ size_t node_maximum;
|
||||||
|
+
|
||||||
|
/* This is the tree 'level' data */
|
||||||
|
X509_POLICY_LEVEL *levels;
|
||||||
|
int nlevel;
|
||||||
|
@@ -157,7 +162,8 @@ X509_POLICY_NODE *ossl_policy_tree_find_
|
||||||
|
X509_POLICY_NODE *ossl_policy_level_add_node(X509_POLICY_LEVEL *level,
|
||||||
|
X509_POLICY_DATA *data,
|
||||||
|
X509_POLICY_NODE *parent,
|
||||||
|
- X509_POLICY_TREE *tree);
|
||||||
|
+ X509_POLICY_TREE *tree,
|
||||||
|
+ int extra_data);
|
||||||
|
void ossl_policy_node_free(X509_POLICY_NODE *node);
|
||||||
|
int ossl_policy_node_match(const X509_POLICY_LEVEL *lvl,
|
||||||
|
const X509_POLICY_NODE *node, const ASN1_OBJECT *oid);
|
||||||
|
--- a/crypto/x509/pcy_node.c
|
||||||
|
+++ b/crypto/x509/pcy_node.c
|
||||||
|
@@ -59,10 +59,15 @@ X509_POLICY_NODE *ossl_policy_level_find
|
||||||
|
X509_POLICY_NODE *ossl_policy_level_add_node(X509_POLICY_LEVEL *level,
|
||||||
|
X509_POLICY_DATA *data,
|
||||||
|
X509_POLICY_NODE *parent,
|
||||||
|
- X509_POLICY_TREE *tree)
|
||||||
|
+ X509_POLICY_TREE *tree,
|
||||||
|
+ int extra_data)
|
||||||
|
{
|
||||||
|
X509_POLICY_NODE *node;
|
||||||
|
|
||||||
|
+ /* Verify that the tree isn't too large. This mitigates CVE-2023-0464 */
|
||||||
|
+ if (tree->node_maximum > 0 && tree->node_count >= tree->node_maximum)
|
||||||
|
+ return NULL;
|
||||||
|
+
|
||||||
|
node = OPENSSL_zalloc(sizeof(*node));
|
||||||
|
if (node == NULL) {
|
||||||
|
ERR_raise(ERR_LIB_X509V3, ERR_R_MALLOC_FAILURE);
|
||||||
|
@@ -70,7 +75,7 @@ X509_POLICY_NODE *ossl_policy_level_add_
|
||||||
|
}
|
||||||
|
node->data = data;
|
||||||
|
node->parent = parent;
|
||||||
|
- if (level) {
|
||||||
|
+ if (level != NULL) {
|
||||||
|
if (OBJ_obj2nid(data->valid_policy) == NID_any_policy) {
|
||||||
|
if (level->anyPolicy)
|
||||||
|
goto node_error;
|
||||||
|
@@ -90,7 +95,7 @@ X509_POLICY_NODE *ossl_policy_level_add_
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
- if (tree) {
|
||||||
|
+ if (extra_data) {
|
||||||
|
if (tree->extra_data == NULL)
|
||||||
|
tree->extra_data = sk_X509_POLICY_DATA_new_null();
|
||||||
|
if (tree->extra_data == NULL){
|
||||||
|
@@ -103,6 +108,7 @@ X509_POLICY_NODE *ossl_policy_level_add_
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
+ tree->node_count++;
|
||||||
|
if (parent)
|
||||||
|
parent->nchild++;
|
||||||
|
|
||||||
|
--- a/crypto/x509/pcy_tree.c
|
||||||
|
+++ b/crypto/x509/pcy_tree.c
|
||||||
|
@@ -14,6 +14,17 @@
|
||||||
|
|
||||||
|
#include "pcy_local.h"
|
||||||
|
|
||||||
|
+/*
|
||||||
|
+ * If the maximum number of nodes in the policy tree isn't defined, set it to
|
||||||
|
+ * a generous default of 1000 nodes.
|
||||||
|
+ *
|
||||||
|
+ * Defining this to be zero means unlimited policy tree growth which opens the
|
||||||
|
+ * door on CVE-2023-0464.
|
||||||
|
+ */
|
||||||
|
+#ifndef OPENSSL_POLICY_TREE_NODES_MAX
|
||||||
|
+# define OPENSSL_POLICY_TREE_NODES_MAX 1000
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
static void expected_print(BIO *channel,
|
||||||
|
X509_POLICY_LEVEL *lev, X509_POLICY_NODE *node,
|
||||||
|
int indent)
|
||||||
|
@@ -163,6 +174,9 @@ static int tree_init(X509_POLICY_TREE **
|
||||||
|
return X509_PCY_TREE_INTERNAL;
|
||||||
|
}
|
||||||
|
|
||||||
|
+ /* Limit the growth of the tree to mitigate CVE-2023-0464 */
|
||||||
|
+ tree->node_maximum = OPENSSL_POLICY_TREE_NODES_MAX;
|
||||||
|
+
|
||||||
|
/*
|
||||||
|
* http://tools.ietf.org/html/rfc5280#section-6.1.2, figure 3.
|
||||||
|
*
|
||||||
|
@@ -180,7 +194,7 @@ static int tree_init(X509_POLICY_TREE **
|
||||||
|
if ((data = ossl_policy_data_new(NULL,
|
||||||
|
OBJ_nid2obj(NID_any_policy), 0)) == NULL)
|
||||||
|
goto bad_tree;
|
||||||
|
- if (ossl_policy_level_add_node(level, data, NULL, tree) == NULL) {
|
||||||
|
+ if (ossl_policy_level_add_node(level, data, NULL, tree, 1) == NULL) {
|
||||||
|
ossl_policy_data_free(data);
|
||||||
|
goto bad_tree;
|
||||||
|
}
|
||||||
|
@@ -239,7 +253,8 @@ static int tree_init(X509_POLICY_TREE **
|
||||||
|
* Return value: 1 on success, 0 otherwise
|
||||||
|
*/
|
||||||
|
static int tree_link_matching_nodes(X509_POLICY_LEVEL *curr,
|
||||||
|
- X509_POLICY_DATA *data)
|
||||||
|
+ X509_POLICY_DATA *data,
|
||||||
|
+ X509_POLICY_TREE *tree)
|
||||||
|
{
|
||||||
|
X509_POLICY_LEVEL *last = curr - 1;
|
||||||
|
int i, matched = 0;
|
||||||
|
@@ -249,13 +264,13 @@ static int tree_link_matching_nodes(X509
|
||||||
|
X509_POLICY_NODE *node = sk_X509_POLICY_NODE_value(last->nodes, i);
|
||||||
|
|
||||||
|
if (ossl_policy_node_match(last, node, data->valid_policy)) {
|
||||||
|
- if (ossl_policy_level_add_node(curr, data, node, NULL) == NULL)
|
||||||
|
+ if (ossl_policy_level_add_node(curr, data, node, tree, 0) == NULL)
|
||||||
|
return 0;
|
||||||
|
matched = 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!matched && last->anyPolicy) {
|
||||||
|
- if (ossl_policy_level_add_node(curr, data, last->anyPolicy, NULL) == NULL)
|
||||||
|
+ if (ossl_policy_level_add_node(curr, data, last->anyPolicy, tree, 0) == NULL)
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
return 1;
|
||||||
|
@@ -268,7 +283,8 @@ static int tree_link_matching_nodes(X509
|
||||||
|
* Return value: 1 on success, 0 otherwise.
|
||||||
|
*/
|
||||||
|
static int tree_link_nodes(X509_POLICY_LEVEL *curr,
|
||||||
|
- const X509_POLICY_CACHE *cache)
|
||||||
|
+ const X509_POLICY_CACHE *cache,
|
||||||
|
+ X509_POLICY_TREE *tree)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
|
||||||
|
@@ -276,7 +292,7 @@ static int tree_link_nodes(X509_POLICY_L
|
||||||
|
X509_POLICY_DATA *data = sk_X509_POLICY_DATA_value(cache->data, i);
|
||||||
|
|
||||||
|
/* Look for matching nodes in previous level */
|
||||||
|
- if (!tree_link_matching_nodes(curr, data))
|
||||||
|
+ if (!tree_link_matching_nodes(curr, data, tree))
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
return 1;
|
||||||
|
@@ -307,7 +323,7 @@ static int tree_add_unmatched(X509_POLIC
|
||||||
|
/* Curr may not have anyPolicy */
|
||||||
|
data->qualifier_set = cache->anyPolicy->qualifier_set;
|
||||||
|
data->flags |= POLICY_DATA_FLAG_SHARED_QUALIFIERS;
|
||||||
|
- if (ossl_policy_level_add_node(curr, data, node, tree) == NULL) {
|
||||||
|
+ if (ossl_policy_level_add_node(curr, data, node, tree, 1) == NULL) {
|
||||||
|
ossl_policy_data_free(data);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
@@ -370,7 +386,7 @@ static int tree_link_any(X509_POLICY_LEV
|
||||||
|
/* Finally add link to anyPolicy */
|
||||||
|
if (last->anyPolicy &&
|
||||||
|
ossl_policy_level_add_node(curr, cache->anyPolicy,
|
||||||
|
- last->anyPolicy, NULL) == NULL)
|
||||||
|
+ last->anyPolicy, tree, 0) == NULL)
|
||||||
|
return 0;
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
@@ -553,7 +569,7 @@ static int tree_calculate_user_set(X509_
|
||||||
|
extra->flags = POLICY_DATA_FLAG_SHARED_QUALIFIERS
|
||||||
|
| POLICY_DATA_FLAG_EXTRA_NODE;
|
||||||
|
node = ossl_policy_level_add_node(NULL, extra, anyPolicy->parent,
|
||||||
|
- tree);
|
||||||
|
+ tree, 1);
|
||||||
|
}
|
||||||
|
if (!tree->user_policies) {
|
||||||
|
tree->user_policies = sk_X509_POLICY_NODE_new_null();
|
||||||
|
@@ -580,7 +596,7 @@ static int tree_evaluate(X509_POLICY_TRE
|
||||||
|
|
||||||
|
for (i = 1; i < tree->nlevel; i++, curr++) {
|
||||||
|
cache = ossl_policy_cache_set(curr->cert);
|
||||||
|
- if (!tree_link_nodes(curr, cache))
|
||||||
|
+ if (!tree_link_nodes(curr, cache, tree))
|
||||||
|
return X509_PCY_TREE_INTERNAL;
|
||||||
|
|
||||||
|
if (!(curr->flags & X509_V_FLAG_INHIBIT_ANY)
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/test/recipes/80-test_policy_tree.t
|
||||||
|
@@ -0,0 +1,41 @@
|
||||||
|
+#! /usr/bin/env perl
|
||||||
|
+# Copyright 2023 The OpenSSL Project Authors. All Rights Reserved.
|
||||||
|
+#
|
||||||
|
+# Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||||
|
+# this file except in compliance with the License. You can obtain a copy
|
||||||
|
+# in the file LICENSE in the source distribution or at
|
||||||
|
+# https://www.openssl.org/source/license.html
|
||||||
|
+
|
||||||
|
+
|
||||||
|
+use strict;
|
||||||
|
+use warnings;
|
||||||
|
+
|
||||||
|
+use POSIX;
|
||||||
|
+use OpenSSL::Test qw/:DEFAULT srctop_file with data_file/;
|
||||||
|
+
|
||||||
|
+use OpenSSL::Test::Utils;
|
||||||
|
+use OpenSSL::Glob;
|
||||||
|
+
|
||||||
|
+setup("test_policy_tree");
|
||||||
|
+
|
||||||
|
+plan tests => 2;
|
||||||
|
+
|
||||||
|
+# The small pathological tree is expected to work
|
||||||
|
+my $small_chain = srctop_file("test", "recipes", "80-test_policy_tree_data",
|
||||||
|
+ "small_policy_tree.pem");
|
||||||
|
+my $small_leaf = srctop_file("test", "recipes", "80-test_policy_tree_data",
|
||||||
|
+ "small_leaf.pem");
|
||||||
|
+
|
||||||
|
+ok(run(app(["openssl", "verify", "-CAfile", $small_chain,
|
||||||
|
+ "-policy_check", $small_leaf])),
|
||||||
|
+ "test small policy tree");
|
||||||
|
+
|
||||||
|
+# The large pathological tree is expected to fail
|
||||||
|
+my $large_chain = srctop_file("test", "recipes", "80-test_policy_tree_data",
|
||||||
|
+ "large_policy_tree.pem");
|
||||||
|
+my $large_leaf = srctop_file("test", "recipes", "80-test_policy_tree_data",
|
||||||
|
+ "large_leaf.pem");
|
||||||
|
+
|
||||||
|
+ok(!run(app(["openssl", "verify", "-CAfile", $large_chain,
|
||||||
|
+ "-policy_check", $large_leaf])),
|
||||||
|
+ "test large policy tree");
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/test/recipes/80-test_policy_tree_data/large_leaf.pem
|
||||||
|
@@ -0,0 +1,11 @@
|
||||||
|
+-----BEGIN CERTIFICATE-----
|
||||||
|
+MIIBmTCCAT+gAwIBAgIBADAKBggqhkjOPQQDAjAWMRQwEgYDVQQDEwtQb2xpY3kg
|
||||||
|
+Q0EgMTAgFw0wMDAxMDEwMDAwMDBaGA8yMTAwMDEwMTAwMDAwMFowGjEYMBYGA1UE
|
||||||
|
+AxMPd3d3LmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEp6Qe
|
||||||
|
+jrN6A0ZjqaFbX/zO01aVYXH5kthBDTEO/fU4H0CdwqrfyMsFrObwssrTJcsmSFKP
|
||||||
|
+x1FYr8wT2wCACs19lqN4MHYwDgYDVR0PAQH/BAQDAgeAMBMGA1UdJQQMMAoGCCsG
|
||||||
|
+AQUFBwMBMAwGA1UdEwEB/wQCMAAwGgYDVR0RBBMwEYIPd3d3LmV4YW1wbGUuY29t
|
||||||
|
+MCUGA1UdIAQeMBwwDAYKYIZIAWUDAgEwATAMBgpghkgBZQMCATACMAoGCCqGSM49
|
||||||
|
+BAMCA0gAMEUCIDGT8SVBkWJEZ2EzXm8M895NrNRmfc8uoheP0KKv+ndHAiEA2Onr
|
||||||
|
+20J+zTaR7vONY/1DleMm7fGY3UxTobSHSvOKbfY=
|
||||||
|
+-----END CERTIFICATE-----
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/test/recipes/80-test_policy_tree_data/large_policy_tree.pem
|
||||||
|
@@ -0,0 +1,434 @@
|
||||||
|
+-----BEGIN CERTIFICATE-----
|
||||||
|
+MIICEDCCAbagAwIBAgIBATAKBggqhkjOPQQDAjAWMRQwEgYDVQQDEwtQb2xpY3kg
|
||||||
|
+Q0EgMjAgFw0wMDAxMDEwMDAwMDBaGA8yMTAwMDEwMTAwMDAwMFowFjEUMBIGA1UE
|
||||||
|
+AxMLUG9saWN5IENBIDEwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATgyLz1C0dD
|
||||||
|
+ib5J/QmoE4d+Nf5yvvlzjVZHWIu7iCMEqK67cnA1RtMp1d0xdiNQS6si3ExNPBF+
|
||||||
|
+ELdkP0E6x26Jo4HyMIHvMA4GA1UdDwEB/wQEAwICBDATBgNVHSUEDDAKBggrBgEF
|
||||||
|
+BQcDATAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBSs+ml5upH1h25oUB0Ep4vd
|
||||||
|
+SUdZ/DAlBgNVHSAEHjAcMAwGCmCGSAFlAwIBMAEwDAYKYIZIAWUDAgEwAjBxBgNV
|
||||||
|
+HSEEajBoMBgGCmCGSAFlAwIBMAEGCmCGSAFlAwIBMAEwGAYKYIZIAWUDAgEwAQYK
|
||||||
|
+YIZIAWUDAgEwAjAYBgpghkgBZQMCATACBgpghkgBZQMCATABMBgGCmCGSAFlAwIB
|
||||||
|
+MAIGCmCGSAFlAwIBMAIwCgYIKoZIzj0EAwIDSAAwRQIhAOME8j1/cMogNnuNCb0O
|
||||||
|
+RIOE9pLP4je78KJiP8CZm0iOAiALr8NI67orD/VpfRptkjCmOd7rTWMVOOJfBr6N
|
||||||
|
+VJFLjw==
|
||||||
|
+-----END CERTIFICATE-----
|
||||||
|
+-----BEGIN CERTIFICATE-----
|
||||||
|
+MIICDzCCAbagAwIBAgIBAjAKBggqhkjOPQQDAjAWMRQwEgYDVQQDEwtQb2xpY3kg
|
||||||
|
+Q0EgMzAgFw0wMDAxMDEwMDAwMDBaGA8yMTAwMDEwMTAwMDAwMFowFjEUMBIGA1UE
|
||||||
|
+AxMLUG9saWN5IENBIDIwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASIdzU/FF3Y
|
||||||
|
+rTsTX04fRIN2yrZwxvOAfZ6DuEgKRxEimJx1nCyETuMmfDowm52mx/Cyk08xorp8
|
||||||
|
+PhGEbacMd9kio4HyMIHvMA4GA1UdDwEB/wQEAwICBDATBgNVHSUEDDAKBggrBgEF
|
||||||
|
+BQcDATAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBSwok/8RfJbVGTzyF5jhWLc
|
||||||
|
+hO7pcDAlBgNVHSAEHjAcMAwGCmCGSAFlAwIBMAEwDAYKYIZIAWUDAgEwAjBxBgNV
|
||||||
|
+HSEEajBoMBgGCmCGSAFlAwIBMAEGCmCGSAFlAwIBMAEwGAYKYIZIAWUDAgEwAQYK
|
||||||
|
+YIZIAWUDAgEwAjAYBgpghkgBZQMCATACBgpghkgBZQMCATABMBgGCmCGSAFlAwIB
|
||||||
|
+MAIGCmCGSAFlAwIBMAIwCgYIKoZIzj0EAwIDRwAwRAIgYVF7bXxUuOzAZF6SmeIJ
|
||||||
|
+s+iL15bLSQ2rW7QDc6QYp9MCIAup6YokIcr8JaGttHmLaKbASQLxYDGHhfFIVZuI
|
||||||
|
+BDvT
|
||||||
|
+-----END CERTIFICATE-----
|
||||||
|
+-----BEGIN CERTIFICATE-----
|
||||||
|
+MIICEDCCAbagAwIBAgIBAzAKBggqhkjOPQQDAjAWMRQwEgYDVQQDEwtQb2xpY3kg
|
||||||
|
+Q0EgNDAgFw0wMDAxMDEwMDAwMDBaGA8yMTAwMDEwMTAwMDAwMFowFjEUMBIGA1UE
|
||||||
|
+AxMLUG9saWN5IENBIDMwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQ38Llxxj32
|
||||||
|
+H3NN4Z1V8IuRKXLNhdU4z+NbT1rahusEyAHF+z9VTjim+HHfqFKV1QyNOJZ4rMA9
|
||||||
|
+J/gODWsNCT4po4HyMIHvMA4GA1UdDwEB/wQEAwICBDATBgNVHSUEDDAKBggrBgEF
|
||||||
|
+BQcDATAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBS11YgFNKTx3a6kssIijnA9
|
||||||
|
+DiOhoTAlBgNVHSAEHjAcMAwGCmCGSAFlAwIBMAEwDAYKYIZIAWUDAgEwAjBxBgNV
|
||||||
|
+HSEEajBoMBgGCmCGSAFlAwIBMAEGCmCGSAFlAwIBMAEwGAYKYIZIAWUDAgEwAQYK
|
||||||
|
+YIZIAWUDAgEwAjAYBgpghkgBZQMCATACBgpghkgBZQMCATABMBgGCmCGSAFlAwIB
|
||||||
|
+MAIGCmCGSAFlAwIBMAIwCgYIKoZIzj0EAwIDSAAwRQIhAJXNZHMpvlnMfxhcG6EF
|
||||||
|
+Vw1pEXJ+iZnWT+Yu02a2zhamAiAiOKNhALBw/iKhQrwLo0cdx6UEfUKbaqTSGiax
|
||||||
|
+tHUylA==
|
||||||
|
+-----END CERTIFICATE-----
|
||||||
|
+-----BEGIN CERTIFICATE-----
|
||||||
|
+MIICEDCCAbagAwIBAgIBBDAKBggqhkjOPQQDAjAWMRQwEgYDVQQDEwtQb2xpY3kg
|
||||||
|
+Q0EgNTAgFw0wMDAxMDEwMDAwMDBaGA8yMTAwMDEwMTAwMDAwMFowFjEUMBIGA1UE
|
||||||
|
+AxMLUG9saWN5IENBIDQwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATo81HWQ/we
|
||||||
|
+egmoO/LMntQK1VQ9YzU627nblv/XWoOjEd/tBeE8+Un4jUnhZqNrP2TAzy48jEaT
|
||||||
|
+1DShCQNQGek7o4HyMIHvMA4GA1UdDwEB/wQEAwICBDATBgNVHSUEDDAKBggrBgEF
|
||||||
|
+BQcDATAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBS6/F38QgbZSHib0W1XtMfs
|
||||||
|
+4O5DTDAlBgNVHSAEHjAcMAwGCmCGSAFlAwIBMAEwDAYKYIZIAWUDAgEwAjBxBgNV
|
||||||
|
+HSEEajBoMBgGCmCGSAFlAwIBMAEGCmCGSAFlAwIBMAEwGAYKYIZIAWUDAgEwAQYK
|
||||||
|
+YIZIAWUDAgEwAjAYBgpghkgBZQMCATACBgpghkgBZQMCATABMBgGCmCGSAFlAwIB
|
||||||
|
+MAIGCmCGSAFlAwIBMAIwCgYIKoZIzj0EAwIDSAAwRQIgXMYCQWi5/6iQw+zqyEav
|
||||||
|
+CE7kOfTpm9GN4bZX5Eau5AACIQD0rDZwsjWf6hI2Hn8IlpwYVVC9bpxrAM/JmYuu
|
||||||
|
+79V/uw==
|
||||||
|
+-----END CERTIFICATE-----
|
||||||
|
+-----BEGIN CERTIFICATE-----
|
||||||
|
+MIICEDCCAbagAwIBAgIBBTAKBggqhkjOPQQDAjAWMRQwEgYDVQQDEwtQb2xpY3kg
|
||||||
|
+Q0EgNjAgFw0wMDAxMDEwMDAwMDBaGA8yMTAwMDEwMTAwMDAwMFowFjEUMBIGA1UE
|
||||||
|
+AxMLUG9saWN5IENBIDUwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARsPMjOkmzJ
|
||||||
|
+2jwT30mKUvAFYVgOlgcoXxYr61p54mbQMmmH49ABmJQMu5rjwjwYlYA3UzbEN9ki
|
||||||
|
+hMsJz/4JIrJGo4HyMIHvMA4GA1UdDwEB/wQEAwICBDATBgNVHSUEDDAKBggrBgEF
|
||||||
|
+BQcDATAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBQeflZRWUze+7jne9MkYYy5
|
||||||
|
+iWFgJDAlBgNVHSAEHjAcMAwGCmCGSAFlAwIBMAEwDAYKYIZIAWUDAgEwAjBxBgNV
|
||||||
|
+HSEEajBoMBgGCmCGSAFlAwIBMAEGCmCGSAFlAwIBMAEwGAYKYIZIAWUDAgEwAQYK
|
||||||
|
+YIZIAWUDAgEwAjAYBgpghkgBZQMCATACBgpghkgBZQMCATABMBgGCmCGSAFlAwIB
|
||||||
|
+MAIGCmCGSAFlAwIBMAIwCgYIKoZIzj0EAwIDSAAwRQIhAIN6BjMnPlixl3i6Z1Xa
|
||||||
|
+pZQt52MOCHPm0XzXDn2XlC9+AiAn146u8rbppdEGMFr21vfFZaktwEb0cZkC9fBp
|
||||||
|
+S1uKwQ==
|
||||||
|
+-----END CERTIFICATE-----
|
||||||
|
+-----BEGIN CERTIFICATE-----
|
||||||
|
+MIICEDCCAbagAwIBAgIBBjAKBggqhkjOPQQDAjAWMRQwEgYDVQQDEwtQb2xpY3kg
|
||||||
|
+Q0EgNzAgFw0wMDAxMDEwMDAwMDBaGA8yMTAwMDEwMTAwMDAwMFowFjEUMBIGA1UE
|
||||||
|
+AxMLUG9saWN5IENBIDYwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASVmpozZzxX
|
||||||
|
+f6rFinkqS0y8sfbOwcM0gNuR0x83mmZH5+a8W4ug5W80QiBaS3rHtwTsFHpCeQKq
|
||||||
|
+eJvfb/esgJu8o4HyMIHvMA4GA1UdDwEB/wQEAwICBDATBgNVHSUEDDAKBggrBgEF
|
||||||
|
+BQcDATAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBQPuF2sXR0vOHJynh57qefK
|
||||||
|
++h7RGDAlBgNVHSAEHjAcMAwGCmCGSAFlAwIBMAEwDAYKYIZIAWUDAgEwAjBxBgNV
|
||||||
|
+HSEEajBoMBgGCmCGSAFlAwIBMAEGCmCGSAFlAwIBMAEwGAYKYIZIAWUDAgEwAQYK
|
||||||
|
+YIZIAWUDAgEwAjAYBgpghkgBZQMCATACBgpghkgBZQMCATABMBgGCmCGSAFlAwIB
|
||||||
|
+MAIGCmCGSAFlAwIBMAIwCgYIKoZIzj0EAwIDSAAwRQIgDX0jHPq1alZoMbPDmbZp
|
||||||
|
+QYuM9UQagQ5KJgVU1B0Mh2ECIQCtdyfT2h5jZvz3lLKkQ9a6LddIuqsyNKDAxbpb
|
||||||
|
+PlBOOA==
|
||||||
|
+-----END CERTIFICATE-----
|
||||||
|
+-----BEGIN CERTIFICATE-----
|
||||||
|
+MIICEDCCAbagAwIBAgIBBzAKBggqhkjOPQQDAjAWMRQwEgYDVQQDEwtQb2xpY3kg
|
||||||
|
+Q0EgODAgFw0wMDAxMDEwMDAwMDBaGA8yMTAwMDEwMTAwMDAwMFowFjEUMBIGA1UE
|
||||||
|
+AxMLUG9saWN5IENBIDcwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASb+9fN9RLe
|
||||||
|
+SHGynsKXhLWGhIS/kZ6Yl97+h23xpjLaZUOzhn5VafXdmLrQ4BmqSMHqIKzcc8IB
|
||||||
|
+STV3NwO4NxPBo4HyMIHvMA4GA1UdDwEB/wQEAwICBDATBgNVHSUEDDAKBggrBgEF
|
||||||
|
+BQcDATAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTBF9x+MrsyqoCaTQ2kB7Bn
|
||||||
|
+tpK2qDAlBgNVHSAEHjAcMAwGCmCGSAFlAwIBMAEwDAYKYIZIAWUDAgEwAjBxBgNV
|
||||||
|
+HSEEajBoMBgGCmCGSAFlAwIBMAEGCmCGSAFlAwIBMAEwGAYKYIZIAWUDAgEwAQYK
|
||||||
|
+YIZIAWUDAgEwAjAYBgpghkgBZQMCATACBgpghkgBZQMCATABMBgGCmCGSAFlAwIB
|
||||||
|
+MAIGCmCGSAFlAwIBMAIwCgYIKoZIzj0EAwIDSAAwRQIhAI37Di/5MrSj2clr+2pX
|
||||||
|
+iXzeDIvlaxzVetyH3ibUZZBSAiA41aPIssHi9evv2mZonEvXY8g+DKbh/3L2mSub
|
||||||
|
+/AyLoA==
|
||||||
|
+-----END CERTIFICATE-----
|
||||||
|
+-----BEGIN CERTIFICATE-----
|
||||||
|
+MIICETCCAbagAwIBAgIBCDAKBggqhkjOPQQDAjAWMRQwEgYDVQQDEwtQb2xpY3kg
|
||||||
|
+Q0EgOTAgFw0wMDAxMDEwMDAwMDBaGA8yMTAwMDEwMTAwMDAwMFowFjEUMBIGA1UE
|
||||||
|
+AxMLUG9saWN5IENBIDgwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASrRS12/zEP
|
||||||
|
+RUNye9SLadN4xK+xfTwyXfxeC+jam+J98lOMcHz6abnLpk5tJ7wab4Pkygsbj1V2
|
||||||
|
+STxeW+YH23dto4HyMIHvMA4GA1UdDwEB/wQEAwICBDATBgNVHSUEDDAKBggrBgEF
|
||||||
|
+BQcDATAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBQYpYFLhosbir7KoyYdehsQ
|
||||||
|
+6DdLfzAlBgNVHSAEHjAcMAwGCmCGSAFlAwIBMAEwDAYKYIZIAWUDAgEwAjBxBgNV
|
||||||
|
+HSEEajBoMBgGCmCGSAFlAwIBMAEGCmCGSAFlAwIBMAEwGAYKYIZIAWUDAgEwAQYK
|
||||||
|
+YIZIAWUDAgEwAjAYBgpghkgBZQMCATACBgpghkgBZQMCATABMBgGCmCGSAFlAwIB
|
||||||
|
+MAIGCmCGSAFlAwIBMAIwCgYIKoZIzj0EAwIDSQAwRgIhAPTCN+zWFG2cFzJ+nlfg
|
||||||
|
+JMY4U2e3vqTQmFeBXYlBASb9AiEA0KvsyNwloF1YeeaYcP5iHoRGRo8UMD3QWKEE
|
||||||
|
+vWI14Uk=
|
||||||
|
+-----END CERTIFICATE-----
|
||||||
|
+-----BEGIN CERTIFICATE-----
|
||||||
|
+MIICEDCCAbegAwIBAgIBCTAKBggqhkjOPQQDAjAXMRUwEwYDVQQDEwxQb2xpY3kg
|
||||||
|
+Q0EgMTAwIBcNMDAwMTAxMDAwMDAwWhgPMjEwMDAxMDEwMDAwMDBaMBYxFDASBgNV
|
||||||
|
+BAMTC1BvbGljeSBDQSA5MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEoR4udEgt
|
||||||
|
+usb9f946+Xznm7Q3OaW4DTZjO7wqX1I+27zDp0JrUbCZwtm0Cw+pYkG5kPpNcFTK
|
||||||
|
+7yG3YgqM1sT+6aOB8jCB7zAOBgNVHQ8BAf8EBAMCAgQwEwYDVR0lBAwwCgYIKwYB
|
||||||
|
+BQUHAwEwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUjgtOHvFBcUQ03AKUbvuJ
|
||||||
|
+IWO5lzUwJQYDVR0gBB4wHDAMBgpghkgBZQMCATABMAwGCmCGSAFlAwIBMAIwcQYD
|
||||||
|
+VR0hBGowaDAYBgpghkgBZQMCATABBgpghkgBZQMCATABMBgGCmCGSAFlAwIBMAEG
|
||||||
|
+CmCGSAFlAwIBMAIwGAYKYIZIAWUDAgEwAgYKYIZIAWUDAgEwATAYBgpghkgBZQMC
|
||||||
|
+ATACBgpghkgBZQMCATACMAoGCCqGSM49BAMCA0cAMEQCICIboTAzG1DvCY/0tA/o
|
||||||
|
+l18zrW9qKVnt4mxih5JQe4fOAiBOF2ZeUT2/ZtdFhZmg+zl/fGrQ1xEx09/S956k
|
||||||
|
+Ig4S9Q==
|
||||||
|
+-----END CERTIFICATE-----
|
||||||
|
+-----BEGIN CERTIFICATE-----
|
||||||
|
+MIICEjCCAbigAwIBAgIBCjAKBggqhkjOPQQDAjAXMRUwEwYDVQQDEwxQb2xpY3kg
|
||||||
|
+Q0EgMTEwIBcNMDAwMTAxMDAwMDAwWhgPMjEwMDAxMDEwMDAwMDBaMBcxFTATBgNV
|
||||||
|
+BAMTDFBvbGljeSBDQSAxMDBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABLxetqJp
|
||||||
|
+VR6apJytboxFCCooQ7jVcc7yoHhjlH8HsaJS3GrWpyMgiqOfyWt4KFMynKkgCU1K
|
||||||
|
+1QcU9aC5BfRQpyWjgfIwge8wDgYDVR0PAQH/BAQDAgIEMBMGA1UdJQQMMAoGCCsG
|
||||||
|
+AQUFBwMBMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFD6etMtD6Qpa7TjVQBgV
|
||||||
|
+/4PhZP4DMCUGA1UdIAQeMBwwDAYKYIZIAWUDAgEwATAMBgpghkgBZQMCATACMHEG
|
||||||
|
+A1UdIQRqMGgwGAYKYIZIAWUDAgEwAQYKYIZIAWUDAgEwATAYBgpghkgBZQMCATAB
|
||||||
|
+BgpghkgBZQMCATACMBgGCmCGSAFlAwIBMAIGCmCGSAFlAwIBMAEwGAYKYIZIAWUD
|
||||||
|
+AgEwAgYKYIZIAWUDAgEwAjAKBggqhkjOPQQDAgNIADBFAiEA+5uiOjJoq5nU7lKN
|
||||||
|
+rZtBdYNqUKvHuYB+jiNEfWvxx2cCIFZEJCGw8fzqkAyGWkLe10w8PUzPM64nh757
|
||||||
|
+pEtxCzZh
|
||||||
|
+-----END CERTIFICATE-----
|
||||||
|
+-----BEGIN CERTIFICATE-----
|
||||||
|
+MIICEjCCAbigAwIBAgIBCzAKBggqhkjOPQQDAjAXMRUwEwYDVQQDEwxQb2xpY3kg
|
||||||
|
+Q0EgMTIwIBcNMDAwMTAxMDAwMDAwWhgPMjEwMDAxMDEwMDAwMDBaMBcxFTATBgNV
|
||||||
|
+BAMTDFBvbGljeSBDQSAxMTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABPQuXEeo
|
||||||
|
+BrbyENdz9HqAoWMSQx1BErsUcQaneq3L0/VHHJBPKihb8s4nB/2yZaEarr8LFAvi
|
||||||
|
+ofx+4egydkP0mJ+jgfIwge8wDgYDVR0PAQH/BAQDAgIEMBMGA1UdJQQMMAoGCCsG
|
||||||
|
+AQUFBwMBMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFIoC4qL79Uy3+m26Y+ch
|
||||||
|
++sE6gCOMMCUGA1UdIAQeMBwwDAYKYIZIAWUDAgEwATAMBgpghkgBZQMCATACMHEG
|
||||||
|
+A1UdIQRqMGgwGAYKYIZIAWUDAgEwAQYKYIZIAWUDAgEwATAYBgpghkgBZQMCATAB
|
||||||
|
+BgpghkgBZQMCATACMBgGCmCGSAFlAwIBMAIGCmCGSAFlAwIBMAEwGAYKYIZIAWUD
|
||||||
|
+AgEwAgYKYIZIAWUDAgEwAjAKBggqhkjOPQQDAgNIADBFAiEAx/vMDhaH4EYTM2v9
|
||||||
|
+GeM1xTP9pNRgak69JQLKLu1VM1YCIF1RYC8Fma5Bc0cZAYY+Gj7dEf9qHj1TODA5
|
||||||
|
+C9es2CPY
|
||||||
|
+-----END CERTIFICATE-----
|
||||||
|
+-----BEGIN CERTIFICATE-----
|
||||||
|
+MIICETCCAbigAwIBAgIBDDAKBggqhkjOPQQDAjAXMRUwEwYDVQQDEwxQb2xpY3kg
|
||||||
|
+Q0EgMTMwIBcNMDAwMTAxMDAwMDAwWhgPMjEwMDAxMDEwMDAwMDBaMBcxFTATBgNV
|
||||||
|
+BAMTDFBvbGljeSBDQSAxMjBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABDlEv73o
|
||||||
|
+ej8Xvc3UodhSHkech80DbuBKdeldOTrRp6ZaVUP3vMgjNUJkh4WkvP3UVTe5SV4D
|
||||||
|
+zQXDIiwAEJu+zdmjgfIwge8wDgYDVR0PAQH/BAQDAgIEMBMGA1UdJQQMMAoGCCsG
|
||||||
|
+AQUFBwMBMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFCAn0wYXyRdliJOBFvvJ
|
||||||
|
+eZoGTiyOMCUGA1UdIAQeMBwwDAYKYIZIAWUDAgEwATAMBgpghkgBZQMCATACMHEG
|
||||||
|
+A1UdIQRqMGgwGAYKYIZIAWUDAgEwAQYKYIZIAWUDAgEwATAYBgpghkgBZQMCATAB
|
||||||
|
+BgpghkgBZQMCATACMBgGCmCGSAFlAwIBMAIGCmCGSAFlAwIBMAEwGAYKYIZIAWUD
|
||||||
|
+AgEwAgYKYIZIAWUDAgEwAjAKBggqhkjOPQQDAgNHADBEAiAo2PPmLBZpcT0bst/C
|
||||||
|
+SXvnl3gztIZu89O1MKsNwFcM9QIgIzqZx/o9MF/fP7zbLWErVcUQViOGiCRBLVh7
|
||||||
|
+ppb7CoA=
|
||||||
|
+-----END CERTIFICATE-----
|
||||||
|
+-----BEGIN CERTIFICATE-----
|
||||||
|
+MIICEzCCAbigAwIBAgIBDTAKBggqhkjOPQQDAjAXMRUwEwYDVQQDEwxQb2xpY3kg
|
||||||
|
+Q0EgMTQwIBcNMDAwMTAxMDAwMDAwWhgPMjEwMDAxMDEwMDAwMDBaMBcxFTATBgNV
|
||||||
|
+BAMTDFBvbGljeSBDQSAxMzBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABB8mgAoN
|
||||||
|
+rmFo937IBKXKuxHedUjOL7y3cpDYD1H3C4HRDBQDVOL31lC5kJUhS4HBLvJQwebR
|
||||||
|
+2kW35E3AnhbY/oKjgfIwge8wDgYDVR0PAQH/BAQDAgIEMBMGA1UdJQQMMAoGCCsG
|
||||||
|
+AQUFBwMBMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFBGbO20Xp/q0fPChjLHL
|
||||||
|
+WuJwSNc1MCUGA1UdIAQeMBwwDAYKYIZIAWUDAgEwATAMBgpghkgBZQMCATACMHEG
|
||||||
|
+A1UdIQRqMGgwGAYKYIZIAWUDAgEwAQYKYIZIAWUDAgEwATAYBgpghkgBZQMCATAB
|
||||||
|
+BgpghkgBZQMCATACMBgGCmCGSAFlAwIBMAIGCmCGSAFlAwIBMAEwGAYKYIZIAWUD
|
||||||
|
+AgEwAgYKYIZIAWUDAgEwAjAKBggqhkjOPQQDAgNJADBGAiEA3qGzdevdYfmiSBj9
|
||||||
|
+t9oE8hfEP+APqGiStlOLKD6xVK0CIQDq9cVa2KXMEz7YwmMO3lxoQFDPEXftbRaC
|
||||||
|
+edFB7q/YXg==
|
||||||
|
+-----END CERTIFICATE-----
|
||||||
|
+-----BEGIN CERTIFICATE-----
|
||||||
|
+MIICEzCCAbigAwIBAgIBDjAKBggqhkjOPQQDAjAXMRUwEwYDVQQDEwxQb2xpY3kg
|
||||||
|
+Q0EgMTUwIBcNMDAwMTAxMDAwMDAwWhgPMjEwMDAxMDEwMDAwMDBaMBcxFTATBgNV
|
||||||
|
+BAMTDFBvbGljeSBDQSAxNDBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABHDiOMtx
|
||||||
|
+5sfJs/WDnw0xS5NYlkbgy2eOZHAmC/jhRp6cjShZrr2/S4IJsH8B2VMcYAHgum6a
|
||||||
|
+eMjqWFIMxIjN5xyjgfIwge8wDgYDVR0PAQH/BAQDAgIEMBMGA1UdJQQMMAoGCCsG
|
||||||
|
+AQUFBwMBMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFOWtYUeAPk66m0o6Z7ax
|
||||||
|
+1RN42wmkMCUGA1UdIAQeMBwwDAYKYIZIAWUDAgEwATAMBgpghkgBZQMCATACMHEG
|
||||||
|
+A1UdIQRqMGgwGAYKYIZIAWUDAgEwAQYKYIZIAWUDAgEwATAYBgpghkgBZQMCATAB
|
||||||
|
+BgpghkgBZQMCATACMBgGCmCGSAFlAwIBMAIGCmCGSAFlAwIBMAEwGAYKYIZIAWUD
|
||||||
|
+AgEwAgYKYIZIAWUDAgEwAjAKBggqhkjOPQQDAgNJADBGAiEA+AcazVKKPfqkpcJw
|
||||||
|
+rkXWIyZrTe+1PNETQzaJCooGNGkCIQDdfHf1I78e+ogaDcjkDe0s3R9VhkvjCty6
|
||||||
|
+uKKFtNGHMQ==
|
||||||
|
+-----END CERTIFICATE-----
|
||||||
|
+-----BEGIN CERTIFICATE-----
|
||||||
|
+MIICEjCCAbigAwIBAgIBDzAKBggqhkjOPQQDAjAXMRUwEwYDVQQDEwxQb2xpY3kg
|
||||||
|
+Q0EgMTYwIBcNMDAwMTAxMDAwMDAwWhgPMjEwMDAxMDEwMDAwMDBaMBcxFTATBgNV
|
||||||
|
+BAMTDFBvbGljeSBDQSAxNTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABKCkdSYz
|
||||||
|
++zyHItG2rQSyCh018b4bu9Zrw8nzkCBgkT2IyycNtpabYkWhxcEL29ZFqBnB+l7N
|
||||||
|
+5fYmHl5CmflJPh+jgfIwge8wDgYDVR0PAQH/BAQDAgIEMBMGA1UdJQQMMAoGCCsG
|
||||||
|
+AQUFBwMBMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFNanrmjMEN3PndPGeucm
|
||||||
|
+mST9ucNWMCUGA1UdIAQeMBwwDAYKYIZIAWUDAgEwATAMBgpghkgBZQMCATACMHEG
|
||||||
|
+A1UdIQRqMGgwGAYKYIZIAWUDAgEwAQYKYIZIAWUDAgEwATAYBgpghkgBZQMCATAB
|
||||||
|
+BgpghkgBZQMCATACMBgGCmCGSAFlAwIBMAIGCmCGSAFlAwIBMAEwGAYKYIZIAWUD
|
||||||
|
+AgEwAgYKYIZIAWUDAgEwAjAKBggqhkjOPQQDAgNIADBFAiAFt48yhTTv0rP29N8H
|
||||||
|
+yRhAQGfnV4t1b8JucixLSfe32QIhAOef6iiwLxbBOMUn5ZN/WAK5TERem6DLSzWN
|
||||||
|
+/PTXHAAt
|
||||||
|
+-----END CERTIFICATE-----
|
||||||
|
+-----BEGIN CERTIFICATE-----
|
||||||
|
+MIICETCCAbigAwIBAgIBEDAKBggqhkjOPQQDAjAXMRUwEwYDVQQDEwxQb2xpY3kg
|
||||||
|
+Q0EgMTcwIBcNMDAwMTAxMDAwMDAwWhgPMjEwMDAxMDEwMDAwMDBaMBcxFTATBgNV
|
||||||
|
+BAMTDFBvbGljeSBDQSAxNjBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABH5txyDp
|
||||||
|
+DfRsIyYPTAQ+fuxk08E3/tpChVWoog4XQvod61wcUO1/nhoTGNKZZOhN5uhKWJWb
|
||||||
|
+1futz+XxV2QxTCyjgfIwge8wDgYDVR0PAQH/BAQDAgIEMBMGA1UdJQQMMAoGCCsG
|
||||||
|
+AQUFBwMBMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFHSlcxgh3gxgVag1JvAk
|
||||||
|
+zbHlgMbEMCUGA1UdIAQeMBwwDAYKYIZIAWUDAgEwATAMBgpghkgBZQMCATACMHEG
|
||||||
|
+A1UdIQRqMGgwGAYKYIZIAWUDAgEwAQYKYIZIAWUDAgEwATAYBgpghkgBZQMCATAB
|
||||||
|
+BgpghkgBZQMCATACMBgGCmCGSAFlAwIBMAIGCmCGSAFlAwIBMAEwGAYKYIZIAWUD
|
||||||
|
+AgEwAgYKYIZIAWUDAgEwAjAKBggqhkjOPQQDAgNHADBEAiA9Ee47PnxqW0QmELB+
|
||||||
|
+dd90Fz8wcQFZlNmkPW4Oq2xr/wIgGlxfutQq7l3TU5hyyO0Lh01AHn2DC5KPFPwE
|
||||||
|
+l8S9VeY=
|
||||||
|
+-----END CERTIFICATE-----
|
||||||
|
+-----BEGIN CERTIFICATE-----
|
||||||
|
+MIICEzCCAbigAwIBAgIBETAKBggqhkjOPQQDAjAXMRUwEwYDVQQDEwxQb2xpY3kg
|
||||||
|
+Q0EgMTgwIBcNMDAwMTAxMDAwMDAwWhgPMjEwMDAxMDEwMDAwMDBaMBcxFTATBgNV
|
||||||
|
+BAMTDFBvbGljeSBDQSAxNzBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABAJvlQKB
|
||||||
|
+gJZ+Tysa6iwhllPXCeJrkan6WUm+oqOIY02/SpI5Mba1Kwg73Fsswx3Eywt8sxA2
|
||||||
|
+4fiaqwg+xZoil06jgfIwge8wDgYDVR0PAQH/BAQDAgIEMBMGA1UdJQQMMAoGCCsG
|
||||||
|
+AQUFBwMBMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFM/udZ1ib8qDfShdfdfX
|
||||||
|
+8gL6w7VMMCUGA1UdIAQeMBwwDAYKYIZIAWUDAgEwATAMBgpghkgBZQMCATACMHEG
|
||||||
|
+A1UdIQRqMGgwGAYKYIZIAWUDAgEwAQYKYIZIAWUDAgEwATAYBgpghkgBZQMCATAB
|
||||||
|
+BgpghkgBZQMCATACMBgGCmCGSAFlAwIBMAIGCmCGSAFlAwIBMAEwGAYKYIZIAWUD
|
||||||
|
+AgEwAgYKYIZIAWUDAgEwAjAKBggqhkjOPQQDAgNJADBGAiEA6kK7vAYF2TPXzywn
|
||||||
|
++SDLsiGbU6Sj8aTtsJZf9DmhKr4CIQCt4FfI7IWinqNlURXe4HSBPsekcQkOpwjK
|
||||||
|
+PuJRx3fuFw==
|
||||||
|
+-----END CERTIFICATE-----
|
||||||
|
+-----BEGIN CERTIFICATE-----
|
||||||
|
+MIICEzCCAbigAwIBAgIBEjAKBggqhkjOPQQDAjAXMRUwEwYDVQQDEwxQb2xpY3kg
|
||||||
|
+Q0EgMTkwIBcNMDAwMTAxMDAwMDAwWhgPMjEwMDAxMDEwMDAwMDBaMBcxFTATBgNV
|
||||||
|
+BAMTDFBvbGljeSBDQSAxODBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABEerejCw
|
||||||
|
+gAy7GecLVbQw6eL8k1cGWwLt+wl3sn8he8fA0I+KoFfcOCgtvOF59RMXnjZ1+7OC
|
||||||
|
+kz3mNDVSbKY6KO2jgfIwge8wDgYDVR0PAQH/BAQDAgIEMBMGA1UdJQQMMAoGCCsG
|
||||||
|
+AQUFBwMBMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFM0OUOtOKTcTMRXGQwbw
|
||||||
|
+GOoLCOEYMCUGA1UdIAQeMBwwDAYKYIZIAWUDAgEwATAMBgpghkgBZQMCATACMHEG
|
||||||
|
+A1UdIQRqMGgwGAYKYIZIAWUDAgEwAQYKYIZIAWUDAgEwATAYBgpghkgBZQMCATAB
|
||||||
|
+BgpghkgBZQMCATACMBgGCmCGSAFlAwIBMAIGCmCGSAFlAwIBMAEwGAYKYIZIAWUD
|
||||||
|
+AgEwAgYKYIZIAWUDAgEwAjAKBggqhkjOPQQDAgNJADBGAiEAziPsm2dArB/3ILqm
|
||||||
|
+04mZl8/DX6dB4EmU+FPF2UpAeLwCIQCofc27tisg3L1mPNeiwZ26+rDe5SdixiUc
|
||||||
|
+S3KWOJ1cTg==
|
||||||
|
+-----END CERTIFICATE-----
|
||||||
|
+-----BEGIN CERTIFICATE-----
|
||||||
|
+MIICEjCCAbigAwIBAgIBEzAKBggqhkjOPQQDAjAXMRUwEwYDVQQDEwxQb2xpY3kg
|
||||||
|
+Q0EgMjAwIBcNMDAwMTAxMDAwMDAwWhgPMjEwMDAxMDEwMDAwMDBaMBcxFTATBgNV
|
||||||
|
+BAMTDFBvbGljeSBDQSAxOTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABPmB5spr
|
||||||
|
+C64/21ssufcbshGnQtAWbk2o2l+ej6pMMPIZhmNyvM450L3dFX12UBNcaERCABmr
|
||||||
|
+BEJL7IubGWE9CVOjgfIwge8wDgYDVR0PAQH/BAQDAgIEMBMGA1UdJQQMMAoGCCsG
|
||||||
|
+AQUFBwMBMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFJCh/1mh0Hl2+LE0osUv
|
||||||
|
+OJCmV3IYMCUGA1UdIAQeMBwwDAYKYIZIAWUDAgEwATAMBgpghkgBZQMCATACMHEG
|
||||||
|
+A1UdIQRqMGgwGAYKYIZIAWUDAgEwAQYKYIZIAWUDAgEwATAYBgpghkgBZQMCATAB
|
||||||
|
+BgpghkgBZQMCATACMBgGCmCGSAFlAwIBMAIGCmCGSAFlAwIBMAEwGAYKYIZIAWUD
|
||||||
|
+AgEwAgYKYIZIAWUDAgEwAjAKBggqhkjOPQQDAgNIADBFAiEAtxMIkO4xCRSQCU6d
|
||||||
|
+0jt+Go4xj/R4bQFWbZrlS9+fYUECICuWAgT3evhoo34o04pU84UaYOvO5V0GJsTt
|
||||||
|
+hrS1v3hT
|
||||||
|
+-----END CERTIFICATE-----
|
||||||
|
+-----BEGIN CERTIFICATE-----
|
||||||
|
+MIICEzCCAbigAwIBAgIBFDAKBggqhkjOPQQDAjAXMRUwEwYDVQQDEwxQb2xpY3kg
|
||||||
|
+Q0EgMjEwIBcNMDAwMTAxMDAwMDAwWhgPMjEwMDAxMDEwMDAwMDBaMBcxFTATBgNV
|
||||||
|
+BAMTDFBvbGljeSBDQSAyMDBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABHdvTDYo
|
||||||
|
+M/padIV3LdTnrzwMy1HSTeJ2aTUalkVV17uL2i3C51rWM2pl+qlRordq6W2GboMz
|
||||||
|
+/+78HhKMcCrMWKCjgfIwge8wDgYDVR0PAQH/BAQDAgIEMBMGA1UdJQQMMAoGCCsG
|
||||||
|
+AQUFBwMBMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFAbZN0eSPw3MyvWIEix6
|
||||||
|
+GnYRIiFkMCUGA1UdIAQeMBwwDAYKYIZIAWUDAgEwATAMBgpghkgBZQMCATACMHEG
|
||||||
|
+A1UdIQRqMGgwGAYKYIZIAWUDAgEwAQYKYIZIAWUDAgEwATAYBgpghkgBZQMCATAB
|
||||||
|
+BgpghkgBZQMCATACMBgGCmCGSAFlAwIBMAIGCmCGSAFlAwIBMAEwGAYKYIZIAWUD
|
||||||
|
+AgEwAgYKYIZIAWUDAgEwAjAKBggqhkjOPQQDAgNJADBGAiEAlaapLXHwGNkeEwc0
|
||||||
|
+jsY2XhuR3RlVhD4T2k/QyJRQ0s0CIQD5E+e+5QTe5s+534Lwcxe2iFb3oFm+8g81
|
||||||
|
+OBVtfmSMGg==
|
||||||
|
+-----END CERTIFICATE-----
|
||||||
|
+-----BEGIN CERTIFICATE-----
|
||||||
|
+MIICEjCCAbigAwIBAgIBFTAKBggqhkjOPQQDAjAXMRUwEwYDVQQDEwxQb2xpY3kg
|
||||||
|
+Q0EgMjIwIBcNMDAwMTAxMDAwMDAwWhgPMjEwMDAxMDEwMDAwMDBaMBcxFTATBgNV
|
||||||
|
+BAMTDFBvbGljeSBDQSAyMTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABLTu8R5Y
|
||||||
|
+7Po4W05hWperfod6mXezwWgAVk2RW2EG2vy4NeZeML2EFhg2geNc6N5Goep9t7pn
|
||||||
|
+d+BtORRvR75oCDijgfIwge8wDgYDVR0PAQH/BAQDAgIEMBMGA1UdJQQMMAoGCCsG
|
||||||
|
+AQUFBwMBMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFNs0d2vXsRj3YYsBrWDo
|
||||||
|
+jrvcEA+eMCUGA1UdIAQeMBwwDAYKYIZIAWUDAgEwATAMBgpghkgBZQMCATACMHEG
|
||||||
|
+A1UdIQRqMGgwGAYKYIZIAWUDAgEwAQYKYIZIAWUDAgEwATAYBgpghkgBZQMCATAB
|
||||||
|
+BgpghkgBZQMCATACMBgGCmCGSAFlAwIBMAIGCmCGSAFlAwIBMAEwGAYKYIZIAWUD
|
||||||
|
+AgEwAgYKYIZIAWUDAgEwAjAKBggqhkjOPQQDAgNIADBFAiBB603Ui+L60FcUWPrB
|
||||||
|
+Ch06hmgle2u0P07Go/XjTk00ZQIhALGhNArJFEY0gu+XUtyKEZt7BZ0/sh5dtLDP
|
||||||
|
+xkRgR6Wh
|
||||||
|
+-----END CERTIFICATE-----
|
||||||
|
+-----BEGIN CERTIFICATE-----
|
||||||
|
+MIICEzCCAbigAwIBAgIBFjAKBggqhkjOPQQDAjAXMRUwEwYDVQQDEwxQb2xpY3kg
|
||||||
|
+Q0EgMjMwIBcNMDAwMTAxMDAwMDAwWhgPMjEwMDAxMDEwMDAwMDBaMBcxFTATBgNV
|
||||||
|
+BAMTDFBvbGljeSBDQSAyMjBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABPXpzC9/
|
||||||
|
+KGblQyjhdcS0a8KBPAiS7c0n+V0i9JItbyze38Ncrctp0wIGHZLjRoB4DZYX1I8e
|
||||||
|
+K5C7KVeUPEE9eOGjgfIwge8wDgYDVR0PAQH/BAQDAgIEMBMGA1UdJQQMMAoGCCsG
|
||||||
|
+AQUFBwMBMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFISsw9orkX/cBVWcK5KA
|
||||||
|
+//kldz8HMCUGA1UdIAQeMBwwDAYKYIZIAWUDAgEwATAMBgpghkgBZQMCATACMHEG
|
||||||
|
+A1UdIQRqMGgwGAYKYIZIAWUDAgEwAQYKYIZIAWUDAgEwATAYBgpghkgBZQMCATAB
|
||||||
|
+BgpghkgBZQMCATACMBgGCmCGSAFlAwIBMAIGCmCGSAFlAwIBMAEwGAYKYIZIAWUD
|
||||||
|
+AgEwAgYKYIZIAWUDAgEwAjAKBggqhkjOPQQDAgNJADBGAiEA1gazdApLS91ql8Am
|
||||||
|
+4gb4Ku7Lgll4jV+BrLkbABE2cI0CIQCEH1GUJ6ARJB1GdcHrPyaLgeZ5jV2p63UW
|
||||||
|
+UV2QL6aETA==
|
||||||
|
+-----END CERTIFICATE-----
|
||||||
|
+-----BEGIN CERTIFICATE-----
|
||||||
|
+MIICEjCCAbigAwIBAgIBFzAKBggqhkjOPQQDAjAXMRUwEwYDVQQDEwxQb2xpY3kg
|
||||||
|
+Q0EgMjQwIBcNMDAwMTAxMDAwMDAwWhgPMjEwMDAxMDEwMDAwMDBaMBcxFTATBgNV
|
||||||
|
+BAMTDFBvbGljeSBDQSAyMzBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABKdweprb
|
||||||
|
+RZmuUk4og1Xa9Skb1vu7jsLozlm9CtDhKLbJ+cDX/VeKj/b8FuvakBO3L1QV5XU0
|
||||||
|
+iFswsIVBVZ3m+TyjgfIwge8wDgYDVR0PAQH/BAQDAgIEMBMGA1UdJQQMMAoGCCsG
|
||||||
|
+AQUFBwMBMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFPgcEbHfKHt0o/PCS0kD
|
||||||
|
+XWW9XkqMMCUGA1UdIAQeMBwwDAYKYIZIAWUDAgEwATAMBgpghkgBZQMCATACMHEG
|
||||||
|
+A1UdIQRqMGgwGAYKYIZIAWUDAgEwAQYKYIZIAWUDAgEwATAYBgpghkgBZQMCATAB
|
||||||
|
+BgpghkgBZQMCATACMBgGCmCGSAFlAwIBMAIGCmCGSAFlAwIBMAEwGAYKYIZIAWUD
|
||||||
|
+AgEwAgYKYIZIAWUDAgEwAjAKBggqhkjOPQQDAgNIADBFAiEA9XDj0w5qMS/tLlr9
|
||||||
|
+Z2j8JtVR4M7pF/Wx2U43vmPFJEACIBAlAiUnCm1Nfj16t2cojrW+m2t1cU80ihmj
|
||||||
|
+Ld1U+dRD
|
||||||
|
+-----END CERTIFICATE-----
|
||||||
|
+-----BEGIN CERTIFICATE-----
|
||||||
|
+MIICETCCAbigAwIBAgIBGDAKBggqhkjOPQQDAjAXMRUwEwYDVQQDEwxQb2xpY3kg
|
||||||
|
+Q0EgMjUwIBcNMDAwMTAxMDAwMDAwWhgPMjEwMDAxMDEwMDAwMDBaMBcxFTATBgNV
|
||||||
|
+BAMTDFBvbGljeSBDQSAyNDBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABAq2PphK
|
||||||
|
+4oVsc+ml3zskBLiMa+dz64k+PrrfKIGSG2Ri5Du/orj0dO9639LeCkkMwWpXAfSx
|
||||||
|
+wxHHQX0I1KwsudGjgfIwge8wDgYDVR0PAQH/BAQDAgIEMBMGA1UdJQQMMAoGCCsG
|
||||||
|
+AQUFBwMBMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFEqcfkso+ynKq2eFaJy8
|
||||||
|
+mzNBdN2PMCUGA1UdIAQeMBwwDAYKYIZIAWUDAgEwATAMBgpghkgBZQMCATACMHEG
|
||||||
|
+A1UdIQRqMGgwGAYKYIZIAWUDAgEwAQYKYIZIAWUDAgEwATAYBgpghkgBZQMCATAB
|
||||||
|
+BgpghkgBZQMCATACMBgGCmCGSAFlAwIBMAIGCmCGSAFlAwIBMAEwGAYKYIZIAWUD
|
||||||
|
+AgEwAgYKYIZIAWUDAgEwAjAKBggqhkjOPQQDAgNHADBEAiBZ71jDD33HFFqMkLAW
|
||||||
|
+gTAGMmzh9b/vZ8jAclPDKHRghQIgf2GBOF1eEF8Ino9F1n1ia5c3EryvXnvVoklw
|
||||||
|
+cjMIQ5g=
|
||||||
|
+-----END CERTIFICATE-----
|
||||||
|
+-----BEGIN CERTIFICATE-----
|
||||||
|
+MIICEjCCAbigAwIBAgIBGTAKBggqhkjOPQQDAjAXMRUwEwYDVQQDEwxQb2xpY3kg
|
||||||
|
+Q0EgMjYwIBcNMDAwMTAxMDAwMDAwWhgPMjEwMDAxMDEwMDAwMDBaMBcxFTATBgNV
|
||||||
|
+BAMTDFBvbGljeSBDQSAyNTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABJRoDkj7
|
||||||
|
+iDlIygt4YmMgw4pizu2sx4436MGtw5fFHhjy7T+pPMGjYFg3dixxUOu1NHORpdJq
|
||||||
|
+8Y7SN8p8Y0XsDpijgfIwge8wDgYDVR0PAQH/BAQDAgIEMBMGA1UdJQQMMAoGCCsG
|
||||||
|
+AQUFBwMBMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFOutMoKSOv5lEGZaqYZM
|
||||||
|
+zNFwpX3KMCUGA1UdIAQeMBwwDAYKYIZIAWUDAgEwATAMBgpghkgBZQMCATACMHEG
|
||||||
|
+A1UdIQRqMGgwGAYKYIZIAWUDAgEwAQYKYIZIAWUDAgEwATAYBgpghkgBZQMCATAB
|
||||||
|
+BgpghkgBZQMCATACMBgGCmCGSAFlAwIBMAIGCmCGSAFlAwIBMAEwGAYKYIZIAWUD
|
||||||
|
+AgEwAgYKYIZIAWUDAgEwAjAKBggqhkjOPQQDAgNIADBFAiEAks62lsAHmN6xkZsF
|
||||||
|
+6ocGONpH/XmHLpoO6RfMoRCnWkICIFNFD+W6pSSvdDB96sn8jnZ7W/Y0hyLzscBO
|
||||||
|
+WtkzqqJJ
|
||||||
|
+-----END CERTIFICATE-----
|
||||||
|
+-----BEGIN CERTIFICATE-----
|
||||||
|
+MIICEzCCAbigAwIBAgIBGjAKBggqhkjOPQQDAjAXMRUwEwYDVQQDEwxQb2xpY3kg
|
||||||
|
+Q0EgMjcwIBcNMDAwMTAxMDAwMDAwWhgPMjEwMDAxMDEwMDAwMDBaMBcxFTATBgNV
|
||||||
|
+BAMTDFBvbGljeSBDQSAyNjBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABE3seRj5
|
||||||
|
+LVNKi9sZk7qv5cBVUG8BLXXfDRUhCUzT10YAU1J0yd2wmLTbwPyYm65GaecvAHSR
|
||||||
|
+SExOzX6bC35nNt6jgfIwge8wDgYDVR0PAQH/BAQDAgIEMBMGA1UdJQQMMAoGCCsG
|
||||||
|
+AQUFBwMBMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFNx5XhDdoflDgPrW/HyU
|
||||||
|
+tCokuJ0AMCUGA1UdIAQeMBwwDAYKYIZIAWUDAgEwATAMBgpghkgBZQMCATACMHEG
|
||||||
|
+A1UdIQRqMGgwGAYKYIZIAWUDAgEwAQYKYIZIAWUDAgEwATAYBgpghkgBZQMCATAB
|
||||||
|
+BgpghkgBZQMCATACMBgGCmCGSAFlAwIBMAIGCmCGSAFlAwIBMAEwGAYKYIZIAWUD
|
||||||
|
+AgEwAgYKYIZIAWUDAgEwAjAKBggqhkjOPQQDAgNJADBGAiEApAQVb0KQedyAw1SJ
|
||||||
|
+J8At4uxxm2b8W13s6ENapxw+lwwCIQC7326NFPsDjbfBKhFDQhCIMkAkYq2wzRJ7
|
||||||
|
+ubTwkdT19g==
|
||||||
|
+-----END CERTIFICATE-----
|
||||||
|
+-----BEGIN CERTIFICATE-----
|
||||||
|
+MIICEzCCAbigAwIBAgIBGzAKBggqhkjOPQQDAjAXMRUwEwYDVQQDEwxQb2xpY3kg
|
||||||
|
+Q0EgMjgwIBcNMDAwMTAxMDAwMDAwWhgPMjEwMDAxMDEwMDAwMDBaMBcxFTATBgNV
|
||||||
|
+BAMTDFBvbGljeSBDQSAyNzBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABC+FQF2E
|
||||||
|
+TrZ4YGNyxFxzpTQBjlu9QUrwgHzabAn47toqRkWUGAS68jBfSdR+j2c7/oehQHhO
|
||||||
|
+relHcbQilhZnh4ijgfIwge8wDgYDVR0PAQH/BAQDAgIEMBMGA1UdJQQMMAoGCCsG
|
||||||
|
+AQUFBwMBMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFIOlwsa4FjZWhzQYTAY3
|
||||||
|
+c2TSYhsEMCUGA1UdIAQeMBwwDAYKYIZIAWUDAgEwATAMBgpghkgBZQMCATACMHEG
|
||||||
|
+A1UdIQRqMGgwGAYKYIZIAWUDAgEwAQYKYIZIAWUDAgEwATAYBgpghkgBZQMCATAB
|
||||||
|
+BgpghkgBZQMCATACMBgGCmCGSAFlAwIBMAIGCmCGSAFlAwIBMAEwGAYKYIZIAWUD
|
||||||
|
+AgEwAgYKYIZIAWUDAgEwAjAKBggqhkjOPQQDAgNJADBGAiEAwxNBi+8baAU76yng
|
||||||
|
++XvMpY62aqPO4bAe/uedaxBb2jMCIQDJHXqibgIAm1T4/YHimllVlLQudQL5OkbF
|
||||||
|
+Krj3uVHtBg==
|
||||||
|
+-----END CERTIFICATE-----
|
||||||
|
+-----BEGIN CERTIFICATE-----
|
||||||
|
+MIICEjCCAbigAwIBAgIBHDAKBggqhkjOPQQDAjAXMRUwEwYDVQQDEwxQb2xpY3kg
|
||||||
|
+Q0EgMjkwIBcNMDAwMTAxMDAwMDAwWhgPMjEwMDAxMDEwMDAwMDBaMBcxFTATBgNV
|
||||||
|
+BAMTDFBvbGljeSBDQSAyODBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABBmhjGvk
|
||||||
|
+C3QfSVdY5zuHEY4Rf3eKVro6vcKymgdBPFjjDggZNktR3OMnayCabJB51g2VL7Fg
|
||||||
|
+MegdwzJWzPvQreyjgfIwge8wDgYDVR0PAQH/BAQDAgIEMBMGA1UdJQQMMAoGCCsG
|
||||||
|
+AQUFBwMBMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFEvevGIfitXek0IStYIR
|
||||||
|
+5ne2SkJwMCUGA1UdIAQeMBwwDAYKYIZIAWUDAgEwATAMBgpghkgBZQMCATACMHEG
|
||||||
|
+A1UdIQRqMGgwGAYKYIZIAWUDAgEwAQYKYIZIAWUDAgEwATAYBgpghkgBZQMCATAB
|
||||||
|
+BgpghkgBZQMCATACMBgGCmCGSAFlAwIBMAIGCmCGSAFlAwIBMAEwGAYKYIZIAWUD
|
||||||
|
+AgEwAgYKYIZIAWUDAgEwAjAKBggqhkjOPQQDAgNIADBFAiBzlv0TggDJWUWx0UHl
|
||||||
|
+cqxuMpoNdy+ifizQIlcjWcrzvgIhAJdQfkPaZdc4/j/HfGaVNN9InJuBWGrPYU6A
|
||||||
|
+iwsSB0jY
|
||||||
|
+-----END CERTIFICATE-----
|
||||||
|
+-----BEGIN CERTIFICATE-----
|
||||||
|
+MIICEzCCAbigAwIBAgIBHTAKBggqhkjOPQQDAjAXMRUwEwYDVQQDEwxQb2xpY3kg
|
||||||
|
+Q0EgMzAwIBcNMDAwMTAxMDAwMDAwWhgPMjEwMDAxMDEwMDAwMDBaMBcxFTATBgNV
|
||||||
|
+BAMTDFBvbGljeSBDQSAyOTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABCrC5p+Z
|
||||||
|
+ywMukm1LRuXeJ5V1M6V+8A8PjqB3tgHVeEn973HOfia8lt2/7EoKaLKzP8A7D3eC
|
||||||
|
+aBJUmTgHauaolYOjgfIwge8wDgYDVR0PAQH/BAQDAgIEMBMGA1UdJQQMMAoGCCsG
|
||||||
|
+AQUFBwMBMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFGG5D5h1FRA+aZMbSXfZ
|
||||||
|
+Mp8pjYUEMCUGA1UdIAQeMBwwDAYKYIZIAWUDAgEwATAMBgpghkgBZQMCATACMHEG
|
||||||
|
+A1UdIQRqMGgwGAYKYIZIAWUDAgEwAQYKYIZIAWUDAgEwATAYBgpghkgBZQMCATAB
|
||||||
|
+BgpghkgBZQMCATACMBgGCmCGSAFlAwIBMAIGCmCGSAFlAwIBMAEwGAYKYIZIAWUD
|
||||||
|
+AgEwAgYKYIZIAWUDAgEwAjAKBggqhkjOPQQDAgNJADBGAiEAnI2IhyXtBCRiv+Xs
|
||||||
|
+EzsO497oVf1U8SJiVR8SaEx0gzgCIQC0+un/Hcb0OWvpvoeHKcRi7e8SZkX+vn2i
|
||||||
|
+u+KsPqlfzA==
|
||||||
|
+-----END CERTIFICATE-----
|
||||||
|
+-----BEGIN CERTIFICATE-----
|
||||||
|
+MIICEjCCAbigAwIBAgIBHjAKBggqhkjOPQQDAjAXMRUwEwYDVQQDEwxQb2xpY3kg
|
||||||
|
+Q0EgMzEwIBcNMDAwMTAxMDAwMDAwWhgPMjEwMDAxMDEwMDAwMDBaMBcxFTATBgNV
|
||||||
|
+BAMTDFBvbGljeSBDQSAzMDBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABHg1qbhT
|
||||||
|
+bpV0agLQkk6di7EdwrrqIn7yCiBCfPwoDI7czY1bHwkR2E8EdrG4ZLBHHFXYNHau
|
||||||
|
+kEo9nueljxbA6MGjgfIwge8wDgYDVR0PAQH/BAQDAgIEMBMGA1UdJQQMMAoGCCsG
|
||||||
|
+AQUFBwMBMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFGXSqDk/Zov8a62kkXDr
|
||||||
|
+8YhtqdkTMCUGA1UdIAQeMBwwDAYKYIZIAWUDAgEwATAMBgpghkgBZQMCATACMHEG
|
||||||
|
+A1UdIQRqMGgwGAYKYIZIAWUDAgEwAQYKYIZIAWUDAgEwATAYBgpghkgBZQMCATAB
|
||||||
|
+BgpghkgBZQMCATACMBgGCmCGSAFlAwIBMAIGCmCGSAFlAwIBMAEwGAYKYIZIAWUD
|
||||||
|
+AgEwAgYKYIZIAWUDAgEwAjAKBggqhkjOPQQDAgNIADBFAiEA1D2Fm3D8REQtj8o4
|
||||||
|
+ZrnDyWam0Rx6cEMsvmeoafOBUeUCIBW0IoUYmF46faRQWKN7R8wnvbjUw0bxztzy
|
||||||
|
+okUR5Pma
|
||||||
|
+-----END CERTIFICATE-----
|
||||||
|
+-----BEGIN CERTIFICATE-----
|
||||||
|
+MIICEjCCAbigAwIBAgIBHzAKBggqhkjOPQQDAjAXMRUwEwYDVQQDEwxQb2xpY3kg
|
||||||
|
+Q0EgMzEwIBcNMDAwMTAxMDAwMDAwWhgPMjEwMDAxMDEwMDAwMDBaMBcxFTATBgNV
|
||||||
|
+BAMTDFBvbGljeSBDQSAzMTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABIwGMmHl
|
||||||
|
+/QJSpu6KHakSe4gkf3L+NpsrtQpxu6sNfmSjO++dGv6sj2v3+DZNeyagVUJRVHaD
|
||||||
|
+IZzpoyVVrBBO6vijgfIwge8wDgYDVR0PAQH/BAQDAgIEMBMGA1UdJQQMMAoGCCsG
|
||||||
|
+AQUFBwMBMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFA+f9g1sP2kM5sOT/8Ge
|
||||||
|
+IDKq5FcUMCUGA1UdIAQeMBwwDAYKYIZIAWUDAgEwATAMBgpghkgBZQMCATACMHEG
|
||||||
|
+A1UdIQRqMGgwGAYKYIZIAWUDAgEwAQYKYIZIAWUDAgEwATAYBgpghkgBZQMCATAB
|
||||||
|
+BgpghkgBZQMCATACMBgGCmCGSAFlAwIBMAIGCmCGSAFlAwIBMAEwGAYKYIZIAWUD
|
||||||
|
+AgEwAgYKYIZIAWUDAgEwAjAKBggqhkjOPQQDAgNIADBFAiEAvQlbAmF3pS041Zo2
|
||||||
|
+eHrxMO3j8thB+XqHU8RatCZ60WACIG1vUFPH7UwzTTann7Sgp4s+Gd/jLOkrJnEk
|
||||||
|
+W3De9dSX
|
||||||
|
+-----END CERTIFICATE-----
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/test/recipes/80-test_policy_tree_data/small_leaf.pem
|
||||||
|
@@ -0,0 +1,11 @@
|
||||||
|
+-----BEGIN CERTIFICATE-----
|
||||||
|
+MIIBmjCCAT+gAwIBAgIBADAKBggqhkjOPQQDAjAWMRQwEgYDVQQDEwtQb2xpY3kg
|
||||||
|
+Q0EgMTAgFw0wMDAxMDEwMDAwMDBaGA8yMTAwMDEwMTAwMDAwMFowGjEYMBYGA1UE
|
||||||
|
+AxMPd3d3LmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAER7oh
|
||||||
|
+z+MnwilNhyEB2bZTuYBpeiwW4QlpYZU6b/8uWOldyMXCaPmaXwY60nrMznfFJX6F
|
||||||
|
+h8dC6XIzvQmjUMdSoqN4MHYwDgYDVR0PAQH/BAQDAgeAMBMGA1UdJQQMMAoGCCsG
|
||||||
|
+AQUFBwMBMAwGA1UdEwEB/wQCMAAwGgYDVR0RBBMwEYIPd3d3LmV4YW1wbGUuY29t
|
||||||
|
+MCUGA1UdIAQeMBwwDAYKYIZIAWUDAgEwATAMBgpghkgBZQMCATACMAoGCCqGSM49
|
||||||
|
+BAMCA0kAMEYCIQC2km5juUULIRYsRgHuLFEiABBR0pDAyTbl9LRjlkSeEQIhAO9b
|
||||||
|
+ye60dMNbhY1OOzrr4mDRv0tuNmbGBErcFs61YZkC
|
||||||
|
+-----END CERTIFICATE-----
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/test/recipes/80-test_policy_tree_data/small_policy_tree.pem
|
||||||
|
@@ -0,0 +1,70 @@
|
||||||
|
+-----BEGIN CERTIFICATE-----
|
||||||
|
+MIICETCCAbagAwIBAgIBATAKBggqhkjOPQQDAjAWMRQwEgYDVQQDEwtQb2xpY3kg
|
||||||
|
+Q0EgMjAgFw0wMDAxMDEwMDAwMDBaGA8yMTAwMDEwMTAwMDAwMFowFjEUMBIGA1UE
|
||||||
|
+AxMLUG9saWN5IENBIDEwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQu7GyNFjN6
|
||||||
|
+Sqwk1CZAt+lzTC/Us6ZkO5nsmb8yAuPb6RJ0A2LvUbsmZea+UyBFq3VuEbbuCoeE
|
||||||
|
+KRbKkS6wefAzo4HyMIHvMA4GA1UdDwEB/wQEAwICBDATBgNVHSUEDDAKBggrBgEF
|
||||||
|
+BQcDATAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBSQkJvfn8gFHIXVTBJ4hrtP
|
||||||
|
+ypA9QTAlBgNVHSAEHjAcMAwGCmCGSAFlAwIBMAEwDAYKYIZIAWUDAgEwAjBxBgNV
|
||||||
|
+HSEEajBoMBgGCmCGSAFlAwIBMAEGCmCGSAFlAwIBMAEwGAYKYIZIAWUDAgEwAQYK
|
||||||
|
+YIZIAWUDAgEwAjAYBgpghkgBZQMCATACBgpghkgBZQMCATABMBgGCmCGSAFlAwIB
|
||||||
|
+MAIGCmCGSAFlAwIBMAIwCgYIKoZIzj0EAwIDSQAwRgIhALn6/b3H+jLusJE5QiaS
|
||||||
|
+PiwrLcl+NDguWCnxo0c6AfduAiEApkXUN+7vRfXeFFd9CfA1BnTW3eUzBOsukZoN
|
||||||
|
+zaj+utk=
|
||||||
|
+-----END CERTIFICATE-----
|
||||||
|
+-----BEGIN CERTIFICATE-----
|
||||||
|
+MIICDzCCAbagAwIBAgIBAjAKBggqhkjOPQQDAjAWMRQwEgYDVQQDEwtQb2xpY3kg
|
||||||
|
+Q0EgMzAgFw0wMDAxMDEwMDAwMDBaGA8yMTAwMDEwMTAwMDAwMFowFjEUMBIGA1UE
|
||||||
|
+AxMLUG9saWN5IENBIDIwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAT+p+A+K6MI
|
||||||
|
+R3eVP/+2O7lam32HU10frEKpyQslZAabYJwkc9iq5WatMbTMPQibuOIWHFl02uJ8
|
||||||
|
+cxGKy/Hke8P5o4HyMIHvMA4GA1UdDwEB/wQEAwICBDATBgNVHSUEDDAKBggrBgEF
|
||||||
|
+BQcDATAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBSSOt6HCXw+L/4uzJsInqqA
|
||||||
|
+XrWt8DAlBgNVHSAEHjAcMAwGCmCGSAFlAwIBMAEwDAYKYIZIAWUDAgEwAjBxBgNV
|
||||||
|
+HSEEajBoMBgGCmCGSAFlAwIBMAEGCmCGSAFlAwIBMAEwGAYKYIZIAWUDAgEwAQYK
|
||||||
|
+YIZIAWUDAgEwAjAYBgpghkgBZQMCATACBgpghkgBZQMCATABMBgGCmCGSAFlAwIB
|
||||||
|
+MAIGCmCGSAFlAwIBMAIwCgYIKoZIzj0EAwIDRwAwRAIgS/vh3osFy+q1MLuVnAdg
|
||||||
|
+gMINfiIJw1+3zbYsJYlNhWgCICu6Qgzee4NwIrJagcdVA0RAfnCOo6wfvikpl0ts
|
||||||
|
+EepA
|
||||||
|
+-----END CERTIFICATE-----
|
||||||
|
+-----BEGIN CERTIFICATE-----
|
||||||
|
+MIICEDCCAbagAwIBAgIBAzAKBggqhkjOPQQDAjAWMRQwEgYDVQQDEwtQb2xpY3kg
|
||||||
|
+Q0EgNDAgFw0wMDAxMDEwMDAwMDBaGA8yMTAwMDEwMTAwMDAwMFowFjEUMBIGA1UE
|
||||||
|
+AxMLUG9saWN5IENBIDMwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQONHKgpAJ6
|
||||||
|
+vE41FYBekpLzybpBQp/gUmgRPKrcL0z4lLTDjCG3j6yIbZma8u2bPM1MBXw5otZ7
|
||||||
|
+xVFhQ1AkZIOco4HyMIHvMA4GA1UdDwEB/wQEAwICBDATBgNVHSUEDDAKBggrBgEF
|
||||||
|
+BQcDATAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBQ69465BL89BXORf4sSnneU
|
||||||
|
+exkm0jAlBgNVHSAEHjAcMAwGCmCGSAFlAwIBMAEwDAYKYIZIAWUDAgEwAjBxBgNV
|
||||||
|
+HSEEajBoMBgGCmCGSAFlAwIBMAEGCmCGSAFlAwIBMAEwGAYKYIZIAWUDAgEwAQYK
|
||||||
|
+YIZIAWUDAgEwAjAYBgpghkgBZQMCATACBgpghkgBZQMCATABMBgGCmCGSAFlAwIB
|
||||||
|
+MAIGCmCGSAFlAwIBMAIwCgYIKoZIzj0EAwIDSAAwRQIhAPK9PqPxgme9x6TPFh2z
|
||||||
|
+vv+qVEM2WxOTdRKOPgUYzCp9AiBl8qO3szv5jNDzb0fRIqVp37v9yBjWcgO9Wl02
|
||||||
|
+QDCpGw==
|
||||||
|
+-----END CERTIFICATE-----
|
||||||
|
+-----BEGIN CERTIFICATE-----
|
||||||
|
+MIICETCCAbagAwIBAgIBBDAKBggqhkjOPQQDAjAWMRQwEgYDVQQDEwtQb2xpY3kg
|
||||||
|
+Q0EgNTAgFw0wMDAxMDEwMDAwMDBaGA8yMTAwMDEwMTAwMDAwMFowFjEUMBIGA1UE
|
||||||
|
+AxMLUG9saWN5IENBIDQwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASLrUP7BFi7
|
||||||
|
++LE2uDVCZ2Z2HK6BpL/kjBbwKkLxlJe+LqNolzu53b8+WtHwrvPPVkD9t3KMdWXU
|
||||||
|
+K7NtHYgXUz07o4HyMIHvMA4GA1UdDwEB/wQEAwICBDATBgNVHSUEDDAKBggrBgEF
|
||||||
|
+BQcDATAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBS0kaY2oJVEBLtjkqI8pXsv
|
||||||
|
+eqm3VDAlBgNVHSAEHjAcMAwGCmCGSAFlAwIBMAEwDAYKYIZIAWUDAgEwAjBxBgNV
|
||||||
|
+HSEEajBoMBgGCmCGSAFlAwIBMAEGCmCGSAFlAwIBMAEwGAYKYIZIAWUDAgEwAQYK
|
||||||
|
+YIZIAWUDAgEwAjAYBgpghkgBZQMCATACBgpghkgBZQMCATABMBgGCmCGSAFlAwIB
|
||||||
|
+MAIGCmCGSAFlAwIBMAIwCgYIKoZIzj0EAwIDSQAwRgIhAJuTMvMUda4Y29V1Tm5O
|
||||||
|
+jCqBThR2NwdQfnET1sjch3Q7AiEA7nEudfXKMljjz608aWtafTkw5V5I2/SbuUKr
|
||||||
|
+vjprfIo=
|
||||||
|
+-----END CERTIFICATE-----
|
||||||
|
+-----BEGIN CERTIFICATE-----
|
||||||
|
+MIICEDCCAbagAwIBAgIBBTAKBggqhkjOPQQDAjAWMRQwEgYDVQQDEwtQb2xpY3kg
|
||||||
|
+Q0EgNTAgFw0wMDAxMDEwMDAwMDBaGA8yMTAwMDEwMTAwMDAwMFowFjEUMBIGA1UE
|
||||||
|
+AxMLUG9saWN5IENBIDUwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQ9RuYVzUGB
|
||||||
|
+FkAEM9kHe9xynDo/NcsiaAO3+E2u7jJQQN50d6hVEDHf9961omldhKhP4HTNfhqj
|
||||||
|
+VMIHKGMhXCgKo4HyMIHvMA4GA1UdDwEB/wQEAwICBDATBgNVHSUEDDAKBggrBgEF
|
||||||
|
+BQcDATAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTVrjWaVjkfMpilq5tGZ4zZ
|
||||||
|
+iJtaSDAlBgNVHSAEHjAcMAwGCmCGSAFlAwIBMAEwDAYKYIZIAWUDAgEwAjBxBgNV
|
||||||
|
+HSEEajBoMBgGCmCGSAFlAwIBMAEGCmCGSAFlAwIBMAEwGAYKYIZIAWUDAgEwAQYK
|
||||||
|
+YIZIAWUDAgEwAjAYBgpghkgBZQMCATACBgpghkgBZQMCATABMBgGCmCGSAFlAwIB
|
||||||
|
+MAIGCmCGSAFlAwIBMAIwCgYIKoZIzj0EAwIDSAAwRQIhAPVgPpACX2ylQMEMSntw
|
||||||
|
+izxKHTSPhXuF6IHhNHRz7KFnAiB8y/QcF7N2iXNZEqffWSkVted/XOw3Xrck0sJ6
|
||||||
|
+4eXNcw==
|
||||||
|
+-----END CERTIFICATE-----
|
239
openssl-CVE-2023-0465.patch
Normal file
239
openssl-CVE-2023-0465.patch
Normal file
|
@ -0,0 +1,239 @@
|
||||||
|
From d62826121bd53b1b9f51d094729843dba36d11f1 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Matt Caswell <matt@openssl.org>
|
||||||
|
Date: Tue, 7 Mar 2023 15:22:40 +0000
|
||||||
|
Subject: [PATCH 1/5] Generate some certificates with the certificatePolicies
|
||||||
|
extension
|
||||||
|
|
||||||
|
Related-to: CVE-2023-0465
|
||||||
|
---
|
||||||
|
CHANGES.md | 12 ++++++++++++
|
||||||
|
NEWS.md | 5 +++++
|
||||||
|
crypto/x509/x509_vfy.c | 12 ++++++++++--
|
||||||
|
test/certs/ca-pol-cert.pem | 19 +++++++++++++++++++
|
||||||
|
test/certs/ee-cert-policies-bad.pem | 20 ++++++++++++++++++++
|
||||||
|
test/certs/ee-cert-policies.pem | 20 ++++++++++++++++++++
|
||||||
|
test/certs/mkcert.sh | 9 +++++++--
|
||||||
|
test/certs/setup.sh | 6 ++++++
|
||||||
|
test/recipes/25-test_verify.t | 13 ++++++++++++-
|
||||||
|
9 files changed, 111 insertions(+), 5 deletions(-)
|
||||||
|
create mode 100644 test/certs/ca-pol-cert.pem
|
||||||
|
create mode 100644 test/certs/ee-cert-policies-bad.pem
|
||||||
|
create mode 100644 test/certs/ee-cert-policies.pem
|
||||||
|
|
||||||
|
--- a/CHANGES.md
|
||||||
|
+++ b/CHANGES.md
|
||||||
|
@@ -30,12 +30,22 @@ breaking changes, and mappings for the l
|
||||||
|
|
||||||
|
### Changes between 3.0.7 and 3.0.8 [7 Feb 2023]
|
||||||
|
|
||||||
|
+ * Fixed an issue where invalid certificate policies in leaf certificates are
|
||||||
|
+ silently ignored by OpenSSL and other certificate policy checks are skipped
|
||||||
|
+ for that certificate. A malicious CA could use this to deliberately assert
|
||||||
|
+ invalid certificate policies in order to circumvent policy checking on the
|
||||||
|
+ certificate altogether.
|
||||||
|
+ ([CVE-2023-0465])
|
||||||
|
+
|
||||||
|
+ *Matt Caswell*
|
||||||
|
+
|
||||||
|
* Limited the number of nodes created in a policy tree to mitigate
|
||||||
|
against CVE-2023-0464. The default limit is set to 1000 nodes, which
|
||||||
|
should be sufficient for most installations. If required, the limit
|
||||||
|
can be adjusted by setting the OPENSSL_POLICY_TREE_NODES_MAX build
|
||||||
|
time define to a desired maximum number of nodes or zero to allow
|
||||||
|
unlimited growth.
|
||||||
|
+ ([CVE-2023-0464])
|
||||||
|
|
||||||
|
*Paul Dale*
|
||||||
|
|
||||||
|
@@ -19587,6 +19597,8 @@ ndif
|
||||||
|
|
||||||
|
<!-- Links -->
|
||||||
|
|
||||||
|
+[CVE-2023-0465]: https://www.openssl.org/news/vulnerabilities.html#CVE-2023-0465
|
||||||
|
+[CVE-2023-0464]: https://www.openssl.org/news/vulnerabilities.html#CVE-2023-0464
|
||||||
|
[CVE-2023-0401]: https://www.openssl.org/news/vulnerabilities.html#CVE-2023-0401
|
||||||
|
[CVE-2023-0286]: https://www.openssl.org/news/vulnerabilities.html#CVE-2023-0286
|
||||||
|
[CVE-2023-0217]: https://www.openssl.org/news/vulnerabilities.html#CVE-2023-0217
|
||||||
|
--- a/NEWS.md
|
||||||
|
+++ b/NEWS.md
|
||||||
|
@@ -20,6 +20,9 @@ OpenSSL 3.0
|
||||||
|
|
||||||
|
### Major changes between OpenSSL 3.0.7 and OpenSSL 3.0.8 [7 Feb 2023]
|
||||||
|
|
||||||
|
+ * Fixed handling of invalid certificate policies in leaf certificates
|
||||||
|
+ ([CVE-2023-0465])
|
||||||
|
+ * Limited the number of nodes created in a policy tree ([CVE-2023-0464])
|
||||||
|
* Fixed NULL dereference during PKCS7 data verification ([CVE-2023-0401])
|
||||||
|
* Fixed X.400 address type confusion in X.509 GeneralName ([CVE-2023-0286])
|
||||||
|
* Fixed NULL dereference validating DSA public key ([CVE-2023-0217])
|
||||||
|
@@ -1430,6 +1433,8 @@ OpenSSL 0.9.x
|
||||||
|
* Support for various new platforms
|
||||||
|
|
||||||
|
<!-- Links -->
|
||||||
|
+[CVE-2023-0465]: https://www.openssl.org/news/vulnerabilities.html#CVE-2023-0465
|
||||||
|
+[CVE-2023-0464]: https://www.openssl.org/news/vulnerabilities.html#CVE-2023-0464
|
||||||
|
[CVE-2023-0401]: https://www.openssl.org/news/vulnerabilities.html#CVE-2023-0401
|
||||||
|
[CVE-2023-0286]: https://www.openssl.org/news/vulnerabilities.html#CVE-2023-0286
|
||||||
|
[CVE-2023-0217]: https://www.openssl.org/news/vulnerabilities.html#CVE-2023-0217
|
||||||
|
--- a/crypto/x509/x509_vfy.c
|
||||||
|
+++ b/crypto/x509/x509_vfy.c
|
||||||
|
@@ -1654,15 +1654,23 @@ static int check_policy(X509_STORE_CTX *
|
||||||
|
goto memerr;
|
||||||
|
/* Invalid or inconsistent extensions */
|
||||||
|
if (ret == X509_PCY_TREE_INVALID) {
|
||||||
|
- int i;
|
||||||
|
+ int i, cbcalled = 0;
|
||||||
|
|
||||||
|
/* Locate certificates with bad extensions and notify callback. */
|
||||||
|
- for (i = 1; i < sk_X509_num(ctx->chain); i++) {
|
||||||
|
+ for (i = 0; i < sk_X509_num(ctx->chain); i++) {
|
||||||
|
X509 *x = sk_X509_value(ctx->chain, i);
|
||||||
|
|
||||||
|
+ if ((x->ex_flags & EXFLAG_INVALID_POLICY) != 0)
|
||||||
|
+ cbcalled = 1;
|
||||||
|
CB_FAIL_IF((x->ex_flags & EXFLAG_INVALID_POLICY) != 0,
|
||||||
|
ctx, x, i, X509_V_ERR_INVALID_POLICY_EXTENSION);
|
||||||
|
}
|
||||||
|
+ if (!cbcalled) {
|
||||||
|
+ /* Should not be able to get here */
|
||||||
|
+ ERR_raise(ERR_LIB_X509, ERR_R_INTERNAL_ERROR);
|
||||||
|
+ return 0;
|
||||||
|
+ }
|
||||||
|
+ /* The callback ignored the error so we return success */
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
if (ret == X509_PCY_TREE_FAILURE) {
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/test/certs/ca-pol-cert.pem
|
||||||
|
@@ -0,0 +1,19 @@
|
||||||
|
+-----BEGIN CERTIFICATE-----
|
||||||
|
+MIIDFzCCAf+gAwIBAgIBAjANBgkqhkiG9w0BAQsFADASMRAwDgYDVQQDDAdSb290
|
||||||
|
+IENBMCAXDTIzMDMwODEyMjMxNloYDzIxMjMwMzA5MTIyMzE2WjANMQswCQYDVQQD
|
||||||
|
+DAJDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJadpD0ASxxfxsvd
|
||||||
|
+j9IxsogVzMSGLFziaYuE9KejU9+R479RifvwfBANO62sNWJ19X//9G5UjwWmkiOz
|
||||||
|
+n1k50DkYsBBA3mJzik6wjt/c58lBIlSEgAgpvDU8ht8w3t20JP9+YqXAeugqFj/W
|
||||||
|
+l9rFQtsvaWSRywjXVlp5fxuEQelNnXcJEKhsKTNExsBUZebo4/J1BWpklWzA9P0l
|
||||||
|
+YW5INvDAAwcF1nzlEf0Y6Eot03IMNyg2MTE4hehxjdgCSci8GYnFirE/ojXqqpAc
|
||||||
|
+ZGh7r2dqWgZUD1Dh+bT2vjrUzj8eTH3GdzI+oljt29102JIUaqj3yzRYkah8FLF9
|
||||||
|
+CLNNsUcCAwEAAaN7MHkwDwYDVR0TAQH/BAUwAwEB/zALBgNVHQ8EBAMCAQYwHQYD
|
||||||
|
+VR0OBBYEFLQRM/HX4l73U54gIhBPhga/H8leMB8GA1UdIwQYMBaAFI71Ja8em2uE
|
||||||
|
+PXyAmslTnE1y96NSMBkGA1UdIAQSMBAwDgYMKwYBBAGBgVy8+0cBMA0GCSqGSIb3
|
||||||
|
+DQEBCwUAA4IBAQBbE+MO9mewWIUY2kt85yhl0oZtvVxbn9K2Hty59ItwJGRNfzx7
|
||||||
|
+Ge7KgawkvNzMOXmj6qf8TpbJnf41ZLWdRyVZBVyIwrAKIVw1VxfGh8aEifHKN97H
|
||||||
|
+unZkBPcUkAhUJSiC1BOD/euaMYqOi8QwiI702Q6q1NBY1/UKnV/ZIBLecnqfj9vZ
|
||||||
|
+7T0wKxrwGYBztP4pNcxCmBoD9Dg+Dx3ZElo0WXyO4SOh/BgrsKJHKyhbuTpjrI/g
|
||||||
|
+DhcINRp6+lIzuFBtJ67+YXnAEspb3lKMk0YL/LXrCNF2scdmNfOPwHi+OKBqt69C
|
||||||
|
+9FJyWFEMxx2qm/ENE9sbOswgJRnKkaAqHBHx
|
||||||
|
+-----END CERTIFICATE-----
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/test/certs/ee-cert-policies-bad.pem
|
||||||
|
@@ -0,0 +1,20 @@
|
||||||
|
+-----BEGIN CERTIFICATE-----
|
||||||
|
+MIIDTTCCAjWgAwIBAgIBAjANBgkqhkiG9w0BAQsFADANMQswCQYDVQQDDAJDQTAg
|
||||||
|
+Fw0yMzAzMDgxMjIzMzJaGA8yMTIzMDMwOTEyMjMzMlowGTEXMBUGA1UEAwwOc2Vy
|
||||||
|
+dmVyLmV4YW1wbGUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCo/4lY
|
||||||
|
+YYWu3tssD9Vz++K3qBt6dWAr1H08c3a1rt6TL38kkG3JHPSKOM2fooAWVsu0LLuT
|
||||||
|
+5Rcf/w3GQ/4xNPgo2HXpo7uIgu+jcuJTYgVFTeAxl++qnRDSWA2eBp4yuxsIVl1l
|
||||||
|
+Dz9mjsI2oBH/wFk1/Ukc3RxCMwZ4rgQ4I+XndWfTlK1aqUAfrFkQ9QzBZK1KxMY1
|
||||||
|
+U7OWaoIbFYvRmavknm+UqtKW5Vf7jJFkijwkFsbSGb6CYBM7YrDtPh2zyvlr3zG5
|
||||||
|
+ep5LR2inKcc/SuIiJ7TvkGPX79ByST5brbkb1Ctvhmjd1XMSuEPJ3EEPoqNGT4tn
|
||||||
|
+iIQPYf55NB9KiR+3AgMBAAGjgakwgaYwHQYDVR0OBBYEFOeb4iqtimw6y3ZR5Y4H
|
||||||
|
+mCKX4XOiMB8GA1UdIwQYMBaAFLQRM/HX4l73U54gIhBPhga/H8leMAkGA1UdEwQC
|
||||||
|
+MAAwEwYDVR0lBAwwCgYIKwYBBQUHAwEwGQYDVR0RBBIwEIIOc2VydmVyLmV4YW1w
|
||||||
|
+bGUwKQYDVR0gBCIwIDAOBgwrBgEEAYGBXLz7RwEwDgYMKwYBBAGBgVy8+0cBMA0G
|
||||||
|
+CSqGSIb3DQEBCwUAA4IBAQArwtwNO++7kStcJeMg3ekz2D/m/8UEjTA1rknBjQiQ
|
||||||
|
+P0FK7tNeRqus9i8PxthNWk+biRayvDzaGIBV7igpDBPfXemDgmW9Adc4MKyiQDfs
|
||||||
|
+YfkHi3xJKvsK2fQmyCs2InVDaKpVAkNFcgAW8nSOhGliqIxLb0EOLoLNwaktou0N
|
||||||
|
+XQHmRzY8S7aIr8K9Qo9y/+MLar+PS4h8l6FkLLkTICiFzE4/wje5S3NckAnadRJa
|
||||||
|
+QpjwM2S6NuA+tYWuOcN//r7BSpW/AZKanYWPzHMrKlqCh+9o7sthPd72+hObG9kx
|
||||||
|
+wSGdzfStNK1I1zM5LiI08WtXCvR6AfLANTo2x1AYhSxF
|
||||||
|
+-----END CERTIFICATE-----
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/test/certs/ee-cert-policies.pem
|
||||||
|
@@ -0,0 +1,20 @@
|
||||||
|
+-----BEGIN CERTIFICATE-----
|
||||||
|
+MIIDPTCCAiWgAwIBAgIBAjANBgkqhkiG9w0BAQsFADANMQswCQYDVQQDDAJDQTAg
|
||||||
|
+Fw0yMzAzMDgxMjIzMjNaGA8yMTIzMDMwOTEyMjMyM1owGTEXMBUGA1UEAwwOc2Vy
|
||||||
|
+dmVyLmV4YW1wbGUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCo/4lY
|
||||||
|
+YYWu3tssD9Vz++K3qBt6dWAr1H08c3a1rt6TL38kkG3JHPSKOM2fooAWVsu0LLuT
|
||||||
|
+5Rcf/w3GQ/4xNPgo2HXpo7uIgu+jcuJTYgVFTeAxl++qnRDSWA2eBp4yuxsIVl1l
|
||||||
|
+Dz9mjsI2oBH/wFk1/Ukc3RxCMwZ4rgQ4I+XndWfTlK1aqUAfrFkQ9QzBZK1KxMY1
|
||||||
|
+U7OWaoIbFYvRmavknm+UqtKW5Vf7jJFkijwkFsbSGb6CYBM7YrDtPh2zyvlr3zG5
|
||||||
|
+ep5LR2inKcc/SuIiJ7TvkGPX79ByST5brbkb1Ctvhmjd1XMSuEPJ3EEPoqNGT4tn
|
||||||
|
+iIQPYf55NB9KiR+3AgMBAAGjgZkwgZYwHQYDVR0OBBYEFOeb4iqtimw6y3ZR5Y4H
|
||||||
|
+mCKX4XOiMB8GA1UdIwQYMBaAFLQRM/HX4l73U54gIhBPhga/H8leMAkGA1UdEwQC
|
||||||
|
+MAAwEwYDVR0lBAwwCgYIKwYBBQUHAwEwGQYDVR0RBBIwEIIOc2VydmVyLmV4YW1w
|
||||||
|
+bGUwGQYDVR0gBBIwEDAOBgwrBgEEAYGBXLz7RwEwDQYJKoZIhvcNAQELBQADggEB
|
||||||
|
+AGbWslmAAdMX3+5ChcnFrX+NqDGoyhb3PTgWdtlQB5qtWdIt4rSxN50OcQxFTX0D
|
||||||
|
+QOBabSzR0DDKrgfBe4waL19WsdEvR9GyO4M7ASze/A3IEZue9C9k0n7Vq8zDaAZl
|
||||||
|
+CiR/Zqo9nAOuhKHMgmC/NjUlX7STv5pJVgc4SH8VEKmSRZDmNihaOalUtK5X8/Oa
|
||||||
|
+dawKxsZcaP5IKnOEPPKjtVNJxBu5CXywJHsO0GcoDEnEx1/NLdFoJ6WFw8NuTyDK
|
||||||
|
+NGLq2MHEdyKaigHQlptEs9bXyu9McJjzbx0uXj3BenRULASreccFej0L1RU6jDlk
|
||||||
|
+D3brBn24UISaFRZoB7jsjok=
|
||||||
|
+-----END CERTIFICATE-----
|
||||||
|
--- a/test/certs/mkcert.sh
|
||||||
|
+++ b/test/certs/mkcert.sh
|
||||||
|
@@ -119,11 +119,12 @@ genca() {
|
||||||
|
local OPTIND=1
|
||||||
|
local purpose=
|
||||||
|
|
||||||
|
- while getopts p: o
|
||||||
|
+ while getopts p:c: o
|
||||||
|
do
|
||||||
|
case $o in
|
||||||
|
p) purpose="$OPTARG";;
|
||||||
|
- *) echo "Usage: $0 genca [-p EKU] cn keyname certname cakeyname cacertname" >&2
|
||||||
|
+ c) certpol="$OPTARG";;
|
||||||
|
+ *) echo "Usage: $0 genca [-p EKU][-c policyoid] cn keyname certname cakeyname cacertname" >&2
|
||||||
|
return 1;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
@@ -146,6 +147,10 @@ genca() {
|
||||||
|
if [ -n "$NC" ]; then
|
||||||
|
exts=$(printf "%s\nnameConstraints = %s\n" "$exts" "$NC")
|
||||||
|
fi
|
||||||
|
+ if [ -n "$certpol" ]; then
|
||||||
|
+ exts=$(printf "%s\ncertificatePolicies = %s\n" "$exts" "$certpol")
|
||||||
|
+ fi
|
||||||
|
+
|
||||||
|
csr=$(req "$key" "CN = $cn") || return 1
|
||||||
|
echo "$csr" |
|
||||||
|
cert "$cert" "$exts" -CA "${cacert}.pem" -CAkey "${cakey}.pem" \
|
||||||
|
--- a/test/certs/setup.sh
|
||||||
|
+++ b/test/certs/setup.sh
|
||||||
|
@@ -440,3 +440,9 @@ OPENSSL_SIGALG=ED448 OPENSSL_KEYALG=ed44
|
||||||
|
|
||||||
|
# critical id-pkix-ocsp-no-check extension
|
||||||
|
./mkcert.sh geneeextra server.example ee-key ee-cert-ocsp-nocheck ca-key ca-cert "1.3.6.1.5.5.7.48.1.5=critical,DER:05:00"
|
||||||
|
+
|
||||||
|
+# certificatePolicies extension
|
||||||
|
+./mkcert.sh genca -c "1.3.6.1.4.1.16604.998855.1" "CA" ca-key ca-pol-cert root-key root-cert
|
||||||
|
+./mkcert.sh geneeextra server.example ee-key ee-cert-policies ca-key ca-cert "certificatePolicies=1.3.6.1.4.1.16604.998855.1"
|
||||||
|
+# We can create a cert with a duplicate policy oid - but its actually invalid!
|
||||||
|
+./mkcert.sh geneeextra server.example ee-key ee-cert-policies-bad ca-key ca-cert "certificatePolicies=1.3.6.1.4.1.16604.998855.1,1.3.6.1.4.1.16604.998855.1"
|
||||||
|
--- a/test/recipes/25-test_verify.t
|
||||||
|
+++ b/test/recipes/25-test_verify.t
|
||||||
|
@@ -29,7 +29,7 @@ sub verify {
|
||||||
|
run(app([@args]));
|
||||||
|
}
|
||||||
|
|
||||||
|
-plan tests => 164;
|
||||||
|
+plan tests => 166;
|
||||||
|
|
||||||
|
# Canonical success
|
||||||
|
ok(verify("ee-cert", "sslserver", ["root-cert"], ["ca-cert"]),
|
||||||
|
@@ -516,3 +516,14 @@ SKIP: {
|
||||||
|
ok(run(app([ qw(openssl verify -trusted), $rsapluscert_file, $cert_file ])),
|
||||||
|
'Mixed key + cert file test');
|
||||||
|
}
|
||||||
|
+
|
||||||
|
+# Certificate Policies
|
||||||
|
+ok(verify("ee-cert-policies", "", ["root-cert"], ["ca-pol-cert"],
|
||||||
|
+ "-policy_check", "-policy", "1.3.6.1.4.1.16604.998855.1",
|
||||||
|
+ "-explicit_policy"),
|
||||||
|
+ "Certificate policy");
|
||||||
|
+
|
||||||
|
+ok(!verify("ee-cert-policies-bad", "", ["root-cert"], ["ca-pol-cert"],
|
||||||
|
+ "-policy_check", "-policy", "1.3.6.1.4.1.16604.998855.1",
|
||||||
|
+ "-explicit_policy"),
|
||||||
|
+ "Bad certificate policy");
|
81
openssl-CVE-2023-0466.patch
Normal file
81
openssl-CVE-2023-0466.patch
Normal file
|
@ -0,0 +1,81 @@
|
||||||
|
From f079bca52e6abf58d32cc003f32a3ab3c6781f44 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Tomas Mraz <tomas@openssl.org>
|
||||||
|
Date: Tue, 21 Mar 2023 16:15:47 +0100
|
||||||
|
Subject: [PATCH] Fix documentation of X509_VERIFY_PARAM_add0_policy()
|
||||||
|
|
||||||
|
The function was incorrectly documented as enabling policy checking.
|
||||||
|
|
||||||
|
Fixes: CVE-2023-0466
|
||||||
|
---
|
||||||
|
CHANGES.md | 8 ++++++++
|
||||||
|
NEWS.md | 2 ++
|
||||||
|
doc/man3/X509_VERIFY_PARAM_set_flags.pod | 9 +++++++--
|
||||||
|
3 files changed, 17 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
--- a/CHANGES.md
|
||||||
|
+++ b/CHANGES.md
|
||||||
|
@@ -30,6 +30,13 @@ breaking changes, and mappings for the l
|
||||||
|
|
||||||
|
### Changes between 3.0.7 and 3.0.8 [7 Feb 2023]
|
||||||
|
|
||||||
|
+ * Corrected documentation of X509_VERIFY_PARAM_add0_policy() to mention
|
||||||
|
+ that it does not enable policy checking. Thanks to David Benjamin for
|
||||||
|
+ discovering this issue.
|
||||||
|
+ ([CVE-2023-0466])
|
||||||
|
+
|
||||||
|
+ *Tomáš Mráz*
|
||||||
|
+
|
||||||
|
* Fixed an issue where invalid certificate policies in leaf certificates are
|
||||||
|
silently ignored by OpenSSL and other certificate policy checks are skipped
|
||||||
|
for that certificate. A malicious CA could use this to deliberately assert
|
||||||
|
@@ -19597,6 +19604,7 @@ ndif
|
||||||
|
|
||||||
|
<!-- Links -->
|
||||||
|
|
||||||
|
+[CVE-2023-0466]: https://www.openssl.org/news/vulnerabilities.html#CVE-2023-0466
|
||||||
|
[CVE-2023-0465]: https://www.openssl.org/news/vulnerabilities.html#CVE-2023-0465
|
||||||
|
[CVE-2023-0464]: https://www.openssl.org/news/vulnerabilities.html#CVE-2023-0464
|
||||||
|
[CVE-2023-0401]: https://www.openssl.org/news/vulnerabilities.html#CVE-2023-0401
|
||||||
|
--- a/NEWS.md
|
||||||
|
+++ b/NEWS.md
|
||||||
|
@@ -20,6 +20,7 @@ OpenSSL 3.0
|
||||||
|
|
||||||
|
### Major changes between OpenSSL 3.0.7 and OpenSSL 3.0.8 [7 Feb 2023]
|
||||||
|
|
||||||
|
+ * Fixed documentation of X509_VERIFY_PARAM_add0_policy() ([CVE-2023-0466])
|
||||||
|
* Fixed handling of invalid certificate policies in leaf certificates
|
||||||
|
([CVE-2023-0465])
|
||||||
|
* Limited the number of nodes created in a policy tree ([CVE-2023-0464])
|
||||||
|
@@ -1433,6 +1434,7 @@ OpenSSL 0.9.x
|
||||||
|
* Support for various new platforms
|
||||||
|
|
||||||
|
<!-- Links -->
|
||||||
|
+[CVE-2023-0466]: https://www.openssl.org/news/vulnerabilities.html#CVE-2023-0466
|
||||||
|
[CVE-2023-0465]: https://www.openssl.org/news/vulnerabilities.html#CVE-2023-0465
|
||||||
|
[CVE-2023-0464]: https://www.openssl.org/news/vulnerabilities.html#CVE-2023-0464
|
||||||
|
[CVE-2023-0401]: https://www.openssl.org/news/vulnerabilities.html#CVE-2023-0401
|
||||||
|
--- a/doc/man3/X509_VERIFY_PARAM_set_flags.pod
|
||||||
|
+++ b/doc/man3/X509_VERIFY_PARAM_set_flags.pod
|
||||||
|
@@ -98,8 +98,9 @@ B<trust>.
|
||||||
|
X509_VERIFY_PARAM_set_time() sets the verification time in B<param> to
|
||||||
|
B<t>. Normally the current time is used.
|
||||||
|
|
||||||
|
-X509_VERIFY_PARAM_add0_policy() enables policy checking (it is disabled
|
||||||
|
-by default) and adds B<policy> to the acceptable policy set.
|
||||||
|
+X509_VERIFY_PARAM_add0_policy() adds B<policy> to the acceptable policy set.
|
||||||
|
+Contrary to preexisting documentation of this function it does not enable
|
||||||
|
+policy checking.
|
||||||
|
|
||||||
|
X509_VERIFY_PARAM_set1_policies() enables policy checking (it is disabled
|
||||||
|
by default) and sets the acceptable policy set to B<policies>. Any existing
|
||||||
|
@@ -400,6 +401,10 @@ The X509_VERIFY_PARAM_get_hostflags() fu
|
||||||
|
The X509_VERIFY_PARAM_get0_host(), X509_VERIFY_PARAM_get0_email(),
|
||||||
|
and X509_VERIFY_PARAM_get1_ip_asc() functions were added in OpenSSL 3.0.
|
||||||
|
|
||||||
|
+The function X509_VERIFY_PARAM_add0_policy() was historically documented as
|
||||||
|
+enabling policy checking however the implementation has never done this.
|
||||||
|
+The documentation was changed to align with the implementation.
|
||||||
|
+
|
||||||
|
=head1 COPYRIGHT
|
||||||
|
|
||||||
|
Copyright 2009-2023 The OpenSSL Project Authors. All Rights Reserved.
|
85
openssl-CVE-2023-1255.patch
Normal file
85
openssl-CVE-2023-1255.patch
Normal file
|
@ -0,0 +1,85 @@
|
||||||
|
From 72dfe46550ee1f1bbfacd49f071419365bc23304 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Tomas Mraz <tomas@openssl.org>
|
||||||
|
Date: Mon, 17 Apr 2023 16:51:20 +0200
|
||||||
|
Subject: [PATCH] aesv8-armx.pl: Avoid buffer overrread in AES-XTS decryption
|
||||||
|
|
||||||
|
Original author: Nevine Ebeid (Amazon)
|
||||||
|
Fixes: CVE-2023-1255
|
||||||
|
|
||||||
|
The buffer overread happens on decrypts of 4 mod 5 sizes.
|
||||||
|
Unless the memory just after the buffer is unmapped this is harmless.
|
||||||
|
|
||||||
|
Reviewed-by: Paul Dale <pauli@openssl.org>
|
||||||
|
Reviewed-by: Tom Cosgrove <tom.cosgrove@arm.com>
|
||||||
|
(Merged from https://github.com/openssl/openssl/pull/20759)
|
||||||
|
---
|
||||||
|
CHANGES.md | 10 ++++++++++
|
||||||
|
NEWS.md | 3 +++
|
||||||
|
crypto/aes/asm/aesv8-armx.pl | 4 +++-
|
||||||
|
3 files changed, 16 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
--- a/CHANGES.md
|
||||||
|
+++ b/CHANGES.md
|
||||||
|
@@ -30,6 +30,15 @@ breaking changes, and mappings for the l
|
||||||
|
|
||||||
|
### Changes between 3.0.7 and 3.0.8 [7 Feb 2023]
|
||||||
|
|
||||||
|
+ * Fixed buffer overread in AES-XTS decryption on ARM 64 bit platforms which
|
||||||
|
+ happens if the buffer size is 4 mod 5. This can trigger a crash of an
|
||||||
|
+ application using AES-XTS decryption if the memory just after the buffer
|
||||||
|
+ being decrypted is not mapped.
|
||||||
|
+ Thanks to Anton Romanov (Amazon) for discovering the issue.
|
||||||
|
+ ([CVE-2023-1255])
|
||||||
|
+
|
||||||
|
+ *Nevine Ebeid*
|
||||||
|
+
|
||||||
|
* Corrected documentation of X509_VERIFY_PARAM_add0_policy() to mention
|
||||||
|
that it does not enable policy checking. Thanks to David Benjamin for
|
||||||
|
discovering this issue.
|
||||||
|
@@ -19604,6 +19613,7 @@ ndif
|
||||||
|
|
||||||
|
<!-- Links -->
|
||||||
|
|
||||||
|
+[CVE-2023-1255]: https://www.openssl.org/news/vulnerabilities.html#CVE-2023-1255
|
||||||
|
[CVE-2023-0466]: https://www.openssl.org/news/vulnerabilities.html#CVE-2023-0466
|
||||||
|
[CVE-2023-0465]: https://www.openssl.org/news/vulnerabilities.html#CVE-2023-0465
|
||||||
|
[CVE-2023-0464]: https://www.openssl.org/news/vulnerabilities.html#CVE-2023-0464
|
||||||
|
--- a/NEWS.md
|
||||||
|
+++ b/NEWS.md
|
||||||
|
@@ -20,6 +20,8 @@ OpenSSL 3.0
|
||||||
|
|
||||||
|
### Major changes between OpenSSL 3.0.7 and OpenSSL 3.0.8 [7 Feb 2023]
|
||||||
|
|
||||||
|
+ * Fixed buffer overread in AES-XTS decryption on ARM 64 bit platforms
|
||||||
|
+ ([CVE-2023-1255])
|
||||||
|
* Fixed documentation of X509_VERIFY_PARAM_add0_policy() ([CVE-2023-0466])
|
||||||
|
* Fixed handling of invalid certificate policies in leaf certificates
|
||||||
|
([CVE-2023-0465])
|
||||||
|
@@ -1434,6 +1436,7 @@ OpenSSL 0.9.x
|
||||||
|
* Support for various new platforms
|
||||||
|
|
||||||
|
<!-- Links -->
|
||||||
|
+[CVE-2023-1255]: https://www.openssl.org/news/vulnerabilities.html#CVE-2023-1255
|
||||||
|
[CVE-2023-0466]: https://www.openssl.org/news/vulnerabilities.html#CVE-2023-0466
|
||||||
|
[CVE-2023-0465]: https://www.openssl.org/news/vulnerabilities.html#CVE-2023-0465
|
||||||
|
[CVE-2023-0464]: https://www.openssl.org/news/vulnerabilities.html#CVE-2023-0464
|
||||||
|
--- a/crypto/aes/asm/aesv8-armx.pl
|
||||||
|
+++ b/crypto/aes/asm/aesv8-armx.pl
|
||||||
|
@@ -3353,7 +3353,7 @@ $code.=<<___ if ($flavour =~ /64/);
|
||||||
|
.align 4
|
||||||
|
.Lxts_dec_tail4x:
|
||||||
|
add $inp,$inp,#16
|
||||||
|
- vld1.32 {$dat0},[$inp],#16
|
||||||
|
+ tst $tailcnt,#0xf
|
||||||
|
veor $tmp1,$dat1,$tmp0
|
||||||
|
vst1.8 {$tmp1},[$out],#16
|
||||||
|
veor $tmp2,$dat2,$tmp2
|
||||||
|
@@ -3362,6 +3362,8 @@ $code.=<<___ if ($flavour =~ /64/);
|
||||||
|
veor $tmp4,$dat4,$tmp4
|
||||||
|
vst1.8 {$tmp3-$tmp4},[$out],#32
|
||||||
|
|
||||||
|
+ b.eq .Lxts_dec_abort
|
||||||
|
+ vld1.32 {$dat0},[$inp],#16
|
||||||
|
b .Lxts_done
|
||||||
|
.align 4
|
||||||
|
.Lxts_outer_dec_tail:
|
121
openssl-CVE-2023-2650.patch
Normal file
121
openssl-CVE-2023-2650.patch
Normal file
|
@ -0,0 +1,121 @@
|
||||||
|
From ceeda53145a4bd32ec564d506adc7aac96ebd27c Mon Sep 17 00:00:00 2001
|
||||||
|
From: Richard Levitte <levitte@openssl.org>
|
||||||
|
Date: Fri, 12 May 2023 10:00:13 +0200
|
||||||
|
Subject: [PATCH] Restrict the size of OBJECT IDENTIFIERs that OBJ_obj2txt will
|
||||||
|
translate
|
||||||
|
|
||||||
|
OBJ_obj2txt() would translate any size OBJECT IDENTIFIER to canonical
|
||||||
|
numeric text form. For gigantic sub-identifiers, this would take a very
|
||||||
|
long time, the time complexity being O(n^2) where n is the size of that
|
||||||
|
sub-identifier.
|
||||||
|
|
||||||
|
To mitigate this, a restriction on the size that OBJ_obj2txt() will
|
||||||
|
translate to canonical numeric text form is added, based on RFC 2578
|
||||||
|
(STD 58), which says this:
|
||||||
|
|
||||||
|
> 3.5. OBJECT IDENTIFIER values
|
||||||
|
>
|
||||||
|
> An OBJECT IDENTIFIER value is an ordered list of non-negative numbers.
|
||||||
|
> For the SMIv2, each number in the list is referred to as a sub-identifier,
|
||||||
|
> there are at most 128 sub-identifiers in a value, and each sub-identifier
|
||||||
|
> has a maximum value of 2^32-1 (4294967295 decimal).
|
||||||
|
|
||||||
|
Fixes otc/security#96
|
||||||
|
Fixes CVE-2023-2650
|
||||||
|
---
|
||||||
|
CHANGES.md | 27 +++++++++++++++++++++++++++
|
||||||
|
NEWS.md | 4 ++++
|
||||||
|
crypto/objects/obj_dat.c | 19 +++++++++++++++++++
|
||||||
|
3 files changed, 50 insertions(+)
|
||||||
|
|
||||||
|
--- a/CHANGES.md
|
||||||
|
+++ b/CHANGES.md
|
||||||
|
@@ -30,6 +30,32 @@ breaking changes, and mappings for the l
|
||||||
|
|
||||||
|
### Changes between 3.0.7 and 3.0.8 [7 Feb 2023]
|
||||||
|
|
||||||
|
+ * Mitigate for the time it takes for `OBJ_obj2txt` to translate gigantic
|
||||||
|
+ OBJECT IDENTIFIER sub-identifiers to canonical numeric text form.
|
||||||
|
+
|
||||||
|
+ OBJ_obj2txt() would translate any size OBJECT IDENTIFIER to canonical
|
||||||
|
+ numeric text form. For gigantic sub-identifiers, this would take a very
|
||||||
|
+ long time, the time complexity being O(n^2) where n is the size of that
|
||||||
|
+ sub-identifier. ([CVE-2023-2650])
|
||||||
|
+
|
||||||
|
+ To mitigitate this, `OBJ_obj2txt()` will only translate an OBJECT
|
||||||
|
+ IDENTIFIER to canonical numeric text form if the size of that OBJECT
|
||||||
|
+ IDENTIFIER is 586 bytes or less, and fail otherwise.
|
||||||
|
+
|
||||||
|
+ The basis for this restriction is RFC 2578 (STD 58), section 3.5. OBJECT
|
||||||
|
+ IDENTIFIER values, which stipulates that OBJECT IDENTIFIERS may have at
|
||||||
|
+ most 128 sub-identifiers, and that the maximum value that each sub-
|
||||||
|
+ identifier may have is 2^32-1 (4294967295 decimal).
|
||||||
|
+
|
||||||
|
+ For each byte of every sub-identifier, only the 7 lower bits are part of
|
||||||
|
+ the value, so the maximum amount of bytes that an OBJECT IDENTIFIER with
|
||||||
|
+ these restrictions may occupy is 32 * 128 / 7, which is approximately 586
|
||||||
|
+ bytes.
|
||||||
|
+
|
||||||
|
+ Ref: https://datatracker.ietf.org/doc/html/rfc2578#section-3.5
|
||||||
|
+
|
||||||
|
+ *Richard Levitte*
|
||||||
|
+
|
||||||
|
* Fixed buffer overread in AES-XTS decryption on ARM 64 bit platforms which
|
||||||
|
happens if the buffer size is 4 mod 5. This can trigger a crash of an
|
||||||
|
application using AES-XTS decryption if the memory just after the buffer
|
||||||
|
@@ -19613,6 +19639,7 @@ ndif
|
||||||
|
|
||||||
|
<!-- Links -->
|
||||||
|
|
||||||
|
+[CVE-2023-2650]: https://www.openssl.org/news/vulnerabilities.html#CVE-2023-2650
|
||||||
|
[CVE-2023-1255]: https://www.openssl.org/news/vulnerabilities.html#CVE-2023-1255
|
||||||
|
[CVE-2023-0466]: https://www.openssl.org/news/vulnerabilities.html#CVE-2023-0466
|
||||||
|
[CVE-2023-0465]: https://www.openssl.org/news/vulnerabilities.html#CVE-2023-0465
|
||||||
|
--- a/NEWS.md
|
||||||
|
+++ b/NEWS.md
|
||||||
|
@@ -20,6 +20,8 @@ OpenSSL 3.0
|
||||||
|
|
||||||
|
### Major changes between OpenSSL 3.0.7 and OpenSSL 3.0.8 [7 Feb 2023]
|
||||||
|
|
||||||
|
+ * Mitigate for very slow `OBJ_obj2txt()` performance with gigantic OBJECT
|
||||||
|
+ IDENTIFIER sub-identities. ([CVE-2023-2650])
|
||||||
|
* Fixed buffer overread in AES-XTS decryption on ARM 64 bit platforms
|
||||||
|
([CVE-2023-1255])
|
||||||
|
* Fixed documentation of X509_VERIFY_PARAM_add0_policy() ([CVE-2023-0466])
|
||||||
|
@@ -1436,6 +1438,8 @@ OpenSSL 0.9.x
|
||||||
|
* Support for various new platforms
|
||||||
|
|
||||||
|
<!-- Links -->
|
||||||
|
+
|
||||||
|
+[CVE-2023-2650]: https://www.openssl.org/news/vulnerabilities.html#CVE-2023-2650
|
||||||
|
[CVE-2023-1255]: https://www.openssl.org/news/vulnerabilities.html#CVE-2023-1255
|
||||||
|
[CVE-2023-0466]: https://www.openssl.org/news/vulnerabilities.html#CVE-2023-0466
|
||||||
|
[CVE-2023-0465]: https://www.openssl.org/news/vulnerabilities.html#CVE-2023-0465
|
||||||
|
--- a/crypto/objects/obj_dat.c
|
||||||
|
+++ b/crypto/objects/obj_dat.c
|
||||||
|
@@ -443,6 +443,25 @@ int OBJ_obj2txt(char *buf, int buf_len,
|
||||||
|
first = 1;
|
||||||
|
bl = NULL;
|
||||||
|
|
||||||
|
+ /*
|
||||||
|
+ * RFC 2578 (STD 58) says this about OBJECT IDENTIFIERs:
|
||||||
|
+ *
|
||||||
|
+ * > 3.5. OBJECT IDENTIFIER values
|
||||||
|
+ * >
|
||||||
|
+ * > An OBJECT IDENTIFIER value is an ordered list of non-negative
|
||||||
|
+ * > numbers. For the SMIv2, each number in the list is referred to as a
|
||||||
|
+ * > sub-identifier, there are at most 128 sub-identifiers in a value,
|
||||||
|
+ * > and each sub-identifier has a maximum value of 2^32-1 (4294967295
|
||||||
|
+ * > decimal).
|
||||||
|
+ *
|
||||||
|
+ * So a legitimate OID according to this RFC is at most (32 * 128 / 7),
|
||||||
|
+ * i.e. 586 bytes long.
|
||||||
|
+ *
|
||||||
|
+ * Ref: https://datatracker.ietf.org/doc/html/rfc2578#section-3.5
|
||||||
|
+ */
|
||||||
|
+ if (len > 586)
|
||||||
|
+ goto err;
|
||||||
|
+
|
||||||
|
while (len > 0) {
|
||||||
|
l = 0;
|
||||||
|
use_bn = 0;
|
57
openssl-CVE-2023-2975.patch
Normal file
57
openssl-CVE-2023-2975.patch
Normal file
|
@ -0,0 +1,57 @@
|
||||||
|
From 00e2f5eea29994d19293ec4e8c8775ba73678598 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Tomas Mraz <tomas@openssl.org>
|
||||||
|
Date: Tue, 4 Jul 2023 17:30:35 +0200
|
||||||
|
Subject: [PATCH] Do not ignore empty associated data with AES-SIV mode
|
||||||
|
|
||||||
|
The AES-SIV mode allows for multiple associated data items
|
||||||
|
authenticated separately with any of these being 0 length.
|
||||||
|
|
||||||
|
The provided implementation ignores such empty associated data
|
||||||
|
which is incorrect in regards to the RFC 5297 and is also
|
||||||
|
a security issue because such empty associated data then become
|
||||||
|
unauthenticated if an application expects to authenticate them.
|
||||||
|
|
||||||
|
Fixes CVE-2023-2975
|
||||||
|
|
||||||
|
Reviewed-by: Matt Caswell <matt@openssl.org>
|
||||||
|
Reviewed-by: Paul Dale <pauli@openssl.org>
|
||||||
|
(Merged from https://github.com/openssl/openssl/pull/21384)
|
||||||
|
|
||||||
|
(cherry picked from commit c426c281cfc23ab182f7d7d7a35229e7db1494d9)
|
||||||
|
---
|
||||||
|
.../implementations/ciphers/cipher_aes_siv.c | 18 +++++++++++-------
|
||||||
|
1 file changed, 11 insertions(+), 7 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/providers/implementations/ciphers/cipher_aes_siv.c b/providers/implementations/ciphers/cipher_aes_siv.c
|
||||||
|
index 45010b90db..b396c8651a 100644
|
||||||
|
--- a/providers/implementations/ciphers/cipher_aes_siv.c
|
||||||
|
+++ b/providers/implementations/ciphers/cipher_aes_siv.c
|
||||||
|
@@ -120,14 +120,18 @@ static int siv_cipher(void *vctx, unsigned char *out, size_t *outl,
|
||||||
|
if (!ossl_prov_is_running())
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
- if (inl == 0) {
|
||||||
|
- *outl = 0;
|
||||||
|
- return 1;
|
||||||
|
- }
|
||||||
|
+ /* Ignore just empty encryption/decryption call and not AAD. */
|
||||||
|
+ if (out != NULL) {
|
||||||
|
+ if (inl == 0) {
|
||||||
|
+ if (outl != NULL)
|
||||||
|
+ *outl = 0;
|
||||||
|
+ return 1;
|
||||||
|
+ }
|
||||||
|
|
||||||
|
- if (outsize < inl) {
|
||||||
|
- ERR_raise(ERR_LIB_PROV, PROV_R_OUTPUT_BUFFER_TOO_SMALL);
|
||||||
|
- return 0;
|
||||||
|
+ if (outsize < inl) {
|
||||||
|
+ ERR_raise(ERR_LIB_PROV, PROV_R_OUTPUT_BUFFER_TOO_SMALL);
|
||||||
|
+ return 0;
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ctx->hw->cipher(ctx, out, in, inl) <= 0)
|
||||||
|
--
|
||||||
|
2.34.1
|
||||||
|
|
60
openssl-CVE-2023-3446-test.patch
Normal file
60
openssl-CVE-2023-3446-test.patch
Normal file
|
@ -0,0 +1,60 @@
|
||||||
|
From 8a62fd996cb1c22383ec75b4155d54dec4a1b0ee Mon Sep 17 00:00:00 2001
|
||||||
|
From: Matt Caswell <matt@openssl.org>
|
||||||
|
Date: Fri, 7 Jul 2023 14:39:48 +0100
|
||||||
|
Subject: [PATCH] Add a test for CVE-2023-3446
|
||||||
|
|
||||||
|
Confirm that the only errors DH_check() finds with DH parameters with an
|
||||||
|
excessively long modulus is that the modulus is too large. We should not
|
||||||
|
be performing time consuming checks using that modulus.
|
||||||
|
|
||||||
|
Reviewed-by: Paul Dale <pauli@openssl.org>
|
||||||
|
Reviewed-by: Tom Cosgrove <tom.cosgrove@arm.com>
|
||||||
|
Reviewed-by: Bernd Edlinger <bernd.edlinger@hotmail.de>
|
||||||
|
Reviewed-by: Tomas Mraz <tomas@openssl.org>
|
||||||
|
(Merged from https://github.com/openssl/openssl/pull/21451)
|
||||||
|
|
||||||
|
(cherry picked from commit ede782b4c8868d1f09c9cd237f82b6f35b7dba8b)
|
||||||
|
---
|
||||||
|
test/dhtest.c | 15 +++++++++++++--
|
||||||
|
1 file changed, 13 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/test/dhtest.c b/test/dhtest.c
|
||||||
|
index 7b587f3cfa8f..f8dd8f3aa722 100644
|
||||||
|
--- a/test/dhtest.c
|
||||||
|
+++ b/test/dhtest.c
|
||||||
|
@@ -73,7 +73,7 @@ static int dh_test(void)
|
||||||
|
goto err1;
|
||||||
|
|
||||||
|
/* check fails, because p is way too small */
|
||||||
|
- if (!DH_check(dh, &i))
|
||||||
|
+ if (!TEST_true(DH_check(dh, &i)))
|
||||||
|
goto err2;
|
||||||
|
i ^= DH_MODULUS_TOO_SMALL;
|
||||||
|
if (!TEST_false(i & DH_CHECK_P_NOT_PRIME)
|
||||||
|
@@ -124,6 +124,17 @@ static int dh_test(void)
|
||||||
|
/* We'll have a stale error on the queue from the above test so clear it */
|
||||||
|
ERR_clear_error();
|
||||||
|
|
||||||
|
+ /* Modulus of size: dh check max modulus bits + 1 */
|
||||||
|
+ if (!TEST_true(BN_set_word(p, 1))
|
||||||
|
+ || !TEST_true(BN_lshift(p, p, OPENSSL_DH_CHECK_MAX_MODULUS_BITS)))
|
||||||
|
+ goto err3;
|
||||||
|
+
|
||||||
|
+ /*
|
||||||
|
+ * We expect no checks at all for an excessively large modulus
|
||||||
|
+ */
|
||||||
|
+ if (!TEST_false(DH_check(dh, &i)))
|
||||||
|
+ goto err3;
|
||||||
|
+
|
||||||
|
/*
|
||||||
|
* II) key generation
|
||||||
|
*/
|
||||||
|
@@ -138,7 +149,7 @@ static int dh_test(void)
|
||||||
|
goto err3;
|
||||||
|
|
||||||
|
/* ... and check whether it is valid */
|
||||||
|
- if (!DH_check(a, &i))
|
||||||
|
+ if (!TEST_true(DH_check(a, &i)))
|
||||||
|
goto err3;
|
||||||
|
if (!TEST_false(i & DH_CHECK_P_NOT_PRIME)
|
||||||
|
|| !TEST_false(i & DH_CHECK_P_NOT_SAFE_PRIME)
|
71
openssl-CVE-2023-3446.patch
Normal file
71
openssl-CVE-2023-3446.patch
Normal file
|
@ -0,0 +1,71 @@
|
||||||
|
From 1fa20cf2f506113c761777127a38bce5068740eb Mon Sep 17 00:00:00 2001
|
||||||
|
From: Matt Caswell <matt@openssl.org>
|
||||||
|
Date: Thu, 6 Jul 2023 16:36:35 +0100
|
||||||
|
Subject: [PATCH] Fix DH_check() excessive time with over sized modulus
|
||||||
|
|
||||||
|
The DH_check() function checks numerous aspects of the key or parameters
|
||||||
|
that have been supplied. Some of those checks use the supplied modulus
|
||||||
|
value even if it is excessively large.
|
||||||
|
|
||||||
|
There is already a maximum DH modulus size (10,000 bits) over which
|
||||||
|
OpenSSL will not generate or derive keys. DH_check() will however still
|
||||||
|
perform various tests for validity on such a large modulus. We introduce a
|
||||||
|
new maximum (32,768) over which DH_check() will just fail.
|
||||||
|
|
||||||
|
An application that calls DH_check() and supplies a key or parameters
|
||||||
|
obtained from an untrusted source could be vulnerable to a Denial of
|
||||||
|
Service attack.
|
||||||
|
|
||||||
|
The function DH_check() is itself called by a number of other OpenSSL
|
||||||
|
functions. An application calling any of those other functions may
|
||||||
|
similarly be affected. The other functions affected by this are
|
||||||
|
DH_check_ex() and EVP_PKEY_param_check().
|
||||||
|
|
||||||
|
CVE-2023-3446
|
||||||
|
|
||||||
|
Reviewed-by: Paul Dale <pauli@openssl.org>
|
||||||
|
Reviewed-by: Tom Cosgrove <tom.cosgrove@arm.com>
|
||||||
|
Reviewed-by: Bernd Edlinger <bernd.edlinger@hotmail.de>
|
||||||
|
Reviewed-by: Tomas Mraz <tomas@openssl.org>
|
||||||
|
(Merged from https://github.com/openssl/openssl/pull/21451)
|
||||||
|
|
||||||
|
(cherry picked from commit 9e0094e2aa1b3428a12d5095132f133c078d3c3d)
|
||||||
|
---
|
||||||
|
crypto/dh/dh_check.c | 6 ++++++
|
||||||
|
include/openssl/dh.h | 6 +++++-
|
||||||
|
2 files changed, 11 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/crypto/dh/dh_check.c b/crypto/dh/dh_check.c
|
||||||
|
index 0b391910d6b3..84a926998e9b 100644
|
||||||
|
--- a/crypto/dh/dh_check.c
|
||||||
|
+++ b/crypto/dh/dh_check.c
|
||||||
|
@@ -152,6 +152,12 @@ int DH_check(const DH *dh, int *ret)
|
||||||
|
if (nid != NID_undef)
|
||||||
|
return 1;
|
||||||
|
|
||||||
|
+ /* Don't do any checks at all with an excessively large modulus */
|
||||||
|
+ if (BN_num_bits(dh->params.p) > OPENSSL_DH_CHECK_MAX_MODULUS_BITS) {
|
||||||
|
+ ERR_raise(ERR_LIB_DH, DH_R_MODULUS_TOO_LARGE);
|
||||||
|
+ return 0;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
if (!DH_check_params(dh, ret))
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
diff --git a/include/openssl/dh.h b/include/openssl/dh.h
|
||||||
|
index b97871eca7fa..36420f51d89e 100644
|
||||||
|
--- a/include/openssl/dh.h
|
||||||
|
+++ b/include/openssl/dh.h
|
||||||
|
@@ -89,7 +89,11 @@ int EVP_PKEY_CTX_get0_dh_kdf_ukm(EVP_PKEY_CTX *ctx, unsigned char **ukm);
|
||||||
|
# include <openssl/dherr.h>
|
||||||
|
|
||||||
|
# ifndef OPENSSL_DH_MAX_MODULUS_BITS
|
||||||
|
-# define OPENSSL_DH_MAX_MODULUS_BITS 10000
|
||||||
|
+# define OPENSSL_DH_MAX_MODULUS_BITS 10000
|
||||||
|
+# endif
|
||||||
|
+
|
||||||
|
+# ifndef OPENSSL_DH_CHECK_MAX_MODULUS_BITS
|
||||||
|
+# define OPENSSL_DH_CHECK_MAX_MODULUS_BITS 32768
|
||||||
|
# endif
|
||||||
|
|
||||||
|
# define OPENSSL_DH_FIPS_MIN_MODULUS_BITS 1024
|
64
openssl-DEFAULT_SUSE_cipher.patch
Normal file
64
openssl-DEFAULT_SUSE_cipher.patch
Normal file
|
@ -0,0 +1,64 @@
|
||||||
|
Index: openssl-3.0.0-alpha7/ssl/ssl_ciph.c
|
||||||
|
===================================================================
|
||||||
|
--- openssl-3.0.0-alpha7.orig/ssl/ssl_ciph.c
|
||||||
|
+++ openssl-3.0.0-alpha7/ssl/ssl_ciph.c
|
||||||
|
@@ -1592,7 +1592,14 @@ STACK_OF(SSL_CIPHER) *ssl_create_cipher_
|
||||||
|
*/
|
||||||
|
ok = 1;
|
||||||
|
rule_p = rule_str;
|
||||||
|
- if (strncmp(rule_str, "DEFAULT", 7) == 0) {
|
||||||
|
+ if (strncmp(rule_str,"DEFAULT_SUSE", 12) == 0) {
|
||||||
|
+ ok = ssl_cipher_process_rulestr(SSL_DEFAULT_SUSE_CIPHER_LIST,
|
||||||
|
+ &head, &tail, ca_list, c);
|
||||||
|
+ rule_p += 12;
|
||||||
|
+ if (*rule_p == ':')
|
||||||
|
+ rule_p++;
|
||||||
|
+ }
|
||||||
|
+ else if (strncmp(rule_str, "DEFAULT", 7) == 0) {
|
||||||
|
ok = ssl_cipher_process_rulestr(OSSL_default_cipher_list(),
|
||||||
|
&head, &tail, ca_list, c);
|
||||||
|
rule_p += 7;
|
||||||
|
Index: openssl-3.0.0-alpha7/test/recipes/99-test_suse_default_ciphers.t
|
||||||
|
===================================================================
|
||||||
|
--- /dev/null
|
||||||
|
+++ openssl-3.0.0-alpha7/test/recipes/99-test_suse_default_ciphers.t
|
||||||
|
@@ -0,0 +1,23 @@
|
||||||
|
+#! /usr/bin/env perl
|
||||||
|
+
|
||||||
|
+use strict;
|
||||||
|
+use warnings;
|
||||||
|
+
|
||||||
|
+use OpenSSL::Test qw/:DEFAULT/;
|
||||||
|
+use OpenSSL::Test::Utils;
|
||||||
|
+
|
||||||
|
+setup("test_default_ciphersuites");
|
||||||
|
+
|
||||||
|
+plan tests => 6;
|
||||||
|
+
|
||||||
|
+my @cipher_suites = ("DEFAULT_SUSE", "DEFAULT");
|
||||||
|
+
|
||||||
|
+foreach my $cipherlist (@cipher_suites) {
|
||||||
|
+ ok(run(app(["openssl", "ciphers", "-s", $cipherlist])),
|
||||||
|
+ "openssl ciphers works with ciphersuite $cipherlist");
|
||||||
|
+ ok(!grep(/(MD5|RC4|DES)/, run(app(["openssl", "ciphers", "-s", $cipherlist]), capture => 1)),
|
||||||
|
+ "$cipherlist shouldn't contain MD5, DES or RC4\n");
|
||||||
|
+ ok(grep(/(TLSv1.3)/, run(app(["openssl", "ciphers", "-tls1_3", "-s", "-v", $cipherlist]), capture => 1)),
|
||||||
|
+ "$cipherlist should contain TLSv1.3 ciphers\n");
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
Index: openssl-3.0.0-alpha7/include/openssl/ssl.h.in
|
||||||
|
===================================================================
|
||||||
|
--- openssl-3.0.0-alpha7.orig/include/openssl/ssl.h.in
|
||||||
|
+++ openssl-3.0.0-alpha7/include/openssl/ssl.h.in
|
||||||
|
@@ -189,6 +189,11 @@ extern "C" {
|
||||||
|
*/
|
||||||
|
# ifndef OPENSSL_NO_DEPRECATED_3_0
|
||||||
|
# define SSL_DEFAULT_CIPHER_LIST "ALL:!COMPLEMENTOFDEFAULT:!eNULL"
|
||||||
|
+# define SSL_DEFAULT_SUSE_CIPHER_LIST "ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:"\
|
||||||
|
+ "ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA256:"\
|
||||||
|
+ "ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:"\
|
||||||
|
+ "DHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-CAMELLIA256-SHA:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-CAMELLIA128-SHA:"\
|
||||||
|
+ "AES256-GCM-SHA384:AES256-SHA256:AES256-SHA:CAMELLIA256-SHA:AES128-GCM-SHA256:AES128-SHA256:AES128-SHA:CAMELLIA128-SHA"
|
||||||
|
/*
|
||||||
|
* This is the default set of TLSv1.3 ciphersuites
|
||||||
|
* DEPRECATED IN 3.0.0, in favor of OSSL_default_ciphersuites()
|
|
@ -0,0 +1,42 @@
|
||||||
|
From 6790960076742a9053c624e26fbb87fcd5789e27 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Tomas Mraz <tmraz@fedoraproject.org>
|
||||||
|
Date: Thu, 24 Sep 2020 09:17:26 +0200
|
||||||
|
Subject: Override default paths for the CA directory tree
|
||||||
|
|
||||||
|
Also add default section to load crypto-policies configuration
|
||||||
|
for TLS.
|
||||||
|
|
||||||
|
It needs to be reverted before running tests.
|
||||||
|
|
||||||
|
(was openssl-1.1.1-conf-paths.patch)
|
||||||
|
---
|
||||||
|
apps/openssl.cnf | 20 ++++++++++++++++++--
|
||||||
|
2 files changed, 19 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
|
Index: openssl-3.0.1/apps/openssl.cnf
|
||||||
|
===================================================================
|
||||||
|
--- openssl-3.0.1.orig/apps/openssl.cnf
|
||||||
|
+++ openssl-3.0.1/apps/openssl.cnf
|
||||||
|
@@ -52,6 +52,8 @@ tsa_policy3 = 1.2.3.4.5.7
|
||||||
|
|
||||||
|
[openssl_init]
|
||||||
|
providers = provider_sect
|
||||||
|
+# Load default TLS policy configuration
|
||||||
|
+ssl_conf = ssl_module
|
||||||
|
|
||||||
|
# List of providers to load
|
||||||
|
[provider_sect]
|
||||||
|
@@ -71,6 +73,13 @@ default = default_sect
|
||||||
|
[default_sect]
|
||||||
|
# activate = 1
|
||||||
|
|
||||||
|
+[ ssl_module ]
|
||||||
|
+
|
||||||
|
+system_default = crypto_policy
|
||||||
|
+
|
||||||
|
+[ crypto_policy ]
|
||||||
|
+
|
||||||
|
+.include = /etc/crypto-policies/back-ends/opensslcnf.config
|
||||||
|
|
||||||
|
####################################################################
|
||||||
|
[ ca ]
|
13
openssl-no-date.patch
Normal file
13
openssl-no-date.patch
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
Index: openssl-1.1.1-pre1/util/mkbuildinf.pl
|
||||||
|
===================================================================
|
||||||
|
--- openssl-1.1.1-pre1.orig/util/mkbuildinf.pl 2018-02-13 16:31:28.011389734 +0100
|
||||||
|
+++ openssl-1.1.1-pre1/util/mkbuildinf.pl 2018-02-13 16:31:51.539764582 +0100
|
||||||
|
@@ -28,7 +28,7 @@ print <<"END_OUTPUT";
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define PLATFORM "platform: $platform"
|
||||||
|
-#define DATE "built on: $date"
|
||||||
|
+#define DATE ""
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Generate compiler_flags as an array of individual characters. This is a
|
22
openssl-pkgconfig.patch
Normal file
22
openssl-pkgconfig.patch
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
Index: openssl-1.1.1-pre3/Configurations/unix-Makefile.tmpl
|
||||||
|
===================================================================
|
||||||
|
--- openssl-1.1.1-pre3.orig/Configurations/unix-Makefile.tmpl 2018-03-20 15:20:03.037124698 +0100
|
||||||
|
+++ openssl-1.1.1-pre3/Configurations/unix-Makefile.tmpl 2018-03-20 15:21:04.206084731 +0100
|
||||||
|
@@ -843,7 +843,7 @@ libcrypto.pc:
|
||||||
|
echo 'Version: '$(VERSION); \
|
||||||
|
echo 'Libs: -L$${libdir} -lcrypto'; \
|
||||||
|
echo 'Libs.private: $(LIB_EX_LIBS)'; \
|
||||||
|
- echo 'Cflags: -I$${includedir}' ) > libcrypto.pc
|
||||||
|
+ echo 'Cflags: -DOPENSSL_LOAD_CONF -I$${includedir}' ) > libcrypto.pc
|
||||||
|
|
||||||
|
libssl.pc:
|
||||||
|
@ ( echo 'prefix=$(INSTALLTOP)'; \
|
||||||
|
@@ -860,7 +860,7 @@ libssl.pc:
|
||||||
|
echo 'Version: '$(VERSION); \
|
||||||
|
echo 'Requires.private: libcrypto'; \
|
||||||
|
echo 'Libs: -L$${libdir} -lssl'; \
|
||||||
|
- echo 'Cflags: -I$${includedir}' ) > libssl.pc
|
||||||
|
+ echo 'Cflags: -DOPENSSL_LOAD_CONF -I$${includedir}' ) > libssl.pc
|
||||||
|
|
||||||
|
openssl.pc:
|
||||||
|
@ ( echo 'prefix=$(INSTALLTOP)'; \
|
32
openssl-ppc64-config.patch
Normal file
32
openssl-ppc64-config.patch
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
Index: openssl-3.0.0-alpha5/util/perl/OpenSSL/config.pm
|
||||||
|
===================================================================
|
||||||
|
--- openssl-3.0.0-alpha5.orig/util/perl/OpenSSL/config.pm
|
||||||
|
+++ openssl-3.0.0-alpha5/util/perl/OpenSSL/config.pm
|
||||||
|
@@ -525,14 +525,19 @@ EOF
|
||||||
|
return { target => "linux-ppc64" } if $KERNEL_BITS eq '64';
|
||||||
|
|
||||||
|
my %config = ();
|
||||||
|
- if (!okrun('echo __LP64__',
|
||||||
|
- 'gcc -E -x c - 2>/dev/null',
|
||||||
|
- 'grep "^__LP64__" 2>&1 >/dev/null') ) {
|
||||||
|
- %config = ( cflags => [ '-m32' ],
|
||||||
|
- cxxflags => [ '-m32' ] );
|
||||||
|
- }
|
||||||
|
- return { target => "linux-ppc",
|
||||||
|
- %config };
|
||||||
|
+ # ##
|
||||||
|
+ # if (!okrun('echo __LP64__', 'gcc -E -x c - 2>/dev/null', 'grep "^__LP64__" 2>&1 >/dev/null') ) { %config = ( cflags => [ '-m32' ], cxxflags => [ '-m32' ] ); }
|
||||||
|
+ # return { target => "linux-ppc",
|
||||||
|
+ # %config };
|
||||||
|
+ # ##
|
||||||
|
+ if (okrun('echo __LP64__', 'gcc -E -x c - 2>/dev/null',
|
||||||
|
+ 'grep "^__LP64__" 2>&1 >/dev/null') )
|
||||||
|
+ {
|
||||||
|
+ return { target => "linux-ppc", %config };
|
||||||
|
+ } else {
|
||||||
|
+ return { target => "linux-ppc64", %config };
|
||||||
|
+ }
|
||||||
|
+ ##
|
||||||
|
}
|
||||||
|
],
|
||||||
|
[ 'ppc64le-.*-linux2', { target => "linux-ppc64le" } ],
|
17
openssl-truststore.patch
Normal file
17
openssl-truststore.patch
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
Don't use the legacy /etc/ssl/certs directory anymore but rather the
|
||||||
|
p11-kit generated /var/lib/ca-certificates/openssl one (fate#314991)
|
||||||
|
Index: openssl-1.1.1-pre1/include/internal/cryptlib.h
|
||||||
|
===================================================================
|
||||||
|
--- openssl-1.1.1-pre1.orig/include/internal/cryptlib.h 2018-02-13 14:48:12.000000000 +0100
|
||||||
|
+++ openssl-1.1.1-pre1/include/internal/cryptlib.h 2018-02-13 16:30:11.738161984 +0100
|
||||||
|
@@ -59,8 +59,8 @@ DEFINE_LHASH_OF(MEM);
|
||||||
|
|
||||||
|
# ifndef OPENSSL_SYS_VMS
|
||||||
|
# define X509_CERT_AREA OPENSSLDIR
|
||||||
|
-# define X509_CERT_DIR OPENSSLDIR "/certs"
|
||||||
|
-# define X509_CERT_FILE OPENSSLDIR "/cert.pem"
|
||||||
|
+# define X509_CERT_DIR "/var/lib/ca-certificates/openssl"
|
||||||
|
+# define X509_CERT_FILE "/var/lib/ca-certificates/ca-bundle.pem"
|
||||||
|
# define X509_PRIVATE_DIR OPENSSLDIR "/private"
|
||||||
|
# define CTLOG_FILE OPENSSLDIR "/ct_log_list.cnf"
|
||||||
|
# else
|
127
openssl-use-versioned-config.patch
Normal file
127
openssl-use-versioned-config.patch
Normal file
|
@ -0,0 +1,127 @@
|
||||||
|
From 300d2b56166aee85d9ce4c1275da1ad79c876e31 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Sahana Prasad <sahana@redhat.com>
|
||||||
|
Date: Tue, 5 Oct 2021 12:10:42 +0200
|
||||||
|
Subject: [PATCH] Updates the conf file to openssl11.cnf Resolves:
|
||||||
|
rhbz#1947584, rhbz#2003123 Signed-off-by: Sahana Prasad <sahana@redhat.com>
|
||||||
|
|
||||||
|
Refactored for SUSE by Simon Lees sflees@suse.de
|
||||||
|
|
||||||
|
Index: openssl-3.0.2/include/internal/cryptlib.h
|
||||||
|
===================================================================
|
||||||
|
--- openssl-3.0.2.orig/include/internal/cryptlib.h
|
||||||
|
+++ openssl-3.0.2/include/internal/cryptlib.h
|
||||||
|
@@ -61,7 +61,7 @@ DEFINE_STACK_OF(EX_CALLBACK)
|
||||||
|
typedef struct mem_st MEM;
|
||||||
|
DEFINE_LHASH_OF(MEM);
|
||||||
|
|
||||||
|
-# define OPENSSL_CONF "openssl.cnf"
|
||||||
|
+# define OPENSSL_CONF "openssl3.cnf"
|
||||||
|
|
||||||
|
# ifndef OPENSSL_SYS_VMS
|
||||||
|
# define X509_CERT_AREA OPENSSLDIR
|
||||||
|
Index: openssl-3.0.2/Configurations/unix-Makefile.tmpl
|
||||||
|
===================================================================
|
||||||
|
--- openssl-3.0.2.orig/Configurations/unix-Makefile.tmpl
|
||||||
|
+++ openssl-3.0.2/Configurations/unix-Makefile.tmpl
|
||||||
|
@@ -675,14 +675,14 @@ install_ssldirs:
|
||||||
|
: {- output_on() if windowsdll(); "" -}; \
|
||||||
|
fi; \
|
||||||
|
done
|
||||||
|
- @$(ECHO) "install $(SRCDIR)/apps/openssl.cnf -> $(DESTDIR)$(OPENSSLDIR)/openssl.cnf.dist"
|
||||||
|
- @cp $(SRCDIR)/apps/openssl.cnf $(DESTDIR)$(OPENSSLDIR)/openssl.cnf.new
|
||||||
|
- @chmod 644 $(DESTDIR)$(OPENSSLDIR)/openssl.cnf.new
|
||||||
|
- @mv -f $(DESTDIR)$(OPENSSLDIR)/openssl.cnf.new $(DESTDIR)$(OPENSSLDIR)/openssl.cnf.dist
|
||||||
|
- @if [ ! -f "$(DESTDIR)$(OPENSSLDIR)/openssl.cnf" ]; then \
|
||||||
|
- $(ECHO) "install $(SRCDIR)/apps/openssl.cnf -> $(DESTDIR)$(OPENSSLDIR)/openssl.cnf"; \
|
||||||
|
- cp $(SRCDIR)/apps/openssl.cnf $(DESTDIR)$(OPENSSLDIR)/openssl.cnf; \
|
||||||
|
- chmod 644 $(DESTDIR)$(OPENSSLDIR)/openssl.cnf; \
|
||||||
|
+ @$(ECHO) "install $(SRCDIR)/apps/openssl.cnf -> $(DESTDIR)$(OPENSSLDIR)/openssl3.cnf.dist"
|
||||||
|
+ @cp $(SRCDIR)/apps/openssl.cnf $(DESTDIR)$(OPENSSLDIR)/openssl3.cnf.new
|
||||||
|
+ @chmod 644 $(DESTDIR)$(OPENSSLDIR)/openssl3.cnf.new
|
||||||
|
+ @mv -f $(DESTDIR)$(OPENSSLDIR)/openssl3.cnf.new $(DESTDIR)$(OPENSSLDIR)/openssl3.cnf.dist
|
||||||
|
+ @if [ ! -f "$(DESTDIR)$(OPENSSLDIR)/openssl3.cnf" ]; then \
|
||||||
|
+ $(ECHO) "install $(SRCDIR)/apps/openssl.cnf -> $(DESTDIR)$(OPENSSLDIR)/openssl3.cnf"; \
|
||||||
|
+ cp $(SRCDIR)/apps/openssl.cnf $(DESTDIR)$(OPENSSLDIR)/openssl3.cnf; \
|
||||||
|
+ chmod 644 $(DESTDIR)$(OPENSSLDIR)/openssl3.cnf; \
|
||||||
|
fi
|
||||||
|
@$(ECHO) "install $(SRCDIR)/apps/ct_log_list.cnf -> $(DESTDIR)$(OPENSSLDIR)/ct_log_list.cnf.dist"
|
||||||
|
@cp $(SRCDIR)/apps/ct_log_list.cnf $(DESTDIR)$(OPENSSLDIR)/ct_log_list.cnf.new
|
||||||
|
@@ -1136,7 +1136,7 @@ lint:
|
||||||
|
|
||||||
|
generate_apps:
|
||||||
|
( cd $(SRCDIR); $(PERL) VMS/VMSify-conf.pl \
|
||||||
|
- < apps/openssl.cnf > apps/openssl-vms.cnf )
|
||||||
|
+ < apps/openssl3.cnf > apps/openssl-vms.cnf )
|
||||||
|
|
||||||
|
generate_crypto_bn:
|
||||||
|
( cd $(SRCDIR); $(PERL) crypto/bn/bn_prime.pl > crypto/bn/bn_prime.h )
|
||||||
|
@@ -1374,7 +1374,7 @@ tar:
|
||||||
|
|
||||||
|
# Helper targets #####################################################
|
||||||
|
|
||||||
|
-link-utils: $(BLDDIR)/util/opensslwrap.sh $(BLDDIR)/apps/openssl.cnf
|
||||||
|
+link-utils: $(BLDDIR)/util/opensslwrap.sh $(BLDDIR)/apps/openssl3.cnf
|
||||||
|
|
||||||
|
$(BLDDIR)/util/opensslwrap.sh: Makefile
|
||||||
|
@if [ "$(SRCDIR)" != "$(BLDDIR)" ]; then \
|
||||||
|
@@ -1382,7 +1382,7 @@ $(BLDDIR)/util/opensslwrap.sh: Makefile
|
||||||
|
ln -sf "../$(SRCDIR)/util/`basename "$@"`" "$(BLDDIR)/util"; \
|
||||||
|
fi
|
||||||
|
|
||||||
|
-$(BLDDIR)/apps/openssl.cnf: Makefile
|
||||||
|
+$(BLDDIR)/apps/openssl3.cnf: Makefile
|
||||||
|
@if [ "$(SRCDIR)" != "$(BLDDIR)" ]; then \
|
||||||
|
mkdir -p "$(BLDDIR)/apps"; \
|
||||||
|
ln -sf "../$(SRCDIR)/apps/`basename "$@"`" "$(BLDDIR)/apps"; \
|
||||||
|
Index: openssl-3.0.2/Configure
|
||||||
|
===================================================================
|
||||||
|
--- openssl-3.0.2.orig/Configure
|
||||||
|
+++ openssl-3.0.2/Configure
|
||||||
|
@@ -56,7 +56,7 @@ EOF
|
||||||
|
# directories bin, lib, include, share/man, share/doc/openssl
|
||||||
|
# This becomes the value of INSTALLTOP in Makefile
|
||||||
|
# (Default: /usr/local)
|
||||||
|
-# --openssldir OpenSSL data area, such as openssl.cnf, certificates and keys.
|
||||||
|
+# --openssldir OpenSSL data area, such as openssl3.cnf, certificates and keys.
|
||||||
|
# If it's a relative directory, it will be added on the directory
|
||||||
|
# given with --prefix.
|
||||||
|
# This becomes the value of OPENSSLDIR in Makefile and in C.
|
||||||
|
Index: openssl-3.0.2/doc/HOWTO/certificates.txt
|
||||||
|
===================================================================
|
||||||
|
--- openssl-3.0.2.orig/doc/HOWTO/certificates.txt
|
||||||
|
+++ openssl-3.0.2/doc/HOWTO/certificates.txt
|
||||||
|
@@ -16,7 +16,7 @@ Certificate authorities should read http
|
||||||
|
In all the cases shown below, the standard configuration file, as
|
||||||
|
compiled into openssl, will be used. You may find it in /etc/,
|
||||||
|
/usr/local/ssl/ or somewhere else. By default the file is named
|
||||||
|
-openssl.cnf and is described at https://www.openssl.org/docs/apps/config.html.
|
||||||
|
+openssl3.cnf and is described at https://www.openssl.org/docs/apps/config.html.
|
||||||
|
You can specify a different configuration file using the
|
||||||
|
'-config {file}' argument with the commands shown below.
|
||||||
|
|
||||||
|
Index: openssl-3.0.2/doc/man3/OPENSSL_config.pod
|
||||||
|
===================================================================
|
||||||
|
--- openssl-3.0.2.orig/doc/man3/OPENSSL_config.pod
|
||||||
|
+++ openssl-3.0.2/doc/man3/OPENSSL_config.pod
|
||||||
|
@@ -17,7 +17,7 @@ see L<openssl_user_macros(7)>:
|
||||||
|
|
||||||
|
=head1 DESCRIPTION
|
||||||
|
|
||||||
|
-OPENSSL_config() configures OpenSSL using the standard B<openssl.cnf> and
|
||||||
|
+OPENSSL_config() configures OpenSSL using the standard B<openssl3.cnf> and
|
||||||
|
reads from the application section B<appname>. If B<appname> is NULL then
|
||||||
|
the default section, B<openssl_conf>, will be used.
|
||||||
|
Errors are silently ignored.
|
||||||
|
Index: openssl-3.0.2/INSTALL.md
|
||||||
|
===================================================================
|
||||||
|
--- openssl-3.0.2.orig/INSTALL.md
|
||||||
|
+++ openssl-3.0.2/INSTALL.md
|
||||||
|
@@ -567,7 +567,7 @@ is an objective.
|
||||||
|
|
||||||
|
### no-autoload-config
|
||||||
|
|
||||||
|
-Don't automatically load the default `openssl.cnf` file.
|
||||||
|
+Don't automatically load the default `openssl3.cnf` file.
|
||||||
|
|
||||||
|
Typically OpenSSL will automatically load a system config file which configures
|
||||||
|
default SSL options.
|
94
openssl.keyring
Normal file
94
openssl.keyring
Normal file
|
@ -0,0 +1,94 @@
|
||||||
|
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||||
|
Comment: 7953 AC1F BC3D C8B3 B292 393E D5E9 E43F 7DF9 EE8C
|
||||||
|
Comment: Richard Levitte <levitte@lp.se>
|
||||||
|
Comment: Richard Levitte <levitte@openssl.org>
|
||||||
|
Comment: Richard Levitte <richard@levitte.org>
|
||||||
|
|
||||||
|
xsFNBFQwazYBEAC01v949yFYzwbn0UkEkM3MHTrDqWbp+erhXqdVD5ymG/pXvmqx
|
||||||
|
5KlxL1TZMuWEFuaq9EVkW8Wm5glk4D14IalIVKARAMDwqgNrPnw0GCAmNIf+Omvl
|
||||||
|
G7gdsSR93eALJp1vvKZpeEVZj0M0gQ1i4QIIR8PMqs+2jaYyed4HhRYzUbGKZMnr
|
||||||
|
94Onby8FIAYq0B79VqBv5NfMc2KEKrLXwuDSjtZd2TGB7qeLF7sCczyFoi5XTj+B
|
||||||
|
iVfdxCzoYEa1Rjp5hGllVj85w2DdfKED/BW7VCel4H+WTZGqTFQ1e3kPo1KdqlwD
|
||||||
|
F+Ci2JFU6myPy0LpHrNhn6FsdQGOuRKgYPycol7VzJHKtcGNMDkUFGV2DsgljQuW
|
||||||
|
Sj5TNNX5umFCIIN94eLvHtV9bXP98yKB/5pr2JhagL6kdU7OE0c/mugA05gGQTUJ
|
||||||
|
DeLNsRq54YC+CLyM9dxMvH7yB43yMfUvgKcSRt0sHUo8g5aOYdFq0SXQUr8+t/iH
|
||||||
|
3t5/JxhqBik8FBiu0aISsTDUbvbxQQQe/LhfR+FWDZRFwHOL0VELapfw1whitGG+
|
||||||
|
y+F9fQIJfa5yzEiC9AWYZjHRaFB7q6LAvF0V8vP+pkT157fTK63W53mt1+VPMt2L
|
||||||
|
732i+/Cqy/6HzwOdnNnNyfEdvm2Jojs8KXN20vChnfUGifvTjxuiFib9sQARAQAB
|
||||||
|
zR9SaWNoYXJkIExldml0dGUgPGxldml0dGVAbHAuc2U+wsGPBBMBAgAiBQJUMGwd
|
||||||
|
AhsDBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAhCRDV6eQ/ffnujBYhBHlTrB+8
|
||||||
|
PcizspI5PtXp5D99+e6Mq7QP/iNhBEDJYRTrYc6JAmRIg6YyiKjeOx8kXtVCe9+q
|
||||||
|
CzC+Y9ehyZB5Dyl0Ybej9jNJdEDJzDHKzVwU4NrfefcTWqUOQDNbpClGtXcQHlUt
|
||||||
|
hjREPWpyAEH1OhD5NDTSMI5YYKZDEfiN6oEpWlc7WK0mXZuY5mHOo0B3yNDfV845
|
||||||
|
+7CGPK9zuE56/f9SLmCaFsCkNMGbvV4ybLRoBfZdnC5NPOKyJXQ0TG0CbxGMgIN5
|
||||||
|
cOrBphU+ZrPYY+p4jEoD5rvFugQl4+oRsvxygpJV5t8pe1ihNMhmzu3CpRtMjmRA
|
||||||
|
dzK+27Z8p7m8BORuoC+NbXVpcmjIueXDkYdxP+09qUyw8xE398tAuEXpbCVoQ68b
|
||||||
|
6NDCBpowgvUu34zxDn0wKdt2YGHB6z7Kl7b8RycWG3Y8u/Hs+l6QehEmiy6UKXl7
|
||||||
|
zW3PIi3192WzElUi7TtG/btqC6YPs0U3SQMkNWzwkjbKM9bC4gPFMK05a8QENc66
|
||||||
|
M+USWjNg0TiAkGP9PDlpYyhtjicCTgL51lDm8LBXr9cbzvXav7Jc6NVh7Zby89r1
|
||||||
|
DsPFzfDkccOX6nSnqYMISmvRUGrGfgrkeeM0MNu93aPTrs+0fxq+HJIZEhX/YCyQ
|
||||||
|
N4jqM+hQGh9bOwM7BacaP9F9vnq2hDK2WIXlWChX9Q70xArViJqzI8/76Ph1inPb
|
||||||
|
jbJczSVSaWNoYXJkIExldml0dGUgPGxldml0dGVAb3BlbnNzbC5vcmc+wsGPBBMB
|
||||||
|
AgAiBQJUMGwKAhsDBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAhCRDV6eQ/ffnu
|
||||||
|
jBYhBHlTrB+8PcizspI5PtXp5D99+e6M1bAP/0byoJMiMsswapbBypQCT/vQmaoX
|
||||||
|
jZzNcU4qAKlB5EMlHkxl1T8ytEXxmNMd/e0ltV9HALeBqX1eYHS7oTG3rMXKuYVY
|
||||||
|
TO19eM2wLiCW664EUtOsB9zAnpp6X+8UWMoNEpWlEHgkdlADQ0xIrrH3pt29SAbd
|
||||||
|
x0QsvwkWPawEoKMoUiGPnVY4hAt7Xx9gDmWEa2T6tExd9soBBTIuIpTH3MbAEHsv
|
||||||
|
nBbdyarNltGF/pXYGMmGaYmU0WujqKzqpBpy3zwd0Rx1Kms5e0ZcypVzqx3Xgcue
|
||||||
|
W8fbMPTZbG+Z922GUFDJ139WjAA2FsMJ9ES7XIIoJh/4nfBwk+PXcj29TieDnl2r
|
||||||
|
d4x7Yxnqp4Vzau+IARz9Vr1OIFVlQbaSdXfmDFi/fvVf9CJZnWwcSwkqp4pk50Zy
|
||||||
|
nEA+8TzEQj08jdj0+yrJNvbRxqbIafzSmoU77bANs4gc0WOdTTpvv4honUQROARp
|
||||||
|
G/JT47hE7ATVGNdF7bmWNEyEYFtZMdGP0xD+K0xEgsir65aruVixVrNKxOX9wqx6
|
||||||
|
JGzHTSTgtAVYAvMIsWJTLuCXZbMRmmmmubfyVaMAisz5UIYD+TCPncuJ1dMUW9WI
|
||||||
|
uLNFGLTRGHri01EWe2epaHZWA0WB0cQZaeGpc7C986WskDi9SA9ZzCIGW4oQIBQX
|
||||||
|
lRJjjYxIBCnjxtUWzSVSaWNoYXJkIExldml0dGUgPHJpY2hhcmRAbGV2aXR0ZS5v
|
||||||
|
cmc+wsGSBBMBAgAlAhsDBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAUCVDBtJgIZ
|
||||||
|
AQAhCRDV6eQ/ffnujBYhBHlTrB+8PcizspI5PtXp5D99+e6MmN0P/AmpB8DasBnj
|
||||||
|
h9fAlBM8kEZ23MHVdEguPWX8KBML4L6eVlWRn7hdfpvOS90Ll5LTdtWPAQs8lDYh
|
||||||
|
4V86hIYgLK9tisZyby+5NT4dEl6CXgHbRjdDbp0xKfGc5F9jWzPZpG8ZdDz6Zbvd
|
||||||
|
ooy/4ThXNS16HcsJRckan6oFjCNAWSNpXDYcLtA7+9ncimrC/C+kGYlyPWJGYZu1
|
||||||
|
C3I+oL3+qWwiqAG9hp/zedsIsNP7o24wb0SgD0dTzphmOAPwTRfGS2DHhpbAH9P6
|
||||||
|
MZPiFBRGsARRRFfTRGkzI9W1M4bv9l/L8s6STpjD8+40f+aUE8cyUcNj1ycyRGFA
|
||||||
|
nwf5MeO3MqzvjocoUyoZNc4t7/6rh6sceFjgMt/DFFZbi3kvz9cJBcaN6TWWktd4
|
||||||
|
+1WmLxwcF0n3xaB04KCvXTaBZ5f/Hz5D4O8HyYsS6GlW6yIUiuAOvav8WizaTMbY
|
||||||
|
k81XfXBuBKv7Vxk0fRYf9+HJ7fyWyIlIN9FqrSiiopA3JR+8gP8ueFcycmLnl2D9
|
||||||
|
fyZn/sv+UCLrMR6fyD/5EtzgzW0AJ8BDJw5n7ctmZ6UhuasDZZMPC2uB9LVhpQ8W
|
||||||
|
3mDDxJoaYe5bE2p0ca+mwEHZQpbpjmtT/2x5rGFZYxBUOhuGn/94zEYSqLLDirlF
|
||||||
|
IEUgucXLOLQHyEl+kEkCLEmSbn71WsM8wsGPBBMBAgAiBQJUMGs2AhsDBgsJCAcD
|
||||||
|
AgYVCAIJCgsEFgIDAQIeAQIXgAAhCRDV6eQ/ffnujBYhBHlTrB+8PcizspI5PtXp
|
||||||
|
5D99+e6MbdMP/1yj/fl/t8sl6ZH8v26uBBLSUeZPJYef9TCoe6akV//x4JLujB8y
|
||||||
|
dGGW8bToC680zpuYlNn+avMwmjyocPwe7Cqgev6AyO+CjspoodM9Xai0y10CAHCl
|
||||||
|
vGAW8mX7c79jtLcMB/Z/0+5u4ErkzfwyURRpB5deLcQ4LhyRVZbLQ72fdCrmPYzO
|
||||||
|
e6Rhmfr9nWKL/oHDTLDUtRjAXdurI8YQKK9nCtbsM2uytvYkzpD2wx0B16rB7N04
|
||||||
|
QLJBNDyOUJwnm4K+Xt9LLs8NUJ8JXCdwXKXGrFFbt2b3vmy0y4/NR5AUoS444ao5
|
||||||
|
1mybA19WkCcCj5mSKmfZ9Dfbv6K3JCJx4ra5uJT2HP2M3NugtumQ1KPBUlNApVC6
|
||||||
|
u+Vn7SMqFW/KFRCxOjXDWWU+F4prqzOVc5SYqIUOk7XVxgj1FBryw5Wel5iq1Bn8
|
||||||
|
La1Fv3Hs/+pUKHRYYIC48kRET7h6oCmBiNn+XmU0A2qZnIyblmVpmfYftj3UWUC0
|
||||||
|
S86qf/dRi8unTXYl8qEQyOSPz8g6t2RDgEsJOzKhiO+j+wcBYVOgrSgsawC8yxjA
|
||||||
|
zfVwkprUJognVBJFCv4sKMb9wg99iEacI6O401w3FQy5FyokjmxXzrhn0UPj3t35
|
||||||
|
wd81WZ5HWaBSLnBo8HklfDyaybPlXODldSI7OGOch/0/CZEQzQwzsmnazsFNBFQw
|
||||||
|
azYBEADPNcBdaXTUwkG81K9NRKsKGVZ1coVRxkOx2+VD2THTY45sBx9MGmQsmSpj
|
||||||
|
U45kx/wO5KiTVj+bM+scSzwNgERqLiyf/2hgOIDYaoyKSfAfIVCmm5pSa2Ad01RV
|
||||||
|
9qT3i0eSSpa1Kpx8eAHKcVsDsWb2ZCd8/MI9778cCjrCbPI4o9zEVK+fjtmYKtdk
|
||||||
|
HsEoMSVU6Jy86E908OLaJbOeo1a7bSKs4tU8zGWAX+ddY5Cb+w3cHQb4QheDWZHM
|
||||||
|
el8ZcEgTah7huS6lUA4seQnTKXHmkIZ+uNtB3gFMKso/6GoOGZnUTk8dPY3POLY1
|
||||||
|
nbMQ/dEvMQpFxLCOBNQP0lhO4DGP0KuwLXzq2XAxrylX5tY0bNmZKLTjhi4CbKAt
|
||||||
|
c/+iwMUkQQXJRw7Vlp9Fp9ogOvzx/YlMaZQZZixg5uN2b4UD5cWliHn4Aq7DkTzQ
|
||||||
|
Je31m7sezA3cLnFR86ol2X77y79n0GRjGsMa+b+e9NRWNKs28JiCPF3ya31Kk+3+
|
||||||
|
sjauCZQW3KYx31Il5bO3ulLHOtxhSkCUHx5sJ81NJIhZFr+7yAel/ECCiT9KbVbh
|
||||||
|
ddJBHsd7GNkwzb1QivcqnYiBW9QzXkQ+xAKHfS7YM5ooYcg6G7jw89/W0xznnGiz
|
||||||
|
5JTjMkj1s9cppQ8tdqiV4Uemvx/96Nr5F7n++UJZ7Oval9/zswARAQABwsF2BBgB
|
||||||
|
AgAJBQJUMGs2AhsMACEJENXp5D99+e6MFiEEeVOsH7w9yLOykjk+1enkP3357ozr
|
||||||
|
2A//YzMQJ6Mo+/SU328dOeoseI/sFypuK882pPhXfJqX8l8H1zyHbKWy5lLLiv1M
|
||||||
|
oNOC/8pWbpv2QlWyN3PKrB6srClnpPyiHIO37/lQBcpjvAfy9HWpl21FDxn9Ruxn
|
||||||
|
a/IMYwq60EjE5h8NynNn57vydF3qTcTqkhtHW61L3vbBAcz9VMSay9QVm1f6qzM5
|
||||||
|
WbbLxp1sfNjQWKSo381kjs1Vj7yCTBrJul3qSeX0CsRB7WF5VYMalpNTHPRIqCWp
|
||||||
|
zTMcO3E5SSGIJy+AqwAZZvFiylGrSsux6TnVEVJ07s0nn1yj3q7Ii7av+waGmTf7
|
||||||
|
9B0AyZv0IZ4j4NUWFNnGhsG1bEumFLkQl7Id/M61k0yKOusHdzDcZbCzecyww1w3
|
||||||
|
WD+j4wvGkfBy4mQRqLiyjutsN/dpxRRkULATME+TH9J5eNq0A5sRRaayEiA1TDcA
|
||||||
|
WfF0PtA4smNy1GyIarobC+xn8AENi4eeYZBbfDfh8oRhEsICQ6rs098wiYz8jtZ/
|
||||||
|
pOruzbiD7ZKDy+vjKtYqgjGnioHQalJCZrKTUnREpH102pg1Cw6v2OcjiXsqU5L7
|
||||||
|
Yrhv1jQIluII051VIJ/QBWe5uT7YiJOsMLMQGWvkObPXEYLld2UF6hK6MH4epkwV
|
||||||
|
/w1uNqnlvIeEFgHTKmSHvfwlAF64lUiDCUdWExXybKkE2NY=
|
||||||
|
=1H60
|
||||||
|
-----END PGP PUBLIC KEY BLOCK-----
|
27
showciphers.c
Normal file
27
showciphers.c
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
#include <openssl/err.h>
|
||||||
|
#include <openssl/ssl.h>
|
||||||
|
|
||||||
|
int main() {
|
||||||
|
SSL_CTX *ctx = NULL;
|
||||||
|
SSL *ssl = NULL;
|
||||||
|
STACK_OF(SSL_CIPHER) *sk = NULL;
|
||||||
|
const SSL_METHOD *meth = TLS_server_method();
|
||||||
|
int i;
|
||||||
|
const char *p;
|
||||||
|
|
||||||
|
ctx = SSL_CTX_new(meth);
|
||||||
|
if (ctx == NULL)
|
||||||
|
return 1;
|
||||||
|
ssl = SSL_new(ctx);
|
||||||
|
if (ssl == NULL)
|
||||||
|
return 1;
|
||||||
|
sk = SSL_get_ciphers(ssl);
|
||||||
|
for (i = 0; i < sk_SSL_CIPHER_num(sk); i++) {
|
||||||
|
const SSL_CIPHER *c = sk_SSL_CIPHER_value(sk, i);
|
||||||
|
p = SSL_CIPHER_get_name(c);
|
||||||
|
if (p == NULL)
|
||||||
|
break;
|
||||||
|
printf("%s\n", p);
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
Loading…
Add table
Reference in a new issue