summaryrefslogtreecommitdiff
path: root/src/leap/bitmask/core
diff options
context:
space:
mode:
Diffstat (limited to 'src/leap/bitmask/core')
-rw-r--r--src/leap/bitmask/core/dispatcher.py10
-rw-r--r--src/leap/bitmask/core/mail_services.py6
2 files changed, 14 insertions, 2 deletions
diff --git a/src/leap/bitmask/core/dispatcher.py b/src/leap/bitmask/core/dispatcher.py
index 47e1c2c2..db40a675 100644
--- a/src/leap/bitmask/core/dispatcher.py
+++ b/src/leap/bitmask/core/dispatcher.py
@@ -162,8 +162,14 @@ class KeysCmd(SubCommand):
@register_method('str')
def do_EXPORT(self, service, *parts, **kw):
- # TODO
- return defer.succeed("")
+ if len(parts) < 3:
+ return defer.fail("An email address is needed")
+ address = parts[2]
+
+ bonafide = kw['bonafide']
+ d = bonafide.do_get_active_user()
+ d.addCallback(service.do_export, address)
+ return d
class CommandDispatcher(object):
diff --git a/src/leap/bitmask/core/mail_services.py b/src/leap/bitmask/core/mail_services.py
index aebca9f1..8e64f997 100644
--- a/src/leap/bitmask/core/mail_services.py
+++ b/src/leap/bitmask/core/mail_services.py
@@ -354,6 +354,12 @@ class KeymanagerService(HookableService):
(key.address, key.fingerprint) for key in keys])
return d
+ def do_export(self, userid, address):
+ km = self._container.get_instance(userid)
+ d = km.get_key(address, fetch_remote=False)
+ d.addCallback(lambda key: dict(key))
+ return d
+
class StandardMailService(service.MultiService, HookableService):
"""