Initial Commit
This commit is contained in:
@@ -0,0 +1,30 @@
|
||||
import ssl
|
||||
import sys
|
||||
|
||||
# Hold on to the original class so we can create it consistently
|
||||
# even if we inject our own SSLContext into the ssl module.
|
||||
_original_SSLContext = ssl.SSLContext
|
||||
_original_super_SSLContext = super(_original_SSLContext, _original_SSLContext)
|
||||
|
||||
# CPython is known to be good, but non-CPython implementations
|
||||
# may implement SSLContext differently so to be safe we don't
|
||||
# subclass the SSLContext.
|
||||
|
||||
# This is returned by truststore.SSLContext.__class__()
|
||||
_truststore_SSLContext_dunder_class: type | None
|
||||
|
||||
# This value is the superclass of truststore.SSLContext.
|
||||
_truststore_SSLContext_super_class: type
|
||||
|
||||
if sys.implementation.name == "cpython":
|
||||
_truststore_SSLContext_super_class = _original_SSLContext
|
||||
_truststore_SSLContext_dunder_class = None
|
||||
else:
|
||||
_truststore_SSLContext_super_class = object
|
||||
_truststore_SSLContext_dunder_class = _original_SSLContext
|
||||
|
||||
|
||||
def _set_ssl_context_verify_mode(
|
||||
ssl_context: ssl.SSLContext, verify_mode: ssl.VerifyMode
|
||||
) -> None:
|
||||
_original_super_SSLContext.verify_mode.__set__(ssl_context, verify_mode) # type: ignore[attr-defined]
|
||||
Reference in New Issue
Block a user