aboutsummaryrefslogtreecommitdiff
path: root/rpki/POW/__init__.py
diff options
context:
space:
mode:
authorRob Austein <sra@hactrn.net>2015-11-20 08:16:34 +0000
committerRob Austein <sra@hactrn.net>2015-11-20 08:16:34 +0000
commit63f731051c9ff62346ec2464bce59ca483c50a2d (patch)
tree8f7b6482fa66aa1b63ccb5ff711f946e3d772578 /rpki/POW/__init__.py
parent6c98d241fbb8e28c24b980dca0b8ce67891c4ca8 (diff)
Simple function to add back symbolic names and error strings for
OpenSSL certificate verification errors. svn path=/branches/tk705/; revision=6181
Diffstat (limited to 'rpki/POW/__init__.py')
-rw-r--r--rpki/POW/__init__.py29
1 files changed, 16 insertions, 13 deletions
diff --git a/rpki/POW/__init__.py b/rpki/POW/__init__.py
index 7f92c2cd..eae16b53 100644
--- a/rpki/POW/__init__.py
+++ b/rpki/POW/__init__.py
@@ -57,18 +57,19 @@ class StatusCode(object):
class StatusCodeDB(object):
- def __init__(self, bad, warn, good):
- for k, v in bad.iteritems():
- setattr(self, k, StatusCode(name = k, text = v, kind = "bad"))
- for k, v in warn.iteritems():
- setattr(self, k, StatusCode(name = k, text = v, kind = "warn"))
- for k, v in good.iteritems():
- setattr(self, k, StatusCode(name = k, text = v, kind = "good"))
-
- # Do we want something to let us use the OpenSSL symbolic names
- # for the X509_V_ERR_* codes, or just skip that entirely?
- #
- # Sort that out when we get to the Python-side API for this stuff.
+ def __init__(self, bad, warn, good, verification_errors):
+ self._map = dict((name, StatusCode(code = code, name = name, text = text,
+ kind = "bad" if code != 0 else "good"))
+ for code, name, text in verification_errors)
+ self._map.update((k, StatusCode(name = k, text = v, kind = "bad"))
+ for k, v in bad.iteritems())
+ self._map.update((k, StatusCode(name = k, text = v, kind = "warn"))
+ for k, v in warn.iteritems())
+ self._map.update((k, StatusCode(name = k, text = v, kind = "good"))
+ for k, v in good.iteritems())
+ for k, v in self._map.iteritems():
+ setattr(self, k, v)
+ self._map.update((s.code, s) for s in self._map.values() if s.code is not None)
validation_status = StatusCodeDB(
@@ -187,4 +188,6 @@ validation_status = StatusCodeDB(
OBJECT_ACCEPTED = "Object accepted",
RECHECKING_OBJECT = "Rechecking object",
RSYNC_TRANSFER_SUCCEEDED = "rsync transfer succeeded",
- VALIDATION_OK = "OK"))
+ VALIDATION_OK = "OK"),
+
+ verification_errors = _POW.getVerificationErrors())