summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIllia Volochii <illia.volochii@gmail.com>2022-11-24 02:24:09 (GMT)
committerGitHub <noreply@github.com>2022-11-24 02:24:09 (GMT)
commit9dc08361bef67a331d1609c8629314c0ca5a79d5 (patch)
tree7a70ab90fa9f4e9f2b82b239f2f8f391a292664c
parentc69cfcdb116c4907b306e2bd0e263d5ceba48bd5 (diff)
downloadcpython-9dc08361bef67a331d1609c8629314c0ca5a79d5.zip
cpython-9dc08361bef67a331d1609c8629314c0ca5a79d5.tar.gz
cpython-9dc08361bef67a331d1609c8629314c0ca5a79d5.tar.bz2
gh-96828: Add an `ssl.OP_ENABLE_KTLS` option (GH-96830)
Expose the constant when OpenSSL defines it.
-rw-r--r--Doc/library/ssl.rst16
-rw-r--r--Misc/NEWS.d/next/Library/2022-09-14-21-56-15.gh-issue-96828.ZoOY5G.rst2
-rw-r--r--Modules/_ssl.c3
3 files changed, 21 insertions, 0 deletions
diff --git a/Doc/library/ssl.rst b/Doc/library/ssl.rst
index 4e6d06d..08824fe 100644
--- a/Doc/library/ssl.rst
+++ b/Doc/library/ssl.rst
@@ -807,6 +807,22 @@ Constants
.. versionadded:: 3.10
+.. data:: OP_ENABLE_KTLS
+
+ Enable the use of the kernel TLS. To benefit from the feature, OpenSSL must
+ have been compiled with support for it, and the negotiated cipher suites and
+ extensions must be supported by it (a list of supported ones may vary by
+ platform and kernel version).
+
+ Note that with enabled kernel TLS some cryptographic operations are
+ performed by the kernel directly and not via any available OpenSSL
+ Providers. This might be undesirable if, for example, the application
+ requires all cryptographic operations to be performed by the FIPS provider.
+
+ This option is only available with OpenSSL 3.0.0 and later.
+
+ .. versionadded:: 3.12
+
.. data:: HAS_ALPN
Whether the OpenSSL library has built-in support for the *Application-Layer
diff --git a/Misc/NEWS.d/next/Library/2022-09-14-21-56-15.gh-issue-96828.ZoOY5G.rst b/Misc/NEWS.d/next/Library/2022-09-14-21-56-15.gh-issue-96828.ZoOY5G.rst
new file mode 100644
index 0000000..d8a4488
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2022-09-14-21-56-15.gh-issue-96828.ZoOY5G.rst
@@ -0,0 +1,2 @@
+Add an :data:`~ssl.OP_ENABLE_KTLS` option for enabling the use of the kernel
+TLS (kTLS). Patch by Illia Volochii.
diff --git a/Modules/_ssl.c b/Modules/_ssl.c
index 2826d15..2885774 100644
--- a/Modules/_ssl.c
+++ b/Modules/_ssl.c
@@ -5864,6 +5864,9 @@ sslmodule_init_constants(PyObject *m)
PyModule_AddIntConstant(m, "OP_IGNORE_UNEXPECTED_EOF",
SSL_OP_IGNORE_UNEXPECTED_EOF);
#endif
+#ifdef SSL_OP_ENABLE_KTLS
+ PyModule_AddIntConstant(m, "OP_ENABLE_KTLS", SSL_OP_ENABLE_KTLS);
+#endif
#ifdef X509_CHECK_FLAG_ALWAYS_CHECK_SUBJECT
PyModule_AddIntConstant(m, "HOSTFLAG_ALWAYS_CHECK_SUBJECT",