summaryrefslogtreecommitdiff
path: root/src/service_identity/exceptions.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/service_identity/exceptions.py')
-rw-r--r--src/service_identity/exceptions.py59
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.
+ """