From c39fdb8529295ce99384998fd0c3e8f36e889cce Mon Sep 17 00:00:00 2001 From: Jouni Malinen Date: Sun, 24 Feb 2013 10:54:18 +0200 Subject: [PATCH] WPS: Add wps-er-config command for writing config token from ER UUID of the AP is specified on the command line to select which configuration is used. Signed-hostap: Jouni Malinen --- wpa_supplicant/examples/wps-nfc.py | 33 ++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/wpa_supplicant/examples/wps-nfc.py b/wpa_supplicant/examples/wps-nfc.py index 14acc5b26..725886fc0 100755 --- a/wpa_supplicant/examples/wps-nfc.py +++ b/wpa_supplicant/examples/wps-nfc.py @@ -61,6 +61,13 @@ def wpas_get_config_token(): return wpas.request("WPS_NFC_CONFIG_TOKEN NDEF").rstrip().decode("hex") +def wpas_get_er_config_token(uuid): + wpas = wpas_connect() + if (wpas == None): + return None + return wpas.request("WPS_ER_NFC_CONFIG_TOKEN NDEF " + uuid).rstrip().decode("hex") + + def wpas_get_password_token(): wpas = wpas_connect() if (wpas == None): @@ -198,6 +205,28 @@ def wps_write_config_tag(clf): time.sleep(0.1) +def wps_write_er_config_tag(clf, uuid): + print "Write WPS ER config token" + data = wpas_get_er_config_token(uuid) + if (data == None): + print "Could not get WPS config token from wpa_supplicant" + return + + print "Touch an NFC tag" + while True: + tag = clf.poll() + if tag == None: + time.sleep(0.1) + continue + break + + print "Tag found - writing" + tag.ndef.message = data + print "Done - remove tag" + while tag.is_present: + time.sleep(0.1) + + def wps_write_password_tag(clf): print "Write WPS password token" data = wpas_get_password_token() @@ -256,6 +285,10 @@ def main(): wps_write_config_tag(clf) raise SystemExit + if len(sys.argv) > 2 and sys.argv[1] == "write-er-config": + wps_write_er_config_tag(clf, sys.argv[2]) + raise SystemExit + if len(sys.argv) > 1 and sys.argv[1] == "write-password": wps_write_password_tag(clf) raise SystemExit