From c1d9b3e5f3dd763854746e3d47b85028620add17 Mon Sep 17 00:00:00 2001 From: Bruno Wagner Date: Thu, 7 May 2015 17:24:48 -0300 Subject: Sending the correct api cert in all cases now --- service/pixelated/bitmask_libraries/register.py | 35 ------------------------- service/pixelated/config/__init__.py | 2 +- service/pixelated/config/register.py | 27 ++++++++++++++++--- 3 files changed, 24 insertions(+), 40 deletions(-) delete mode 100644 service/pixelated/bitmask_libraries/register.py (limited to 'service/pixelated') diff --git a/service/pixelated/bitmask_libraries/register.py b/service/pixelated/bitmask_libraries/register.py deleted file mode 100644 index 2f40e898..00000000 --- a/service/pixelated/bitmask_libraries/register.py +++ /dev/null @@ -1,35 +0,0 @@ -# -# Copyright (c) 2014 ThoughtWorks, Inc. -# -# Pixelated is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# Pixelated is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with Pixelated. If not, see . - -import getpass - -import os -import os.path -import pixelated.bitmask_libraries.session as LeapSession -from pixelated.bitmask_libraries.config import LeapConfig -from pixelated.bitmask_libraries.provider import LeapProvider -from leap.auth import SRPAuth - - -def register_new_user(username, server_name): - config = LeapConfig() - provider = LeapProvider(server_name, config) - password = getpass.getpass('Please enter password for %s: ' % username) - srp_auth = SRPAuth(provider.api_uri, provider.local_ca_crt) - srp_auth.register(username, password) - - session = LeapSession.open(username, password, server_name) - session.nicknym.generate_openpgp_key() diff --git a/service/pixelated/config/__init__.py b/service/pixelated/config/__init__.py index f59d684b..35ae5e80 100644 --- a/service/pixelated/config/__init__.py +++ b/service/pixelated/config/__init__.py @@ -50,7 +50,7 @@ def initialize(): init_leap_cert(args) if args.register: - register(*args.register[::-1]) + register(*args.register) sys.exit(0) if args.dispatcher or args.dispatcher_stdin: diff --git a/service/pixelated/config/register.py b/service/pixelated/config/register.py index 8a7caa8b..e1a07eca 100644 --- a/service/pixelated/config/register.py +++ b/service/pixelated/config/register.py @@ -14,17 +14,36 @@ # You should have received a copy of the GNU Affero General Public License # along with Pixelated. If not, see . import re +import os +import os.path +import getpass +import logging +import pixelated.bitmask_libraries.session as LeapSession +from pixelated.bitmask_libraries.certs import which_api_CA_bundle +from pixelated.bitmask_libraries.config import LeapConfig +from pixelated.bitmask_libraries.provider import LeapProvider +from leap.auth import SRPAuth -from pixelated.bitmask_libraries.register import register_new_user +logger = logging.getLogger(__name__) -def register(username, server_name): +def register(server_name, username): try: validate_username(username) - register_new_user(username, server_name) - except ValueError: + except ValueError, e: print('Only lowercase letters, digits, . - and _ allowed.') + config = LeapConfig() + provider = LeapProvider(server_name, config) + password = getpass.getpass('Please enter password for %s: ' % username) + srp_auth = SRPAuth(provider.api_uri, which_api_CA_bundle(provider)) + + if srp_auth.register(username, password): + session = LeapSession.open(username, password, server_name) + session.nicknym.generate_openpgp_key() + else: + logger.error("Register failed") + def validate_username(username): accepted_characters = '^[a-z0-9\-\_\.]*$' -- cgit v1.2.3