mirror of
https://github.com/python/cpython.git
synced 2025-10-09 16:34:44 +00:00
Issue #13635: Add ssl.OP_CIPHER_SERVER_PREFERENCE, so that SSL servers
choose the cipher based on their own preferences, rather than on the client's.
This commit is contained in:
parent
bfaa79a982
commit
6db4944cc5
5 changed files with 18 additions and 1 deletions
|
@ -421,6 +421,13 @@ Constants
|
||||||
|
|
||||||
.. versionadded:: 3.2
|
.. versionadded:: 3.2
|
||||||
|
|
||||||
|
.. data:: OP_CIPHER_SERVER_PREFERENCE
|
||||||
|
|
||||||
|
Use the server's cipher ordering preference, rather than the client's.
|
||||||
|
This option has no effect on client sockets and SSLv2 server sockets.
|
||||||
|
|
||||||
|
.. versionadded:: 3.3
|
||||||
|
|
||||||
.. data:: HAS_SNI
|
.. data:: HAS_SNI
|
||||||
|
|
||||||
Whether the OpenSSL library has built-in support for the *Server Name
|
Whether the OpenSSL library has built-in support for the *Server Name
|
||||||
|
|
|
@ -66,7 +66,10 @@ from _ssl import (
|
||||||
SSLSyscallError, SSLEOFError,
|
SSLSyscallError, SSLEOFError,
|
||||||
)
|
)
|
||||||
from _ssl import CERT_NONE, CERT_OPTIONAL, CERT_REQUIRED
|
from _ssl import CERT_NONE, CERT_OPTIONAL, CERT_REQUIRED
|
||||||
from _ssl import OP_ALL, OP_NO_SSLv2, OP_NO_SSLv3, OP_NO_TLSv1
|
from _ssl import (
|
||||||
|
OP_ALL, OP_NO_SSLv2, OP_NO_SSLv3, OP_NO_TLSv1,
|
||||||
|
OP_CIPHER_SERVER_PREFERENCE,
|
||||||
|
)
|
||||||
from _ssl import RAND_status, RAND_egd, RAND_add, RAND_bytes, RAND_pseudo_bytes
|
from _ssl import RAND_status, RAND_egd, RAND_add, RAND_bytes, RAND_pseudo_bytes
|
||||||
from _ssl import (
|
from _ssl import (
|
||||||
SSL_ERROR_ZERO_RETURN,
|
SSL_ERROR_ZERO_RETURN,
|
||||||
|
|
|
@ -98,6 +98,7 @@ class BasicSocketTests(unittest.TestCase):
|
||||||
ssl.CERT_NONE
|
ssl.CERT_NONE
|
||||||
ssl.CERT_OPTIONAL
|
ssl.CERT_OPTIONAL
|
||||||
ssl.CERT_REQUIRED
|
ssl.CERT_REQUIRED
|
||||||
|
ssl.OP_CIPHER_SERVER_PREFERENCE
|
||||||
self.assertIn(ssl.HAS_SNI, {True, False})
|
self.assertIn(ssl.HAS_SNI, {True, False})
|
||||||
|
|
||||||
def test_random(self):
|
def test_random(self):
|
||||||
|
|
|
@ -419,6 +419,10 @@ Core and Builtins
|
||||||
Library
|
Library
|
||||||
-------
|
-------
|
||||||
|
|
||||||
|
- Issue #13635: Add ssl.OP_CIPHER_SERVER_PREFERENCE, so that SSL servers
|
||||||
|
choose the cipher based on their own preferences, rather than on the
|
||||||
|
client's.
|
||||||
|
|
||||||
- Issue #11813: Fix inspect.getattr_static for modules. Patch by Andreas
|
- Issue #11813: Fix inspect.getattr_static for modules. Patch by Andreas
|
||||||
Stührk.
|
Stührk.
|
||||||
|
|
||||||
|
|
|
@ -2450,6 +2450,8 @@ PyInit__ssl(void)
|
||||||
PyModule_AddIntConstant(m, "OP_NO_SSLv2", SSL_OP_NO_SSLv2);
|
PyModule_AddIntConstant(m, "OP_NO_SSLv2", SSL_OP_NO_SSLv2);
|
||||||
PyModule_AddIntConstant(m, "OP_NO_SSLv3", SSL_OP_NO_SSLv3);
|
PyModule_AddIntConstant(m, "OP_NO_SSLv3", SSL_OP_NO_SSLv3);
|
||||||
PyModule_AddIntConstant(m, "OP_NO_TLSv1", SSL_OP_NO_TLSv1);
|
PyModule_AddIntConstant(m, "OP_NO_TLSv1", SSL_OP_NO_TLSv1);
|
||||||
|
PyModule_AddIntConstant(m, "OP_CIPHER_SERVER_PREFERENCE",
|
||||||
|
SSL_OP_CIPHER_SERVER_PREFERENCE);
|
||||||
|
|
||||||
#ifdef SSL_CTRL_SET_TLSEXT_HOSTNAME
|
#ifdef SSL_CTRL_SET_TLSEXT_HOSTNAME
|
||||||
r = Py_True;
|
r = Py_True;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue