Pass in useful value when raising InvalidCABundle

Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
This commit is contained in:
Maxime “pep” Buquet 2022-04-04 21:37:41 +02:00
parent 82ff68cfac
commit 41afbb10df
Signed by: pep
GPG key ID: DEDA74AEECA9D0F2

View file

@ -35,6 +35,7 @@ import ssl
import uuid import uuid
import warnings import warnings
import weakref import weakref
import collections
from contextlib import contextmanager from contextlib import contextmanager
import xml.etree.ElementTree as ET import xml.etree.ElementTree as ET
@ -82,7 +83,7 @@ class InvalidCABundle(Exception):
Exception raised when the CA Bundle file hasn't been found. Exception raised when the CA Bundle file hasn't been found.
""" """
def __init__(self, path: Optional[Path]): def __init__(self, path: Optional[Union[Path, Iterable[Path]]]):
self.path = path self.path = path
@ -793,8 +794,9 @@ class XMLStream(asyncio.BaseProtocol):
if bundle.is_file(): if bundle.is_file():
ca_cert = bundle ca_cert = bundle
break break
if ca_cert is None: if ca_cert is None and \
raise InvalidCABundle(ca_cert) isinstance(self.ca_certs, (Path, collections.abc.Iterable)):
raise InvalidCABundle(self.ca_certs)
self.ssl_context.verify_mode = ssl.CERT_REQUIRED self.ssl_context.verify_mode = ssl.CERT_REQUIRED
self.ssl_context.load_verify_locations(cafile=ca_cert) self.ssl_context.load_verify_locations(cafile=ca_cert)