summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTomás Touceda <chiiph@leap.se>2013-11-25 10:50:21 -0300
committerTomás Touceda <chiiph@leap.se>2013-11-25 10:50:21 -0300
commit52bc54ba0afd211bb39fe7f82299621bb428ffef (patch)
tree25c6dc591f0d759df99f49f4a5d76b6acfa5d6df
parent1fe6c297051b6147760f9c1778cf718693bf5a7a (diff)
parent58a45c40ae8b5619f6c848feaec329396e09b42f (diff)
Merge remote-tracking branch 'drebs/bug/fix-error-returns' into develop
-rw-r--r--keymanager/changes/bug_fix-returns1
-rw-r--r--keymanager/src/leap/keymanager/__init__.py3
-rw-r--r--keymanager/src/leap/keymanager/openpgp.py9
3 files changed, 11 insertions, 2 deletions
diff --git a/keymanager/changes/bug_fix-returns b/keymanager/changes/bug_fix-returns
new file mode 100644
index 00000000..3bb72646
--- /dev/null
+++ b/keymanager/changes/bug_fix-returns
@@ -0,0 +1 @@
+ o Fix error return values on openpgp backend.
diff --git a/keymanager/src/leap/keymanager/__init__.py b/keymanager/src/leap/keymanager/__init__.py
index dbc54891..6cfbf710 100644
--- a/keymanager/src/leap/keymanager/__init__.py
+++ b/keymanager/src/leap/keymanager/__init__.py
@@ -425,6 +425,9 @@ class KeyManager(object):
:type data: str
:param privkey: The key used to decrypt.
:type privkey: OpenPGPKey
+ :param passphrase: The passphrase for the secret key used for
+ decryption.
+ :type passphrase: str
:param verify: The key used to verify a signature.
:type verify: OpenPGPKey
diff --git a/keymanager/src/leap/keymanager/openpgp.py b/keymanager/src/leap/keymanager/openpgp.py
index cb46371c..5781d67b 100644
--- a/keymanager/src/leap/keymanager/openpgp.py
+++ b/keymanager/src/leap/keymanager/openpgp.py
@@ -341,6 +341,7 @@ class OpenPGPScheme(EncryptionScheme):
leap_assert(match is not None, 'No user address in key data.')
address = match.group(1)
+ openpgp_privkey = None
if privkey is not None:
match = re.match(mail_regex, privkey['uids'].pop())
leap_assert(match is not None, 'No user address in key data.')
@@ -374,6 +375,7 @@ class OpenPGPScheme(EncryptionScheme):
"""
leap_assert_type(key_data, (str, unicode))
+ openpgp_privkey = None
try:
openpgp_pubkey, openpgp_privkey = self.parse_ascii_key(key_data)
except (errors.KeyAddressMismatch, errors.KeyFingerprintMismatch) as e:
@@ -524,6 +526,9 @@ class OpenPGPScheme(EncryptionScheme):
:type data: str
:param privkey: The key used to decrypt.
:type privkey: OpenPGPKey
+ :param passphrase: The passphrase for the secret key used for
+ decryption.
+ :type passphrase: str
:param verify: The key used to verify a signature.
:type verify: OpenPGPKey
@@ -549,7 +554,7 @@ class OpenPGPScheme(EncryptionScheme):
verify.fingerprint != result.pubkey_fingerprint:
raise errors.InvalidSignature(
'Failed to verify signature with key %s: %s' %
- (verify.key_id, stderr))
+ (verify.key_id, result.stderr))
# XXX: this is the encoding used by gpg module
# https://github.com/isislovecruft/python-gnupg/\
@@ -612,7 +617,7 @@ class OpenPGPScheme(EncryptionScheme):
if result.fingerprint is None:
raise errors.SignFailed(
'Failed to sign with key %s: %s' %
- (privkey['keyid'], stderr))
+ (privkey['keyid'], result.stderr))
leap_assert(
result.fingerprint == kfprint,
'Signature and private key fingerprints mismatch: '