diff options
author | Ivan Kanakarakis <ivan.kanak@gmail.com> | 2019-01-11 23:32:18 +0200 |
---|---|---|
committer | Ivan Kanakarakis <ivan.kanak@gmail.com> | 2019-01-14 15:29:44 +0200 |
commit | 9ce6dfd8940ba9c24d1452200d55247f0a766b0d (patch) | |
tree | 64b069227656016133e019821dd65f1abd2cfd28 | |
parent | cb760c81ce6739821782040b648ce42527b22b21 (diff) | |
download | pysaml2-9ce6dfd8940ba9c24d1452200d55247f0a766b0d.tar.gz |
Refactor CryptoBackendXmlSec1::sign_statement
Signed-off-by: Ivan Kanakarakis <ivan.kanak@gmail.com>
-rw-r--r-- | src/saml2/sigver.py | 23 |
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): """ |