summaryrefslogtreecommitdiff
path: root/service
diff options
context:
space:
mode:
authorFolker Bernitt <fbernitt@thoughtworks.com>2014-08-08 18:01:48 +0200
committerFolker Bernitt <fbernitt@thoughtworks.com>2014-08-08 18:03:58 +0200
commit77b12bda3df10710daf7c441512146170523f003 (patch)
treee8332c492d79e8b7482e5a5b560f14213cc8933a /service
parentd3a31756c17165d4685287868f53265e49762377 (diff)
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
Diffstat (limited to 'service')
-rw-r--r--service/app/bitmask_libraries/auth.py5
-rw-r--r--service/app/bitmask_libraries/nicknym.py5
-rw-r--r--service/app/bitmask_libraries/session.py7
-rw-r--r--service/requirements.txt5
-rw-r--r--service/test/bitmask_libraries/nicknym_test.py4
5 files changed, 16 insertions, 10 deletions
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)