apply Loic's changes only in python3 for extra safety
authorThierry Parmentelat <thierry.parmentelat@inria.fr>
Fri, 20 May 2016 08:19:10 +0000 (10:19 +0200)
committerThierry Parmentelat <thierry.parmentelat@inria.fr>
Fri, 20 May 2016 08:19:10 +0000 (10:19 +0200)
sfa/trust/certificate.py
sfa/trust/credential.py
sfa/util/py23.py

index 5782910..a30d73a 100644 (file)
@@ -47,6 +47,8 @@ import OpenSSL
 # M2Crypto is imported on the fly to minimize crashes
 #import M2Crypto
 
 # 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
 
 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)
             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)
             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')
             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()
             string = string.decode()
         f.write(string)
         f.close()
index 0aa6162..daa8a89 100644 (file)
@@ -34,8 +34,7 @@ import datetime
 from tempfile import mkstemp
 from xml.dom.minidom import Document, parseString
 
 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:
 
 HAVELXML = False
 try:
@@ -579,7 +578,7 @@ class Credential(object):
             f = filep 
         else:
             f = open(filename, "w")
             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()
             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()
     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
 
             self.xml = self.xml.decode()
         return self.xml
 
index c1a0ec8..d26ebd1 100644 (file)
@@ -1,4 +1,7 @@
 # our own simplistic replacement for six
 # our own simplistic replacement for six
+import sys
+PY3 = sys.version_info[0] == 3
+
 try:
     StringType = basestring
 except:
 try:
     StringType = basestring
 except: