summaryrefslogtreecommitdiff
path: root/service
diff options
context:
space:
mode:
authorBruno Wagner <bwgpro@gmail.com>2015-05-07 17:24:48 -0300
committerBruno Wagner <bwgpro@gmail.com>2015-05-07 17:25:01 -0300
commitc1d9b3e5f3dd763854746e3d47b85028620add17 (patch)
tree1675278482034f9aee7a4543348d415134e237a6 /service
parent501d23847a6412508ffa95787159738a1d3e1389 (diff)
Sending the correct api cert in all cases now
Diffstat (limited to 'service')
-rw-r--r--service/pixelated/bitmask_libraries/register.py35
-rw-r--r--service/pixelated/config/__init__.py2
-rw-r--r--service/pixelated/config/register.py27
3 files changed, 24 insertions, 40 deletions
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 <http://www.gnu.org/licenses/>.
-
-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 <http://www.gnu.org/licenses/>.
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\-\_\.]*$'