aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--rpkid/rpki/left_right.py18
-rw-r--r--rpkid/rpki/x509.py11
2 files changed, 17 insertions, 12 deletions
diff --git a/rpkid/rpki/left_right.py b/rpkid/rpki/left_right.py
index b1b0cd96..8ae17f4a 100644
--- a/rpkid/rpki/left_right.py
+++ b/rpkid/rpki/left_right.py
@@ -739,7 +739,7 @@ class parent_elt(data_elt):
raise rpki.exceptions.BSCNotFound, "Could not find BSC %s" % self.bsc_id
if bsc.signing_cert is None:
- raise rpki.exceptions.BSCNotReady, "BSC %s is not yet usable" % self.bsc_id
+ raise rpki.exceptions.BSCNotReady, "BSC %r[%s] is not yet usable" % (bsc.bsc_handle, bsc.bsc_id)
q_msg = rpki.up_down.message_pdu.make_query(
payload = q_pdu,
@@ -751,11 +751,17 @@ class parent_elt(data_elt):
bsc.signing_cert_crl)
def unwrap(der):
- r_msg = rpki.up_down.cms_msg.unwrap(der, (self.gctx.bpki_ta,
- self.self().bpki_cert, self.self().bpki_glue,
- self.bpki_cms_cert, self.bpki_cms_glue))
- r_msg.payload.check_response()
- cb(r_msg)
+ try:
+ r_msg = rpki.up_down.cms_msg.unwrap(der, (self.gctx.bpki_ta,
+ self.self().bpki_cert, self.self().bpki_glue,
+ self.bpki_cms_cert, self.bpki_cms_glue))
+ r_msg.payload.check_response()
+ except (SystemExit, rpki.async.ExitNow):
+ raise
+ except Exception, e:
+ eb(e)
+ else:
+ cb(r_msg)
rpki.https.client(server_ta = (self.gctx.bpki_ta,
self.self().bpki_cert, self.self().bpki_glue,
diff --git a/rpkid/rpki/x509.py b/rpkid/rpki/x509.py
index 6d63bc7e..ea05c6ef 100644
--- a/rpkid/rpki/x509.py
+++ b/rpkid/rpki/x509.py
@@ -43,7 +43,7 @@ OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
"""
-import POW, POW.pkix, base64, lxml.etree, os
+import POW, POW.pkix, base64, lxml.etree, os, subprocess, sys
import rpki.exceptions, rpki.resource_set, rpki.oids, rpki.sundial
import rpki.manifest, rpki.roa, rpki.log, rpki.async
@@ -312,14 +312,13 @@ class DER_object(object):
"""
ret = None
- fn = "dumpasn1.tmp"
+ fn = "dumpasn1.%d.tmp" % os.getpid()
try:
f = open(fn, "wb")
f.write(self.get_DER())
f.close()
- f = os.popen("dumpasn1 2>&1 -a " + fn)
- ret = "\n".join(x for x in f.read().splitlines() if x.startswith(" "))
- f.close()
+ p = subprocess.Popen(("dumpasn1", "-a", fn), stdout = subprocess.PIPE, stderr = subprocess.STDOUT)
+ ret = "\n".join(x for x in p.communicate()[0].splitlines() if x.startswith(" "))
finally:
os.unlink(fn)
return ret
@@ -843,7 +842,7 @@ class CMS_object(DER_object):
dbg = self.dumpasn1()
else:
dbg = cms.pprint()
- print "CMS verification failed, dumping ASN.1 (%d octets):\n%s" % (len(self.get_DER()), dbg)
+ sys.stderr.write("CMS verification failed, dumping ASN.1 (%d octets):\n%s\n" % (len(self.get_DER()), dbg))
raise rpki.exceptions.CMSVerificationFailed, "CMS verification failed"
self.decode(content)