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