PEP 644: OpenSSL 1.1.1, CI proviers, Debian, SHA-3 (GH-1875)
This commit is contained in:
parent
9ed544f00a
commit
96c1a37657
46
pep-0644.rst
46
pep-0644.rst
|
@ -1,5 +1,5 @@
|
||||||
PEP: 644
|
PEP: 644
|
||||||
Title: Require OpenSSL 1.1 or newer
|
Title: Require OpenSSL 1.1.1 or newer
|
||||||
Author: Christian Heimes <christian@python.org>
|
Author: Christian Heimes <christian@python.org>
|
||||||
BDFL-Delegate: n/a
|
BDFL-Delegate: n/a
|
||||||
Discussions-To: https://discuss.python.org/t/pep-644-require-openssl-1-1-or-newer/5584
|
Discussions-To: https://discuss.python.org/t/pep-644-require-openssl-1-1-or-newer/5584
|
||||||
|
@ -8,7 +8,7 @@ Type: Standards Track
|
||||||
Content-Type: text/x-rst
|
Content-Type: text/x-rst
|
||||||
Created: 27-Oct-2020
|
Created: 27-Oct-2020
|
||||||
Python-Version: 3.10
|
Python-Version: 3.10
|
||||||
Post-History: 27-Oct-2020, 03-Mar-2021
|
Post-History: 27-Oct-2020, 03-Mar-2021, 17-Mar-2021
|
||||||
|
|
||||||
|
|
||||||
Abstract
|
Abstract
|
||||||
|
@ -106,7 +106,7 @@ support for ChaCha20-Poly1305, BLAKE2 (basic features), X25519 and CT. The
|
||||||
majority of structs were made opaque and new APIs were introduced. OpenSSL
|
majority of structs were made opaque and new APIs were introduced. OpenSSL
|
||||||
1.1.0 is not API compatible with 1.0.2.
|
1.1.0 is not API compatible with 1.0.2.
|
||||||
|
|
||||||
- Debian 9 Stretch (estimated EOL 2022-06)
|
- Debian 9 Stretch (security support ended 2020-07, LTS until 2022-06)
|
||||||
- Ubuntu 18.04 LTS / Bionic (general support ends 2023-04)
|
- Ubuntu 18.04 LTS / Bionic (general support ends 2023-04)
|
||||||
|
|
||||||
|
|
||||||
|
@ -122,6 +122,7 @@ OpenSSL 1.1.1 added TLS 1.3, SHA-3, X448 and Ed448.
|
||||||
- Arch Linux current
|
- Arch Linux current
|
||||||
- CentOS 8.0+
|
- CentOS 8.0+
|
||||||
- Debian 10 Buster
|
- Debian 10 Buster
|
||||||
|
- Debian 11 Bullseye (ETA 2021-06)
|
||||||
- Fedora 29+
|
- Fedora 29+
|
||||||
- FreeBSD 11.3+
|
- FreeBSD 11.3+
|
||||||
- Gentoo Linux stable (dropped LibreSSL as alternative in January 2021 [10]_)
|
- Gentoo Linux stable (dropped LibreSSL as alternative in January 2021 [10]_)
|
||||||
|
@ -138,11 +139,22 @@ OpenSSL 1.1.1 added TLS 1.3, SHA-3, X448 and Ed448.
|
||||||
- VoidLinux (switched back to OpenSSL in March 2021 [5]_)
|
- VoidLinux (switched back to OpenSSL in March 2021 [5]_)
|
||||||
- Windows (python.org installer, Conda)
|
- Windows (python.org installer, Conda)
|
||||||
|
|
||||||
|
Major CI providers provide images with OpenSSL 1.1.1.
|
||||||
|
|
||||||
|
- AppVeyor (with image ``Ubuntu2004``)
|
||||||
|
- CircleCI (with recent ``cimg/base:stable`` or ``cimg/base:stable-20.04``)
|
||||||
|
- GitHub Actions (with ``runs-on: ubuntu-20.04``)
|
||||||
|
- Giblab CI (with Debian Stretch, Ubuntu Focal, CentOS 8, RHEL 8, or Fedora
|
||||||
|
runner)
|
||||||
|
- Packit
|
||||||
|
- TravisCI (with ``dist: focal``)
|
||||||
|
- Zuul
|
||||||
|
|
||||||
|
|
||||||
OpenSSL 3.0.0
|
OpenSSL 3.0.0
|
||||||
-------------
|
-------------
|
||||||
|
|
||||||
released: n/a (planned for early 2021)
|
released: n/a (planned for mid/late 2021)
|
||||||
|
|
||||||
OpenSSL 3.0.0 is currently under development. Major changes include
|
OpenSSL 3.0.0 is currently under development. Major changes include
|
||||||
relicensing to Apache License 2.0 and a new API for cryptographic algorithms
|
relicensing to Apache License 2.0 and a new API for cryptographic algorithms
|
||||||
|
@ -299,14 +311,33 @@ or extend compatibility with EOLed releases as we see fit.
|
||||||
|
|
||||||
The new ABI stability and LTS policies of OpenSSL [9]_ should help, too.
|
The new ABI stability and LTS policies of OpenSSL [9]_ should help, too.
|
||||||
|
|
||||||
|
Keep support for OpenSSL 1.1.0
|
||||||
|
------------------------------
|
||||||
|
|
||||||
|
It was suggested to keep support for OpenSSL 1.1.0 for compatibility with
|
||||||
|
Debian 9 (Stretch). The proposal was rejected since it would complicated code
|
||||||
|
cleanup and testing. Stretch is already out of regular security support and
|
||||||
|
close to end of long-term support. By the time of Python 3.10 final release,
|
||||||
|
Debian Buster and Debian Bullseye will be available.
|
||||||
|
|
||||||
|
Instead Python 3.10 will gain additional documentation and a new
|
||||||
|
``configure`` option ``--with-openssl-rpath=auto`` to simplify use of custom
|
||||||
|
OpenSSL builds [11].
|
||||||
|
|
||||||
|
|
||||||
Backwards Compatibility
|
Backwards Compatibility
|
||||||
=======================
|
=======================
|
||||||
|
|
||||||
Python 3.10 will no longer support TLS/SSL and fast hashing on platforms
|
Python 3.10 will no longer support TLS/SSL and fast hashing on platforms
|
||||||
with OpenSSL 1.0.2 or LibreSSL. This PEP is published at the beginning of
|
with OpenSSL 1.0.2 or LibreSSL. The first draft of this PEP was published at
|
||||||
the 3.10 release cycles. It gives vendors like Linux distributors or CI
|
the beginning of the 3.10 release cycles to give vendors like Linux
|
||||||
providers roughly 11 months to react.
|
distributors or CI providers sufficient time to plan.
|
||||||
|
|
||||||
|
Python's internal copy of the *Keccak Code Package* and the internal
|
||||||
|
``_sha3`` module will be removed. This will reduce source code size by
|
||||||
|
about 280kB and code size by roughly 0.5MB. The ``hashlib`` will solely rely
|
||||||
|
on OpenSSL's SHA-3 implementation. SHA-3 and SHAKE will no longer be available
|
||||||
|
without OpenSSL.
|
||||||
|
|
||||||
|
|
||||||
Disclaimer and special thanks
|
Disclaimer and special thanks
|
||||||
|
@ -332,6 +363,7 @@ References
|
||||||
.. [8] https://www.openssl.org/docs/OpenSSL300Design.html
|
.. [8] https://www.openssl.org/docs/OpenSSL300Design.html
|
||||||
.. [9] https://www.openssl.org/policies/releasestrat.html
|
.. [9] https://www.openssl.org/policies/releasestrat.html
|
||||||
.. [10] https://www.gentoo.org/support/news-items/2021-01-05-libressl-support-discontinued.html
|
.. [10] https://www.gentoo.org/support/news-items/2021-01-05-libressl-support-discontinued.html
|
||||||
|
.. [11] https://bugs.python.org/issue43466
|
||||||
|
|
||||||
|
|
||||||
Copyright
|
Copyright
|
||||||
|
|
Loading…
Reference in New Issue