Skip to content

Commit 439852e

Browse files
author
Roland Hedberg
committed
This may not be needed, but I've encountered different names for the xmlsec binary on Windows machines. So just to be sure.
1 parent c378151 commit 439852e

File tree

1 file changed

+20
-22
lines changed

1 file changed

+20
-22
lines changed

src/saml2/sigver.py

Lines changed: 20 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -115,29 +115,31 @@ def get_xmlsec_binary(paths=None):
115115
found then an exception is raised.
116116
"""
117117
if os.name == "posix":
118-
bin_name = "xmlsec1"
118+
bin_name = ["xmlsec1"]
119119
elif os.name == "nt":
120-
bin_name = "xmlsec1.exe"
120+
bin_name = ["xmlsec.exe", "xmlsec1.exe"]
121121
else: # Default !?
122-
bin_name = "xmlsec1"
122+
bin_name = ["xmlsec1"]
123123

124124
if paths:
125-
for path in paths:
126-
fil = os.path.join(path, bin_name)
125+
for bname in bin_name:
126+
for path in paths:
127+
fil = os.path.join(path, bname)
128+
try:
129+
if os.lstat(fil):
130+
return fil
131+
except OSError:
132+
pass
133+
134+
for path in os.environ["PATH"].split(os.pathsep):
135+
for bname in bin_name:
136+
fil = os.path.join(path, bname)
127137
try:
128138
if os.lstat(fil):
129139
return fil
130-
except Exception:
140+
except OSError:
131141
pass
132142

133-
for path in os.environ["PATH"].split(os.pathsep):
134-
fil = os.path.join(path, bin_name)
135-
try:
136-
if os.lstat(fil):
137-
return fil
138-
except Exception:
139-
pass
140-
141143
raise SigverError("Can't find %s" % bin_name)
142144

143145

@@ -652,16 +654,15 @@ def version(self):
652654
pof = Popen(com_list, stderr=PIPE, stdout=PIPE)
653655
try:
654656
return pof.stdout.read().split(" ")[1]
655-
except Exception:
657+
except IndexError:
656658
return ""
657659

658660
def encrypt(self, text, recv_key, template, key_type):
659661
logger.debug("Encryption input len: %d" % len(text))
660662
_, fil = make_temp("%s" % text, decode=False)
661663

662664
com_list = [self.xmlsec, "--encrypt", "--pubkey-cert-pem", recv_key,
663-
"--session-key", key_type, "--xml-data", fil,
664-
]
665+
"--session-key", key_type, "--xml-data", fil]
665666

666667
(_stdout, _stderr, output) = self._run_xmlsec(com_list, [template],
667668
exception=DecryptError,
@@ -673,8 +674,7 @@ def decrypt(self, enctext, key_file):
673674
_, fil = make_temp("%s" % enctext, decode=False)
674675

675676
com_list = [self.xmlsec, "--decrypt", "--privkey-pem",
676-
key_file, "--id-attr:%s" % ID_ATTR, ENC_KEY_CLASS,
677-
]
677+
key_file, "--id-attr:%s" % ID_ATTR, ENC_KEY_CLASS]
678678

679679
(_stdout, _stderr, output) = self._run_xmlsec(com_list, [fil],
680680
exception=DecryptError,
@@ -699,9 +699,7 @@ def sign_statement(self, statement, class_name, key_file, node_id,
699699

700700
com_list = [self.xmlsec, "--sign",
701701
"--privkey-pem", key_file,
702-
"--id-attr:%s" % id_attr, class_name,
703-
#"--store-signatures"
704-
]
702+
"--id-attr:%s" % id_attr, class_name]
705703
if node_id:
706704
com_list.extend(["--node-id", node_id])
707705

0 commit comments

Comments
 (0)