You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
36 lines
1.2 KiB
36 lines
1.2 KiB
"""
|
|
Secure Sockets Layer (SSL/TLS) module.
|
|
"""
|
|
from gevent._compat import PY2
|
|
from gevent._util import copy_globals
|
|
|
|
# things we expect to override, here for static analysis
|
|
def wrap_socket(_sock, **_kwargs):
|
|
# pylint:disable=unused-argument
|
|
raise NotImplementedError()
|
|
|
|
if PY2:
|
|
if hasattr(__import__('ssl'), 'SSLContext'):
|
|
# It's not sufficient to check for >= 2.7.9; some distributions
|
|
# have backported most of PEP 466. Try to accommodate them. See Issue #702.
|
|
# We're just about to import ssl anyway so it's fine to import it here, just
|
|
# don't pollute the namespace
|
|
from gevent import _sslgte279 as _source
|
|
else: # pragma: no cover
|
|
from gevent import _ssl2 as _source
|
|
import warnings
|
|
warnings.warn(
|
|
"This version of Python has an insecure SSL implementation. "
|
|
"gevent is no longer tested with it, and support will be removed "
|
|
"in gevent 1.5. Please use Python 2.7.9 or newer.",
|
|
DeprecationWarning,
|
|
stacklevel=2,
|
|
)
|
|
del warnings
|
|
else:
|
|
# Py3
|
|
from gevent import _ssl3 as _source # pragma: no cover
|
|
|
|
|
|
copy_globals(_source, globals())
|