Viewing file: __init__.py (1.23 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
"""Verify certificates using native system trust stores"""
import sys as _sys
if _sys.version_info < (3, 10): raise ImportError("truststore requires Python 3.10 or later")
# Detect Python runtimes which don't implement SSLObject.get_unverified_chain() API # This API only became public in Python 3.13 but was available in CPython and PyPy since 3.10. if _sys.version_info < (3, 13): try: import ssl as _ssl except ImportError: raise ImportError("truststore requires the 'ssl' module") else: _sslmem = _ssl.MemoryBIO() _sslobj = _ssl.create_default_context().wrap_bio( _sslmem, _sslmem, ) try: while not hasattr(_sslobj, "get_unverified_chain"): _sslobj = _sslobj._sslobj # type: ignore[attr-defined] except AttributeError: raise ImportError( "truststore requires peer certificate chain APIs to be available" ) from None
del _ssl, _sslobj, _sslmem # noqa: F821
from ._api import SSLContext, extract_from_ssl, inject_into_ssl # noqa: E402
del _api, _sys # type: ignore[name-defined] # noqa: F821
__all__ = ["SSLContext", "inject_into_ssl", "extract_from_ssl"] __version__ = "0.10.0"
|