diff options
Diffstat (limited to 'src/leap/bitmask/core')
-rw-r--r-- | src/leap/bitmask/core/dispatcher.py | 10 | ||||
-rw-r--r-- | src/leap/bitmask/core/mail_services.py | 6 |
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): """ |