diff options
Diffstat (limited to 'service/app/bitmask_libraries/auth.py')
-rw-r--r-- | service/app/bitmask_libraries/auth.py | 22 |
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 |