wps-ap-cli 1.1 KB

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