From 77b12bda3df10710daf7c441512146170523f003 Mon Sep 17 00:00:00 2001 From: Folker Bernitt Date: Fri, 8 Aug 2014 18:01:48 +0200 Subject: Updated some leap components to latest version. - Send public key to leap now works - Fetching mail works with a recent leap provider version - Added register to LeapAuthenticator to create a new account --- service/app/bitmask_libraries/auth.py | 5 +++++ service/app/bitmask_libraries/nicknym.py | 5 +---- service/app/bitmask_libraries/session.py | 7 +++++-- service/requirements.txt | 5 +++-- service/test/bitmask_libraries/nicknym_test.py | 4 ++-- 5 files changed, 16 insertions(+), 10 deletions(-) (limited to 'service') diff --git a/service/app/bitmask_libraries/auth.py b/service/app/bitmask_libraries/auth.py index 4958c586..0b963587 100644 --- a/service/app/bitmask_libraries/auth.py +++ b/service/app/bitmask_libraries/auth.py @@ -20,3 +20,8 @@ class LeapAuthenticator(object): srp = LeapSecureRemotePassword(ca_bundle=which_bundle(self._provider), timeout_in_s=config.timeout_in_s) srp_session = srp.authenticate(self._provider.api_uri, credentials.user_name, credentials.password) return srp_session + + def register(self, credentials): + config = self._provider.config + srp = LeapSecureRemotePassword(ca_bundle=which_bundle(self._provider), timeout_in_s=config.timeout_in_s) + srp.register(self._provider.api_uri, credentials.user_name, credentials.password) diff --git a/service/app/bitmask_libraries/nicknym.py b/service/app/bitmask_libraries/nicknym.py index 8f5f06d1..c4939e9a 100644 --- a/service/app/bitmask_libraries/nicknym.py +++ b/service/app/bitmask_libraries/nicknym.py @@ -8,7 +8,7 @@ class NickNym(object): self._email = '%s@%s' % (srp_session.user_name, provider.domain) self.keymanager = KeyManager('%s@%s' % (srp_session.user_name, provider.domain), nicknym_url, soledad_session.soledad, - srp_session.session_id, which_bundle(provider), provider.api_uri, + srp_session.token, which_bundle(provider), provider.api_uri, provider.api_version, srp_session.uuid, config.gpg_binary) @@ -28,9 +28,6 @@ class NickNym(object): self.keymanager.gen_key(openpgp.OpenPGPKey) def _send_key_to_leap(self): - if True: - raise NotImplementedError( - 'No key sent to leap provider. Reason: leap.keymanager.KeyManager.send_key in latest python module is not compatible with latest LEAP provider') self.keymanager.send_key(openpgp.OpenPGPKey) diff --git a/service/app/bitmask_libraries/session.py b/service/app/bitmask_libraries/session.py index 66e4fcab..d4b507dc 100644 --- a/service/app/bitmask_libraries/session.py +++ b/service/app/bitmask_libraries/session.py @@ -2,8 +2,10 @@ import os import errno import traceback from leap.mail.imap.fetch import LeapIncomingMail -from leap.mail.imap.server import SoledadBackedAccount +from leap.mail.imap.account import SoledadBackedAccount import sys +from leap.mail.imap.memorystore import MemoryStore +from leap.mail.imap.soledadstore import SoledadStore from twisted.internet import reactor from .nicknym import NickNym @@ -138,7 +140,8 @@ class LeapSessionFactory(object): return NickNym(self._provider, self._config, soledad_session, srp_session) def _create_account(self, srp_session, soledad_session): - return SoledadBackedAccount(srp_session.uuid, soledad_session.soledad) + memstore = MemoryStore(permanent_store=SoledadStore(soledad_session.soledad)) + return SoledadBackedAccount(srp_session.uuid, soledad_session.soledad, memstore) def _create_incoming_mail_fetcher(self, nicknym, soledad_session, account, auth): return LeapIncomingMail(nicknym.keymanager, soledad_session.soledad, account, diff --git a/service/requirements.txt b/service/requirements.txt index 468be9d4..37df8a34 100644 --- a/service/requirements.txt +++ b/service/requirements.txt @@ -14,5 +14,6 @@ dirspec==13.10 --allow-unverified u1db u1db==13.10 leap.keymanager==0.3.8 -leap.soledad.common==0.5.0 -leap.mail==0.3.8 +leap.soledad.common==0.5.2 +leap.soledad.client==0.5.2 +leap.mail==0.3.9-1-gc1f9c92 diff --git a/service/test/bitmask_libraries/nicknym_test.py b/service/test/bitmask_libraries/nicknym_test.py index 46c70371..17a87883 100644 --- a/service/test/bitmask_libraries/nicknym_test.py +++ b/service/test/bitmask_libraries/nicknym_test.py @@ -15,7 +15,7 @@ class NickNymTest(AbstractLeapTest): #then init_mock.assert_called_with('test_user@some-server.test', 'https://nicknym.some-server.test:6425/', - self.soledad, self.session_id, '/some/path/to/ca_cert', + self.soledad, self.token, '/some/path/to/ca_cert', 'https://api.some-server.test:4430', '1', self.uuid, '/path/to/gpg') @@ -27,7 +27,7 @@ class NickNymTest(AbstractLeapTest): nicknym = NickNym(self.provider, self.config, self.soledad_session, self.srp_session) #when/then - self.assertRaises(NotImplementedError, nicknym.generate_openpgp_key) + nicknym.generate_openpgp_key() keyman.get_key.assert_called_with('test_user@some-server.test', openpgp.OpenPGPKey, fetch_remote=False, private=True) keyman.gen_key.assert_called_with(openpgp.OpenPGPKey) -- cgit v1.2.3