diff options
Diffstat (limited to 'src/service_identity/exceptions.py')
-rw-r--r-- | src/service_identity/exceptions.py | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/src/service_identity/exceptions.py b/src/service_identity/exceptions.py new file mode 100644 index 0000000..1dfc108 --- /dev/null +++ b/src/service_identity/exceptions.py @@ -0,0 +1,59 @@ +""" +All exceptions and warnings thrown by ``service_identity``. + +Separated into an own package for nicer tracebacks, you should still import +them from __init__.py. +""" + +from __future__ import absolute_import, division, print_function + +import attr + + +class SubjectAltNameWarning(Warning): + """ + Server Certificate does not contain a ``SubjectAltName``. + + Hostname matching is performed on the ``CommonName`` which is deprecated. + """ + + +@attr.s +class VerificationError(Exception): + """ + Service identity verification failed. + """ + errors = attr.ib() + + def __str__(self): + return self.__repr__() + + +@attr.s +class DNSMismatch(object): + """ + Not matching DNSPattern could be found. + """ + mismatched_id = attr.ib() + + +@attr.s +class SRVMismatch(object): + """ + Not matching SRVPattern could be found. + """ + mismatched_id = attr.ib() + + +@attr.s +class URIMismatch(object): + """ + Not matching URIPattern could be found. + """ + mismatched_id = attr.ib() + + +class CertificateError(Exception): + """ + Certificate contains invalid or unexpected data. + """ |