summaryrefslogtreecommitdiff
path: root/service/pixelated/config
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/pixelated/config
parent501d23847a6412508ffa95787159738a1d3e1389 (diff)
Sending the correct api cert in all cases now
Diffstat (limited to 'service/pixelated/config')
-rw-r--r--service/pixelated/config/__init__.py2
-rw-r--r--service/pixelated/config/register.py27
2 files changed, 24 insertions, 5 deletions
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\-\_\.]*$'