Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(526)

Unified Diff: remoting/tools/register_host.py

Issue 9270031: Enable V2 authentication for Me2Me host. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: - Created 8 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « remoting/tools/me2me_virtual_host.py ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: remoting/tools/register_host.py
diff --git a/remoting/tools/register_host.py b/remoting/tools/register_host.py
index 0b0b4ea1ab0d8e2ef744b19e4c87b0074e77c160..d59e6b5187d0c0913b07400f22a62488ebf50a49 100755
--- a/remoting/tools/register_host.py
+++ b/remoting/tools/register_host.py
@@ -1,5 +1,5 @@
#!/usr/bin/env python
-# Copyright (c) 2011 The Chromium Authors. All rights reserved.
+# Copyright (c) 2012 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
@@ -8,13 +8,17 @@
It asks for username/password and then writes these settings to config file.
"""
+import base64
import getpass
+import hashlib
+import hmac
+import json
import os
-import urllib
-import urllib2
import random
import socket
import sys
+import urllib
+import urllib2
import gaia_auth
import keygen
@@ -47,15 +51,26 @@ def main():
(private_key, public_key) = keygen.generateRSAKeyPair()
print "Done"
- params = ('{"data":{' +
- '"hostId": "%(hostId)s",' +
- '"hostName": "%(hostName)s",' +
- '"publicKey": "%(publicKey)s"}}') % \
- {'hostId': host_id, 'hostName': host_name,
- 'publicKey': public_key}
+ while 1:
+ pin = getpass.getpass("Host PIN (can be empty): ")
+ if len(pin) > 0 and len(pin) < 4:
+ print "PIN must be at least 4 characters long."
+ continue
+ break
+ if pin == "":
+ host_secret_hash = None
+ else:
+ host_secret_hash = "hmac:" + base64.b64encode(
+ hmac.new(str(host_id), pin, hashlib.sha256).digest())
+
+ params = { "data": {
+ "hostId": host_id,
+ "hostName": host_name,
+ "publicKey": public_key,
+ } }
headers = {"Authorization": "GoogleLogin auth=" + auth_token,
- "Content-Type": "application/json" }
- request = urllib2.Request(url, params, headers)
+ "Content-Type": "application/json" }
+ request = urllib2.Request(url, json.dumps(params), headers)
opener = urllib2.OpenerDirector()
opener.add_handler(urllib2.HTTPDefaultErrorHandler())
@@ -79,13 +94,18 @@ def main():
# Write settings file.
os.umask(0066) # Set permission mask for created file.
settings_file = open(settings_filepath, 'w')
- settings_file.write('{\n');
- settings_file.write(' "xmpp_login" : "' + email + '",\n')
- settings_file.write(' "xmpp_auth_token" : "' + auth_token + '",\n')
- settings_file.write(' "host_id" : "' + host_id + '",\n')
- settings_file.write(' "host_name" : "' + host_name + '",\n')
- settings_file.write(' "private_key" : "' + private_key + '",\n')
- settings_file.write('}\n')
+ config = {
+ "xmpp_login" : email,
+ "xmpp_auth_token" : auth_token,
+ "host_id" : host_id,
+ "host_name" : host_name,
+ "private_key" : private_key,
+ }
+
+ if host_secret_hash:
+ config["host_secret_hash"] = host_secret_hash;
+
+ settings_file.write(json.dumps(config, indent=2))
settings_file.close()
print 'Configuration saved in', settings_filepath
« no previous file with comments | « remoting/tools/me2me_virtual_host.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698