1252190Srpaulo#!/bin/sh
2252190Srpaulo
3252190SrpauloCLI=wpa_cli
4252190Srpaulo
5252190Srpaulopbc()
6252190Srpaulo{
7252190Srpaulo	echo "Starting PBC mode"
8252190Srpaulo	echo "Push button on the station within two minutes"
9252190Srpaulo	if ! $CLI wps_pbc | grep -q OK; then
10252190Srpaulo		echo "Failed to enable PBC mode"
11252190Srpaulo	fi
12252190Srpaulo}
13252190Srpaulo
14252190Srpauloenter_pin()
15252190Srpaulo{
16252190Srpaulo	echo "Enter a PIN from a station to be enrolled to the network."
17346981Scy	printf "Enrollee PIN: "
18281806Srpaulo	read pin
19252190Srpaulo	cpin=`$CLI wps_check_pin "$pin" | tail -1`
20252190Srpaulo	if [ "$cpin" = "FAIL-CHECKSUM" ]; then
21252190Srpaulo		echo "Checksum digit is not valid"
22346981Scy		printf "Do you want to use this PIN (y/n)? "
23281806Srpaulo		read resp
24252190Srpaulo		case "$resp" in
25252190Srpaulo			y*)
26252190Srpaulo				cpin=`echo "$pin" | sed "s/[^1234567890]//g"`
27252190Srpaulo				;;
28252190Srpaulo			*)
29252190Srpaulo				return 1
30252190Srpaulo				;;
31252190Srpaulo		esac
32252190Srpaulo	fi
33252190Srpaulo	if [ "$cpin" = "FAIL" ]; then
34252190Srpaulo		echo "Invalid PIN: $pin"
35252190Srpaulo		return 1
36252190Srpaulo	fi
37252190Srpaulo	echo "Enabling Enrollee PIN: $cpin"
38252190Srpaulo	$CLI wps_pin any "$cpin"
39252190Srpaulo}
40252190Srpaulo
41252190Srpauloshow_config()
42252190Srpaulo{
43252190Srpaulo	$CLI status wps
44252190Srpaulo}
45252190Srpaulo
46252190Srpaulomain_menu()
47252190Srpaulo{
48252190Srpaulo	echo "WPS AP"
49252190Srpaulo	echo "------"
50252190Srpaulo	echo "1: Push button (activate PBC)"
51252190Srpaulo	echo "2: Enter Enrollee PIN"
52252190Srpaulo	echo "3: Show current configuration"
53252190Srpaulo	echo "0: Exit wps-ap-cli"
54252190Srpaulo
55346981Scy	printf "Command: "
56281806Srpaulo	read cmd
57252190Srpaulo
58252190Srpaulo	case "$cmd" in
59252190Srpaulo		1)
60252190Srpaulo			pbc
61252190Srpaulo			;;
62252190Srpaulo		2)
63252190Srpaulo			enter_pin
64252190Srpaulo			;;
65252190Srpaulo		3)
66252190Srpaulo			show_config
67252190Srpaulo			;;
68252190Srpaulo		0)
69252190Srpaulo			exit 0
70252190Srpaulo			;;
71252190Srpaulo		*)
72252190Srpaulo			echo "Unknown command: $cmd"
73252190Srpaulo			;;
74252190Srpaulo	esac
75252190Srpaulo
76252190Srpaulo	echo
77252190Srpaulo	main_menu
78252190Srpaulo}
79252190Srpaulo
80252190Srpaulo
81252190Srpaulomain_menu
82