25 lines
937 B
Python
25 lines
937 B
Python
"""
|
|
The _compat module is used for code which requires branching between different
|
|
Python environments. It is excluded from the code coverage checks.
|
|
"""
|
|
import ssl
|
|
import sys
|
|
|
|
# `contextlib.asynccontextmanager` exists from Python 3.7 onwards.
|
|
# For 3.6 we require the `async_generator` package for a backported version.
|
|
try:
|
|
from contextlib import asynccontextmanager # type: ignore
|
|
except ImportError:
|
|
from async_generator import asynccontextmanager # type: ignore # noqa
|
|
|
|
|
|
def set_minimum_tls_version_1_2(context: ssl.SSLContext) -> None:
|
|
if sys.version_info >= (3, 10):
|
|
context.minimum_version = ssl.TLSVersion.TLSv1_2
|
|
else:
|
|
# These become deprecated in favor of 'context.minimum_version'
|
|
# from Python 3.10 onwards.
|
|
context.options |= ssl.OP_NO_SSLv2
|
|
context.options |= ssl.OP_NO_SSLv3
|
|
context.options |= ssl.OP_NO_TLSv1
|
|
context.options |= ssl.OP_NO_TLSv1_1
|