diff options
Diffstat (limited to 'lang/python/pyme/core.py')
-rw-r--r-- | lang/python/pyme/core.py | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/lang/python/pyme/core.py b/lang/python/pyme/core.py index cd5217f3..f0eab436 100644 --- a/lang/python/pyme/core.py +++ b/lang/python/pyme/core.py @@ -680,11 +680,19 @@ class Context(GpgmeWrapper): -- the matching key Raises: + KeyError -- if the key was not found GPGMEError -- as signaled by the underlying library """ ptr = gpgme.new_gpgme_key_t_p() - errorcheck(gpgme.gpgme_get_key(self.wrapped, fpr, ptr, secret)) + + try: + errorcheck(gpgme.gpgme_get_key(self.wrapped, fpr, ptr, secret)) + except errors.GPGMEError as e: + if e.getcode() == errors.EOF: + raise errors.KeyNotFound(fpr) + raise e + key = gpgme.gpgme_key_t_p_value(ptr) gpgme.delete_gpgme_key_t_p(ptr) assert key |