summaryrefslogtreecommitdiff
path: root/memoryhole/gpg.py
diff options
context:
space:
mode:
Diffstat (limited to 'memoryhole/gpg.py')
-rw-r--r--memoryhole/gpg.py16
1 files changed, 10 insertions, 6 deletions
diff --git a/memoryhole/gpg.py b/memoryhole/gpg.py
index fcead9e..533d12a 100644
--- a/memoryhole/gpg.py
+++ b/memoryhole/gpg.py
@@ -1,4 +1,3 @@
-from gnupg import GPG
from zope.interface import implementer
from memoryhole.openpgp import OpenPGP
@@ -7,16 +6,21 @@ from memoryhole.openpgp import OpenPGP
@implementer(OpenPGP)
class Gnupg(object):
def __init__(self):
+ from gnupg import GPG
self.gpg = GPG()
- def encrypt(self, data, encraddr, singaddr):
- # TODO
- encfp = 0
- signfp = 0
- return self.gpg.encrypt(data, encfp, default_key=signfp)
+ def encrypt(self, data, encraddr, signaddr):
+ result = self.gpg.encrypt(data, *encraddr, default_key=signaddr)
+ self._assert_gpg_result_ok(result)
+ return result.data
def decrypt(self, data):
pass
def verify(self, data, signature):
pass
+
+ def _assert_gpg_result_ok(self, result):
+ stderr = getattr(result, 'stderr', '')
+ if getattr(result, 'ok', False) is not True:
+ raise RuntimeError('Failed to encrypt/decrypt: %s' % stderr)