169408Sache#!/bin/sh 259243Sobrien 359243SobrienCLI=wpa_cli 459243Sobrien 559243Sobrienpbc() 659243Sobrien{ 759243Sobrien echo "Starting PBC mode" 859243Sobrien echo "Push button on the station within two minutes" 959243Sobrien if ! $CLI wps_pbc | grep -q OK; then 1059243Sobrien echo "Failed to enable PBC mode" 1159243Sobrien fi 1259243Sobrien} 1359243Sobrien 1459243Sobrienenter_pin() 1559243Sobrien{ 1659243Sobrien echo "Enter a PIN from a station to be enrolled to the network." 1759243Sobrien printf "Enrollee PIN: " 1859243Sobrien read pin 1959243Sobrien cpin=`$CLI wps_check_pin "$pin" | tail -1` 2059243Sobrien if [ "$cpin" = "FAIL-CHECKSUM" ]; then 2159243Sobrien echo "Checksum digit is not valid" 2259243Sobrien printf "Do you want to use this PIN (y/n)? " 2359243Sobrien read resp 2459243Sobrien case "$resp" in 2559243Sobrien y*) 2659243Sobrien cpin=`echo "$pin" | sed "s/[^1234567890]//g"` 2759243Sobrien ;; 2859243Sobrien *) 2959243Sobrien return 1 3059243Sobrien ;; 3159243Sobrien esac 3259243Sobrien fi 3359243Sobrien if [ "$cpin" = "FAIL" ]; then 3459243Sobrien echo "Invalid PIN: $pin" 3559243Sobrien return 1 3659243Sobrien fi 3759243Sobrien echo "Enabling Enrollee PIN: $cpin" 3859243Sobrien $CLI wps_pin any "$cpin" 3969408Sache} 4059243Sobrien 4159243Sobrienshow_config() 4259243Sobrien{ 4359243Sobrien $CLI status wps 4459243Sobrien} 4559243Sobrien 4659243Sobrienmain_menu() 4759243Sobrien{ 4859243Sobrien echo "WPS AP" 4959243Sobrien echo "------" 5059243Sobrien echo "1: Push button (activate PBC)" 5159243Sobrien echo "2: Enter Enrollee PIN" 5259243Sobrien echo "3: Show current configuration" 5359243Sobrien echo "0: Exit wps-ap-cli" 5459243Sobrien 5559243Sobrien printf "Command: " 5659243Sobrien read cmd 5759243Sobrien 5859243Sobrien case "$cmd" in 5959243Sobrien 1) 6059243Sobrien pbc 6159243Sobrien ;; 6259243Sobrien 2) 6359243Sobrien enter_pin 6459243Sobrien ;; 6559243Sobrien 3) 6659243Sobrien show_config 6759243Sobrien ;; 6859243Sobrien 0) 6959243Sobrien exit 0 7059243Sobrien ;; 7159243Sobrien *) 7259243Sobrien echo "Unknown command: $cmd" 7359243Sobrien ;; 7459243Sobrien esac 7559243Sobrien 7659243Sobrien echo 7759243Sobrien main_menu 7859243Sobrien} 7969408Sache 8069408Sache 8169408Sachemain_menu 8259243Sobrien