poco/Crypto
Robin Lee 3bab3548f4
Basic support for OpenSSL 3.0.0 (#3448)
* updated README.md

* Create close-inactive-issues.yml

* check return codes of EVP_CIPHER_CTX_new and EVP_CipherInit

Especially with OpenSSL 3, it is possible that EVP_CipherInit may fail even when
passed a non-null cipher[1]. Without the checking, it will finally get to a
segfault.

[1] https://github.com/openssl/openssl/issues/16864

* Automatically load default and legacy providers with OpenSSL 3

Without the legacy provider [1], some ciphers are not available. For example,
the 'des-ecb' one used by test sutie is missed and the test will fail.

[1] OSSL_PROVIDER-LEGACY(7ossl)

* Make p12 ca order the same as pem

OpenSSL < 3 returns p12 ca order in reversed order. This is fixed
in OpenSSL 3. We work around it with old OpenSSL.

See:
https://github.com/openssl/openssl/issues/16421
https://github.com/openssl/openssl/pull/12641
f5eb85eb0f

* Implement SSL abort handling on OpenSSL 3

On an unexpected EOF, versions before OpenSSL 3.0 returned SSL_ERROR_SYSCALL,
nothing was added to the error stack, and errno was 0. Since OpenSSL 3.0 the
returned error is SSL_ERROR_SSL with a meaningful error on the error stack.[1]

[1] SSL_GET_ERROR(3ossl)

Co-authored-by: Günter Obiltschnig <guenter.obiltschnig@appinf.com>
Co-authored-by: Robin Lee <cheeselee@fedoraproject.org>
Co-authored-by: Aleksandar Fabijanic <aleks-f@users.noreply.github.com>
2022-03-29 13:23:44 -05:00
..
cmake #3157: fix(openssl): add missing dependency to OpenSSL components 2021-06-15 14:49:38 +02:00
include/Poco/Crypto detect ARM64 on Windows 2022-02-19 15:23:03 +01:00
samples added VS2022 project files 2022-02-19 21:06:24 +01:00
src Basic support for OpenSSL 3.0.0 (#3448) 2022-03-29 13:23:44 -05:00
testsuite added VS2022 project files 2022-02-19 21:06:24 +01:00
CMakeLists.txt make CMake files style (more) consistent 2020-02-14 11:07:32 +01:00
Crypto_vs140.sln re-generated project files 2020-01-11 22:33:28 +01:00
Crypto_vs140.vcxproj re-generated project files 2020-01-12 23:04:09 +01:00
Crypto_vs140.vcxproj.filters re-generated project files 2020-01-12 23:04:09 +01:00
Crypto_vs150.sln re-generated project files 2020-01-11 22:33:28 +01:00
Crypto_vs150.vcxproj re-generated project files 2020-01-12 23:04:09 +01:00
Crypto_vs150.vcxproj.filters re-generated project files 2020-01-12 23:04:09 +01:00
Crypto_vs160.sln re-generated project files 2020-01-11 22:33:28 +01:00
Crypto_vs160.vcxproj re-generated project files 2020-01-12 23:04:09 +01:00
Crypto_vs160.vcxproj.filters re-generated project files 2020-01-12 23:04:09 +01:00
Crypto_vs170.sln added VS2022 project files 2022-02-19 21:06:24 +01:00
Crypto_vs170.vcxproj added VS2022 project files 2022-02-19 21:06:24 +01:00
Crypto_vs170.vcxproj.filters added VS2022 project files 2022-02-19 21:06:24 +01:00
Crypto_VS90.sln new trunk (base for 1.5) 2012-04-23 01:14:34 +00:00
Crypto_VS90.vcproj project file fixes 2020-01-11 12:45:39 +01:00
Crypto.progen updated progen files 2020-01-11 09:34:54 +01:00
dependencies new trunk (base for 1.5) 2012-04-23 01:14:34 +00:00
Makefile removed openssl_ver script 2017-11-09 16:25:43 +01:00