Skip to content

Commit f896df8

Browse files
committed
Fix more pack/sigver python3 incompatibility
More strings/bytes issues and another usage of the moved urlencode function.
1 parent 695e7b0 commit f896df8

File tree

2 files changed

+5
-4
lines changed

2 files changed

+5
-4
lines changed

src/saml2/pack.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@ def http_redirect_message(message, location, relay_state="", typ="SAMLRequest",
126126
raise Unsupported("Signing algorithm")
127127
else:
128128
string = "&".join([urlencode({k: args[k]})
129-
for k in _order if k in args])
129+
for k in _order if k in args]).encode('ascii')
130130
args["Signature"] = base64.b64encode(signer.sign(string, key))
131131
string = urlencode(args)
132132
else:

src/saml2/sigver.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
import logging
1212
import os
1313
import ssl
14-
import urllib
14+
from six.moves.urllib.parse import urlencode
1515

1616
from time import mktime
1717
from binascii import hexlify
@@ -528,7 +528,7 @@ def rsa_eq(key1, key2):
528528

529529
def extract_rsa_key_from_x509_cert(pem):
530530
# Convert from PEM to DER
531-
der = ssl.PEM_cert_to_DER_cert(pem)
531+
der = ssl.PEM_cert_to_DER_cert(pem.decode('ascii'))
532532

533533
# Extract subjectPublicKeyInfo field from X.509 certificate (see RFC3280)
534534
cert = DerSequence()
@@ -635,7 +635,8 @@ def verify_redirect_signature(saml_msg, cert=None, sigkey=None):
635635
_args = saml_msg.copy()
636636
del _args["Signature"] # everything but the signature
637637
string = "&".join(
638-
[urllib.urlencode({k: _args[k]}) for k in _order if k in _args])
638+
[urlencode({k: _args[k]}) for k in _order if k in
639+
_args]).encode('ascii')
639640
if cert:
640641
_key = extract_rsa_key_from_x509_cert(pem_format(cert))
641642
else:

0 commit comments

Comments
 (0)