summaryrefslogtreecommitdiff
path: root/service/app/bitmask_libraries/auth.py
diff options
context:
space:
mode:
Diffstat (limited to 'service/app/bitmask_libraries/auth.py')
-rw-r--r--service/app/bitmask_libraries/auth.py22
1 files changed, 22 insertions, 0 deletions
diff --git a/service/app/bitmask_libraries/auth.py b/service/app/bitmask_libraries/auth.py
new file mode 100644
index 00000000..4958c586
--- /dev/null
+++ b/service/app/bitmask_libraries/auth.py
@@ -0,0 +1,22 @@
+from .leap_srp import LeapSecureRemotePassword
+from .certs import which_bundle
+
+USE_PASSWORD = None
+
+
+class LeapCredentials(object):
+ def __init__(self, user_name, password, db_passphrase=USE_PASSWORD):
+ self.user_name = user_name
+ self.password = password
+ self.db_passphrase = db_passphrase if db_passphrase is not None else password
+
+
+class LeapAuthenticator(object):
+ def __init__(self, provider):
+ self._provider = provider
+
+ def authenticate(self, credentials):
+ config = self._provider.config
+ 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