Updated through tag hostap_2_5 from git://w1.fi/hostap.git
[mech_eap.git] / libeap / wpa_supplicant / examples / wps-ap-cli
1 #!/bin/sh
2
3 CLI=wpa_cli
4
5 pbc()
6 {
7         echo "Starting PBC mode"
8         echo "Push button on the station within two minutes"
9         if ! $CLI wps_pbc | grep -q OK; then
10                 echo "Failed to enable PBC mode"
11         fi
12 }
13
14 enter_pin()
15 {
16         echo "Enter a PIN from a station to be enrolled to the network."
17         echo -n "Enrollee PIN: "
18         read pin
19         cpin=`$CLI wps_check_pin "$pin" | tail -1`
20         if [ "$cpin" = "FAIL-CHECKSUM" ]; then
21                 echo "Checksum digit is not valid"
22                 echo -n "Do you want to use this PIN (y/n)? "
23                 read resp
24                 case "$resp" in
25                         y*)
26                                 cpin=`echo "$pin" | sed "s/[^1234567890]//g"`
27                                 ;;
28                         *)
29                                 return 1
30                                 ;;
31                 esac
32         fi
33         if [ "$cpin" = "FAIL" ]; then
34                 echo "Invalid PIN: $pin"
35                 return 1
36         fi
37         echo "Enabling Enrollee PIN: $cpin"
38         $CLI wps_pin any "$cpin"
39 }
40
41 show_config()
42 {
43         $CLI status wps
44 }
45
46 main_menu()
47 {
48         echo "WPS AP"
49         echo "------"
50         echo "1: Push button (activate PBC)"
51         echo "2: Enter Enrollee PIN"
52         echo "3: Show current configuration"
53         echo "0: Exit wps-ap-cli"
54
55         echo -n "Command: "
56         read cmd
57
58         case "$cmd" in
59                 1)
60                         pbc
61                         ;;
62                 2)
63                         enter_pin
64                         ;;
65                 3)
66                         show_config
67                         ;;
68                 0)
69                         exit 0
70                         ;;
71                 *)
72                         echo "Unknown command: $cmd"
73                         ;;
74         esac
75
76         echo
77         main_menu
78 }
79
80
81 main_menu