summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--service/pixelated/config/leap.py17
-rw-r--r--service/requirements.txt1
2 files changed, 14 insertions, 4 deletions
diff --git a/service/pixelated/config/leap.py b/service/pixelated/config/leap.py
index 42eb495d..22c1e57a 100644
--- a/service/pixelated/config/leap.py
+++ b/service/pixelated/config/leap.py
@@ -1,10 +1,13 @@
from __future__ import absolute_import
import logging
+from collections import namedtuple
from twisted.internet import defer, threads
from leap.common.events import (server as events_server)
from leap.soledad.common.errors import InvalidAuthTokenError
-from leap.auth import SRPAuth
+from leap.auth import SRPSession
+from leap.bonafide.session import Session
+from leap.bonafide.provider import Api
from pixelated.config import credentials
from pixelated.config import leap_config
from pixelated.bitmask_libraries.certs import LeapCertificate
@@ -14,6 +17,9 @@ from pixelated.config.sessions import LeapSessionFactory
log = logging.getLogger(__name__)
+Credentials = namedtuple('Credentials', 'username, password')
+
+
def initialize_leap_provider(provider_hostname, provider_cert, provider_fingerprint, leap_home):
LeapCertificate.set_cert_and_fingerprint(provider_cert,
provider_fingerprint)
@@ -75,10 +81,13 @@ def initialize_leap_single_user(leap_provider_cert,
defer.returnValue(leap_session)
+@defer.inlineCallbacks
def authenticate(provider, user, password):
- srp_auth = SRPAuth(provider.api_uri, provider.local_ca_crt)
- d = threads.deferToThread(srp_auth.authenticate, user, password)
- return d
+ srp_provider = Api(provider.api_uri)
+ credentials = Credentials(user, password)
+ srp_auth = Session(credentials, srp_provider, provider.local_ca_crt)
+ yield srp_auth.authenticate()
+ defer.returnValue(SRPSession(user, srp_auth.token, srp_auth.uuid, 'session_id', {'is_admin': False}))
def init_monkeypatches():
diff --git a/service/requirements.txt b/service/requirements.txt
index b4968f7d..bbc5044e 100644
--- a/service/requirements.txt
+++ b/service/requirements.txt
@@ -9,6 +9,7 @@ whoosh==2.5.7
Twisted==16.1.1
-e 'git+https://github.com/pixelated/leap_pycommon.git@develop#egg=leap.common'
-e 'git+https://github.com/pixelated/leap_auth.git#egg=leap.auth'
+-e 'git+https://github.com/leapcode/bonafide.git@master#egg=leap.bonafide'
-e 'git+https://github.com/pixelated/soledad.git@develop#egg=leap.soledad.common&subdirectory=common/'
-e 'git+https://github.com/pixelated/soledad.git@develop#egg=leap.soledad.client&subdirectory=client/'
-e 'git+https://github.com/pixelated/soledad.git@develop#egg=leap.soledad.server&subdirectory=server/'