# 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
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)
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()
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:
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()
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
# our own simplistic replacement for six
+import sys
+PY3 = sys.version_info[0] == 3
+
try:
StringType = basestring
except: