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