]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
Add example WPS AP mode UI for wpa_supplicant
authorJouni Malinen <jouni@qca.qualcomm.com>
Thu, 1 Dec 2011 20:14:07 +0000 (22:14 +0200)
committerJouni Malinen <j@w1.fi>
Thu, 1 Dec 2011 20:14:07 +0000 (22:14 +0200)
This script shows some minimal WPS user interface requirements for
mobile AP support with wpa_supplicant.

Signed-hostap: Jouni Malinen <jouni@qca.qualcomm.com>

wpa_supplicant/examples/wps-ap-cli [new file with mode: 0755]

diff --git a/wpa_supplicant/examples/wps-ap-cli b/wpa_supplicant/examples/wps-ap-cli
new file mode 100755 (executable)
index 0000000..7c6b0aa
--- /dev/null
@@ -0,0 +1,78 @@
+#!/bin/sh
+
+CLI=wpa_cli
+
+pbc()
+{
+       echo "Starting PBC mode"
+       echo "Push button on the station within two minutes"
+       if ! $CLI wps_pbc | grep -q OK; then
+               echo "Failed to enable PBC mode"
+       fi
+}
+
+enter_pin()
+{
+       echo "Enter a PIN from a station to be enrolled to the network."
+       read -p "Enrollee PIN: " pin
+       cpin=`$CLI wps_check_pin "$pin" | tail -1`
+       if [ "$cpin" = "FAIL-CHECKSUM" ]; then
+               echo "Checksum digit is not valid"
+               read -p "Do you want to use this PIN (y/n)? " resp
+               case "$resp" in
+                       y*)
+                               cpin=`echo "$pin" | sed "s/[^1234567890]//g"`
+                               ;;
+                       *)
+                               return 1
+                               ;;
+               esac
+       fi
+       if [ "$cpin" = "FAIL" ]; then
+               echo "Invalid PIN: $pin"
+               return 1
+       fi
+       echo "Enabling Enrollee PIN: $cpin"
+       $CLI wps_pin any "$cpin"
+}
+
+show_config()
+{
+       $CLI status wps
+}
+
+main_menu()
+{
+       echo "WPS AP"
+       echo "------"
+       echo "1: Push button (activate PBC)"
+       echo "2: Enter Enrollee PIN"
+       echo "3: Show current configuration"
+       echo "0: Exit wps-ap-cli"
+
+       read -p "Command: " cmd
+
+       case "$cmd" in
+               1)
+                       pbc
+                       ;;
+               2)
+                       enter_pin
+                       ;;
+               3)
+                       show_config
+                       ;;
+               0)
+                       exit 0
+                       ;;
+               *)
+                       echo "Unknown command: $cmd"
+                       ;;
+       esac
+
+       echo
+       main_menu
+}
+
+
+main_menu