summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIvan Kanakarakis <ivan.kanak@gmail.com>2019-01-11 23:32:18 +0200
committerIvan Kanakarakis <ivan.kanak@gmail.com>2019-01-14 15:29:44 +0200
commit9ce6dfd8940ba9c24d1452200d55247f0a766b0d (patch)
tree64b069227656016133e019821dd65f1abd2cfd28
parentcb760c81ce6739821782040b648ce42527b22b21 (diff)
downloadpysaml2-9ce6dfd8940ba9c24d1452200d55247f0a766b0d.tar.gz
Refactor CryptoBackendXmlSec1::sign_statement
Signed-off-by: Ivan Kanakarakis <ivan.kanak@gmail.com>
-rw-r--r--src/saml2/sigver.py23
1 files changed, 10 insertions, 13 deletions
diff --git a/src/saml2/sigver.py b/src/saml2/sigver.py
index 0e3e0839..6e9ebf9b 100644
--- a/src/saml2/sigver.py
+++ b/src/saml2/sigver.py
@@ -835,19 +835,16 @@ class CryptoBackendXmlSec1(CryptoBackend):
com_list.extend(['--node-id', node_id])
try:
- (stdout, stderr, signed_statement) = self._run_xmlsec(
- com_list, [fil]
- )
-
- # this doesn't work if --store-signatures are used
- if stdout == '':
- if signed_statement:
- return signed_statement.decode('utf-8')
-
- logger.error('Signing operation failed :\nstdout : %s\nstderr : %s', stdout, stderr)
- raise SigverError(stderr)
- except DecryptError:
- raise SigverError('Signing failed')
+ (stdout, stderr, output) = self._run_xmlsec(com_list, [fil])
+ except XmlsecError as e:
+ raise SignatureError(com_list)
+
+ # this does not work if --store-signatures is used
+ if output:
+ return output.decode("utf-8")
+ if stdout:
+ return stdout.decode("utf-8")
+ raise SignatureError(stderr)
def validate_signature(self, signedtext, cert_file, cert_type, node_name, node_id, id_attr):
"""