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 warnings
import weakref
import collections
from contextlib import contextmanager
import xml.etree.ElementTree as ET
@ -82,7 +83,7 @@ class InvalidCABundle(Exception):
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
@ -793,8 +794,9 @@ class XMLStream(asyncio.BaseProtocol):
if bundle.is_file():
ca_cert = bundle
break
if ca_cert is None:
raise InvalidCABundle(ca_cert)
if ca_cert is None and \
isinstance(self.ca_certs, (Path, collections.abc.Iterable)):
raise InvalidCABundle(self.ca_certs)
self.ssl_context.verify_mode = ssl.CERT_REQUIRED
self.ssl_context.load_verify_locations(cafile=ca_cert)