diff options
Diffstat (limited to 'src/leap/bitmask/core/mail_services.py')
-rw-r--r-- | src/leap/bitmask/core/mail_services.py | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/leap/bitmask/core/mail_services.py b/src/leap/bitmask/core/mail_services.py index 37dae344..adf5a92a 100644 --- a/src/leap/bitmask/core/mail_services.py +++ b/src/leap/bitmask/core/mail_services.py @@ -33,6 +33,7 @@ from leap.bonafide import config from leap.common.service_hooks import HookableService from leap.keymanager import KeyManager from leap.keymanager.errors import KeyNotFound +from leap.keymanager.validation import ValidationLevels from leap.soledad.client.api import Soledad from leap.mail.constants import INBOX_NAME from leap.mail.mail import Account @@ -358,6 +359,14 @@ class KeymanagerService(HookableService): d.addCallback(lambda key: dict(key)) return d + def do_add(self, userid, address, rawkey, validation='Fingerprint'): + km = self._container.get_instance(userid) + validation = ValidationLevels.get(validation) + d = km.put_raw_key(rawkey, address, validation=validation) + d.addCallback(lambda _: km.get_key(address, fetch_remote=False)) + d.addCallback(lambda key: dict(key)) + return d + @defer.inlineCallbacks def do_delete(self, userid, address, private=False): km = self._container.get_instance(userid) |