- Fixed an issue for CPython 3.13 where
ssl.SSLSocket
andssl.SSLObject
certificate chain APIs would return different types.
- Added support for Python 3.13.
- Fixed loading additional certificates on macOS.
- Changed error message for Windows when peer offers no certificates
and verification is enabled. Previously was
IndexError
, now isSSLCertVerificationError
.
- Added support for PyPy 3.10 and later.
- Changed the error raised when using an unsupported macOS version (10.7 or earlier) from an
OSError
to anImportError
to match the error raised in other situations where the module isn't supported.
- Fixed issue where a
RecursionError
that would be raised when settingSSLContext.minimum_version
or.maximum_version
.
- Truststore is now beta! Truststore will be made the default in a future pip release.
- Added
inject_into_ssl()
andextract_from_ssl()
to enable Truststore for all packages usingssl.SSLContext
automatically. - Added support for setting
check_hostname
,verify_mode
, andverify_flags
. - Added pass-through implementations for many
ssl.SSLContext
methods likeload_cert_chain()
,set_alpn_protocols()
, etc.
- Support for using truststore was released with pip v22.2! You can read more here about how to help us test truststore.
- Added David Glick as an author in packaging metadata.
- Added documentation for how to use
truststore
with urllib3, Requests, aiohttp, and pip. - Changed macOS SecureTransport error handling to raise as
ssl.SSLError
with message from the OS.
- Added more descriptive error messages to
ssl.SSLCertVerificationError
determined by the OS on macOS and Windows. - Changed Windows to follow
SSLContext.verify_flags
for strictly checking CRLs instead of checking CRLs strictly by default.
- Added support for loading extra CA certificates via
SSLContext.load_verify_locations()
. - Added type hints.
- Changed the name of
TruststoreSSLContext
toSSLContext
. - Changed certificate hostname verification to rely on macOS and Windows instead of OpenSSL.
- Fixed the order default certificates are loaded for OpenSSL backend.
- Added support for Windows via the CryptoAPI.
- Initial release with support for macOS and Linux.