@@ -75,7 +75,7 @@ def decode_base64_and_inflate(value):
7575 :rtype: string
7676 """
7777
78- return zlib .decompress (base64 .b64decode (value ), - 15 )
78+ return zlib .decompress (base64 .b64decode (value ), - 15 ). decode ( 'utf-8' )
7979
8080 @staticmethod
8181 def deflate_and_base64_encode (value ):
@@ -86,7 +86,7 @@ def deflate_and_base64_encode(value):
8686 :returns: The deflated and encoded string
8787 :rtype: string
8888 """
89- return base64 .b64encode (zlib .compress (value )[2 :- 4 ])
89+ return base64 .b64encode (zlib .compress (value . encode ( 'utf-8' ) )[2 :- 4 ])
9090
9191 @staticmethod
9292 def validate_xml (xml , schema , debug = False ):
@@ -107,11 +107,11 @@ def validate_xml(xml, schema, debug=False):
107107 if isinstance (xml , Document ):
108108 xml = xml .toxml ()
109109 elif isinstance (xml , etree ._Element ):
110- xml = tostring (xml )
110+ xml = tostring (xml , encoding = 'unicode' )
111111
112112 # Switch to lxml for schema validation
113113 try :
114- dom = fromstring (str ( xml ))
114+ dom = fromstring (xml . encode ( 'utf-8' ))
115115 except Exception :
116116 return 'unloaded_xml'
117117
@@ -130,7 +130,7 @@ def validate_xml(xml, schema, debug=False):
130130
131131 return 'invalid_xml'
132132
133- return parseString (etree .tostring (dom ))
133+ return parseString (etree .tostring (dom , encoding = 'unicode' ). encode ( 'utf-8' ))
134134
135135 @staticmethod
136136 def format_cert (cert , heads = True ):
@@ -655,7 +655,7 @@ def generate_name_id(value, sp_nq, sp_format, cert=None, debug=False, nq=None):
655655
656656 edata = enc_ctx .encryptXml (enc_data , elem [0 ])
657657
658- newdoc = parseString (etree .tostring (edata ))
658+ newdoc = parseString (etree .tostring (edata , encoding = 'unicode' ). encode ( 'utf-8' ))
659659
660660 if newdoc .hasChildNodes ():
661661 child = newdoc .firstChild
@@ -791,7 +791,7 @@ def add_sign(xml, key, cert, debug=False, sign_algorithm=OneLogin_Saml2_Constant
791791 elem = xml
792792 elif isinstance (xml , Document ):
793793 xml = xml .toxml ()
794- elem = fromstring (str ( xml ))
794+ elem = fromstring (xml . encode ( 'utf-8' ))
795795 elif isinstance (xml , Element ):
796796 xml .setAttributeNS (
797797 unicode (OneLogin_Saml2_Constants .NS_SAMLP ),
@@ -804,9 +804,9 @@ def add_sign(xml, key, cert, debug=False, sign_algorithm=OneLogin_Saml2_Constant
804804 unicode (OneLogin_Saml2_Constants .NS_SAML )
805805 )
806806 xml = xml .toxml ()
807- elem = fromstring (str ( xml ))
807+ elem = fromstring (xml . encode ( 'utf-8' ))
808808 elif isinstance (xml , basestring ):
809- elem = fromstring (str ( xml ))
809+ elem = fromstring (xml . encode ( 'utf-8' ))
810810 else :
811811 raise Exception ('Error parsing xml string' )
812812
@@ -849,7 +849,7 @@ def add_sign(xml, key, cert, debug=False, sign_algorithm=OneLogin_Saml2_Constant
849849 dsig_ctx .signKey = sign_key
850850 dsig_ctx .sign (signature )
851851
852- newdoc = parseString (etree .tostring (elem ))
852+ newdoc = parseString (etree .tostring (elem , encoding = 'unicode' ). encode ( 'utf-8' ))
853853
854854 signature_nodes = newdoc .getElementsByTagName ("Signature" )
855855
@@ -895,7 +895,7 @@ def validate_sign(xml, cert=None, fingerprint=None, fingerprintalg='sha1', valid
895895 elem = xml
896896 elif isinstance (xml , Document ):
897897 xml = xml .toxml ()
898- elem = fromstring (str ( xml ))
898+ elem = fromstring (xml . encode ( 'utf-8' ))
899899 elif isinstance (xml , Element ):
900900 xml .setAttributeNS (
901901 unicode (OneLogin_Saml2_Constants .NS_SAMLP ),
@@ -908,9 +908,9 @@ def validate_sign(xml, cert=None, fingerprint=None, fingerprintalg='sha1', valid
908908 unicode (OneLogin_Saml2_Constants .NS_SAML )
909909 )
910910 xml = xml .toxml ()
911- elem = fromstring (str ( xml ))
911+ elem = fromstring (xml . encode ( 'utf-8' ))
912912 elif isinstance (xml , basestring ):
913- elem = fromstring (str ( xml ))
913+ elem = fromstring (xml . encode ( 'utf-8' ))
914914 else :
915915 raise Exception ('Error parsing xml string' )
916916
@@ -963,17 +963,17 @@ def validate_metadata_sign(xml, cert=None, fingerprint=None, fingerprintalg='sha
963963 elem = xml
964964 elif isinstance (xml , Document ):
965965 xml = xml .toxml ()
966- elem = fromstring (str ( xml ))
966+ elem = fromstring (xml . encode ( 'utf-8' ))
967967 elif isinstance (xml , Element ):
968968 xml .setAttributeNS (
969969 unicode (OneLogin_Saml2_Constants .NS_MD ),
970970 'xmlns:md' ,
971971 unicode (OneLogin_Saml2_Constants .NS_MD )
972972 )
973973 xml = xml .toxml ()
974- elem = fromstring (str ( xml ))
974+ elem = fromstring (xml . encode ( 'utf-8' ))
975975 elif isinstance (xml , basestring ):
976- elem = fromstring (str ( xml ))
976+ elem = fromstring (xml . encode ( 'utf-8' ))
977977 else :
978978 raise Exception ('Error parsing xml string' )
979979
0 commit comments