From 70a671de96cb9dd3d13fc8ea3eba165a52849ffd Mon Sep 17 00:00:00 2001 From: Thierry Parmentelat Date: Fri, 20 May 2016 10:19:10 +0200 Subject: [PATCH] apply Loic's changes only in python3 for extra safety --- sfa/trust/certificate.py | 6 ++++-- sfa/trust/credential.py | 7 +++---- sfa/util/py23.py | 3 +++ 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/sfa/trust/certificate.py b/sfa/trust/certificate.py index 57829109..a30d73aa 100644 --- a/sfa/trust/certificate.py +++ b/sfa/trust/certificate.py @@ -47,6 +47,8 @@ import OpenSSL # M2Crypto is imported on the fly to minimize crashes #import M2Crypto +from sfa.util.py23 import PY3 + from sfa.util.faults import CertExpired, CertMissingParent, CertNotSignedByParent from sfa.util.sfalogging import logger @@ -432,7 +434,7 @@ class Certificate: logger.warn("None cert in certificate.save_to_string") return "" string = OpenSSL.crypto.dump_certificate(OpenSSL.crypto.FILETYPE_PEM, self.x509) - if isinstance(string, bytes): + if PY3 and isinstance(string, bytes): string = string.decode() if save_parents and self.parent: string = string + self.parent.save_to_string(save_parents) @@ -448,7 +450,7 @@ class Certificate: f = filep else: f = open(filename, 'w') - if isinstance(string, bytes): + if PY3 and isinstance(string, bytes): string = string.decode() f.write(string) f.close() diff --git a/sfa/trust/credential.py b/sfa/trust/credential.py index 0aa61621..daa8a897 100644 --- a/sfa/trust/credential.py +++ b/sfa/trust/credential.py @@ -34,8 +34,7 @@ import datetime from tempfile import mkstemp from xml.dom.minidom import Document, parseString -from sfa.util.py23 import StringType -from sfa.util.py23 import StringIO +from sfa.util.py23 import PY3, StringType, StringIO HAVELXML = False try: @@ -579,7 +578,7 @@ class Credential(object): f = filep else: f = open(filename, "w") - if isinstance(self.xml, bytes): + if PY3 and isinstance(self.xml, bytes): self.xml = self.xml.decode() f.write(self.xml) f.close() @@ -587,7 +586,7 @@ class Credential(object): def save_to_string(self, save_parents=True): if not self.xml: self.encode() - if isinstance(self.xml, bytes): + if PY3 and isinstance(self.xml, bytes): self.xml = self.xml.decode() return self.xml diff --git a/sfa/util/py23.py b/sfa/util/py23.py index c1a0ec80..d26ebd10 100644 --- a/sfa/util/py23.py +++ b/sfa/util/py23.py @@ -1,4 +1,7 @@ # our own simplistic replacement for six +import sys +PY3 = sys.version_info[0] == 3 + try: StringType = basestring except: -- 2.43.0