From: Jouni Malinen Date: Thu, 9 Aug 2012 20:10:01 +0000 (+0300) Subject: AOSP: These files have been removed from AOSP X-Git-Url: http://git.ipfire.org/?p=thirdparty%2Fhostap.git;a=commitdiff_plain;h=refs%2Fheads%2Faosp-jb AOSP: These files have been removed from AOSP --- diff --git a/build_nsis.sh b/build_nsis.sh deleted file mode 100755 index e41bc362c..000000000 --- a/build_nsis.sh +++ /dev/null @@ -1,16 +0,0 @@ -#!/bin/sh - -if [ -d nsis.in ]; then - /bin/rm -r nsis.in -fi - -unzip -j -d nsis.in $1 -VER=`echo $1 | sed "s/.*wpa_supplicant-windows-bin-\(.*\).zip/\1/"` - -cat wpa_supplicant/wpa_supplicant.nsi | - sed "s/@WPAVER@/$VER/g" \ - > nsis.in/wpa_supplicant.nsi - -makensis nsis.in/wpa_supplicant.nsi - -/bin/rm -r nsis.in diff --git a/build_release b/build_release deleted file mode 100755 index 22dcd4219..000000000 --- a/build_release +++ /dev/null @@ -1,148 +0,0 @@ -#!/bin/sh - -WINLOCAL=/home/jm/H-win/local - -set -e - -if [ -z "$1" ]; then - echo "build_release [nobin]" - exit 1 -fi - -TMP=tmp.build_release -RELDIR=`pwd`/Release -VER=$1 -NOW=`date +%Y-%m-%d` - -echo "Version: $VER - $NOW" - -DATEw=`head -n 3 wpa_supplicant/ChangeLog | tail -n 1 | sed "s/ .*//"` -DATEh=`head -n 3 hostapd/ChangeLog | tail -n 1 | sed "s/ .*//"` - -if [ "$DATEw" != "$NOW" -o "$DATEh" != "$NOW" ]; then - echo "NOTE! Date mismatch in ChangeLog: wpa_supplicant $DATEw hostapd $DATEh != $NOW" -fi - -if [ -r $TMP ]; then - echo "Temporary directory '$TMP' exists. Remove it before running this." - exit 1 -fi - -mkdir $TMP -mkdir -p $RELDIR - -git archive --format=tar --prefix=wpa-$VER/ HEAD \ - README COPYING patches src wpa_supplicant hostapd | - gzip > $RELDIR/wpa-$VER.tar.gz -git archive --format=tar --prefix=hostapd-$VER/ HEAD \ - README COPYING patches src hostapd | - gzip > $RELDIR/hostapd-$VER.tar.gz -git archive --format=tar --prefix=wpa_supplicant-$VER/ HEAD \ - README COPYING patches src wpa_supplicant | - tar --directory=$TMP -xf - - -cd $TMP -make -C wpa_supplicant-$VER/wpa_supplicant/doc/docbook man -rm -f wpa_supplicant-$VER/wpa_supplicant/doc/docbook/manpage.{links,refs} -tar czf $RELDIR/wpa_supplicant-$VER.tar.gz wpa_supplicant-$VER -cd .. -rm -r $TMP - -if [ "$2" = "nobin" ]; then - exit 0 -fi - - -cd $RELDIR - - PDIR=wpa_supplicant-$VER - WDIR=wpa_supplicant-windows-bin-$VER - tar xzf $PDIR.tar.gz - mkdir "$WDIR" - cd "$PDIR/wpa_supplicant" - cat > .config <> .config < ../../"$WDIR"/$i - done - for i in README README-Windows.txt wpa_supplicant.conf; do - unix2dos < $i > ../../"$WDIR"/$i - done - mv *.exe ../../"$WDIR" - cp win_example.reg ../../"$WDIR" - - cd wpa_gui-qt4 - make -C icons - qmake -spec win32-x-g++ - make -j2 - cp release/wpa_gui.exe ../../../"$WDIR" - lrelease wpa_gui.pro - cp lang/wpa_gui_de.qm ../../../"$WDIR" - cd ../../.. - rm -rf "$PDIR" - zip "$WDIR.zip" "$WDIR"/* - rm -rf "$WDIR" - -cd $RELDIR/.. - -./build_nsis.sh "$RELDIR/$WDIR.zip" -mv wpa_supplicant-$VER.exe $RELDIR - -ls -l $RELDIR/*$VER* - -exit 0 diff --git a/doc/.gitignore b/doc/.gitignore deleted file mode 100644 index 4ea164e39..000000000 --- a/doc/.gitignore +++ /dev/null @@ -1,8 +0,0 @@ -doxygen.warnings -hostapd.eps -hostapd.png -html -latex -wpa_supplicant.eps -wpa_supplicant.png -wpa_supplicant-devel.pdf diff --git a/doc/Makefile b/doc/Makefile deleted file mode 100644 index 5c1b386e8..000000000 --- a/doc/Makefile +++ /dev/null @@ -1,26 +0,0 @@ -all: docs - -%.eps: %.fig - fig2dev -L eps $*.fig $*.eps - -%.png: %.fig - fig2dev -L png -m 3 $*.fig | pngtopnm | pnmscale 0.4 | pnmtopng \ - > $*.png - -docs-pics: wpa_supplicant.png wpa_supplicant.eps hostapd.png hostapd.eps - -docs: docs-pics - (cd ..; doxygen doc/doxygen.conf; cd doc) - $(MAKE) -C latex - cp latex/refman.pdf wpa_supplicant-devel.pdf - -html: docs-pics - (cd ..; doxygen doc/doxygen.conf; cd doc) - -clean: - rm -f *~ - rm -f wpa_supplicant.eps wpa_supplicant.png - rm -f hostapd.eps hostapd.png - rm -f doxygen.warnings - rm -rf html latex - rm -f wpa_supplicant-devel.pdf diff --git a/doc/code_structure.doxygen b/doc/code_structure.doxygen deleted file mode 100644 index 96f61601e..000000000 --- a/doc/code_structure.doxygen +++ /dev/null @@ -1,322 +0,0 @@ -/** -\page code_structure Structure of the source code - -[ \ref wpa_supplicant_core "wpa_supplicant core functionality" | -\ref generic_helper_func "Generic helper functions" | -\ref crypto_func "Cryptographic functions" | -\ref tls_func "TLS library" | -\ref configuration "Configuration" | -\ref ctrl_iface "Control interface" | -\ref wpa_code "WPA supplicant" | -\ref eap_peer "EAP peer" | -\ref eapol_supp "EAPOL supplicant" | -\ref win_port "Windows port" | -\ref test_programs "Test programs" ] - -%wpa_supplicant implementation is divided into number of independent -modules. Core code includes functionality for controlling the network -selection, association, and configuration. Independent modules include -WPA code (key handshake, PMKSA caching, pre-authentication), EAPOL -state machine, and EAP state machine and methods. In addition, there -are number of separate files for generic helper functions. - -Both WPA and EAPOL/EAP state machines can be used separately in other -programs than %wpa_supplicant. As an example, the included test -programs eapol_test and preauth_test are using these modules. - -\ref driver_wrapper "Driver interface API" is defined in driver.h and -all hardware/driver dependent functionality is implemented in -driver_*.c. - - -\section wpa_supplicant_core wpa_supplicant core functionality - -wpa_supplicant.c - Program initialization, main control loop - -main.c - main() for UNIX-like operating systems and MinGW (Windows); this - uses command line arguments to configure wpa_supplicant - -events.c - Driver event processing; wpa_supplicant_event() and related functions - -wpa_supplicant_i.h - Internal definitions for %wpa_supplicant core; should not be - included into independent modules - - -\section generic_helper_func Generic helper functions - -%wpa_supplicant uses generic helper functions some of which are shared -with with hostapd. The following C files are currently used: - -eloop.c and eloop.h - Event loop (select() loop with registerable timeouts, socket read - callbacks, and signal callbacks) - -common.c and common.h - Common helper functions - -defs.h - Definitions shared by multiple files - -l2_packet.h, l2_packet_linux.c, and l2_packet_pcap.c - Layer 2 (link) access wrapper (includes native Linux implementation - and wrappers for libdnet/libpcap). A new l2_packet implementation - may need to be added when porting to new operating systems that are - not supported by libdnet/libpcap. Makefile can be used to select which - l2_packet implementation is included. l2_packet_linux.c uses Linux - packet sockets and l2_packet_pcap.c has a more portable version using - libpcap and libdnet. - -pcsc_funcs.c and pcsc_funcs.h - Wrapper for PC/SC lite SIM and smart card readers - -priv_netlink.h - Private version of netlink definitions from Linux kernel header files; - this could be replaced with C library header file once suitable - version becomes commonly available - -version.h - Version number definitions - -wireless_copy.h - Private version of Linux wireless extensions definitions from kernel - header files; this could be replaced with C library header file once - suitable version becomes commonly available - - -\section crypto_func Cryptographic functions - -md5.c and md5.h - MD5 (replaced with a crypto library if TLS support is included) - HMAC-MD5 (keyed checksum for message authenticity validation) - -rc4.c and rc4.h - RC4 (broadcast/default key encryption) - -sha1.c and sha1.h - SHA-1 (replaced with a crypto library if TLS support is included) - HMAC-SHA-1 (keyed checksum for message authenticity validation) - PRF-SHA-1 (pseudorandom (key/nonce generation) function) - PBKDF2-SHA-1 (ASCII passphrase to shared secret) - T-PRF (for EAP-FAST) - TLS-PRF (RFC 2246) - -sha256.c and sha256.h - SHA-256 (replaced with a crypto library if TLS support is included) - -aes_wrap.c, aes_wrap.h, aes.c - AES (replaced with a crypto library if TLS support is included), - AES Key Wrap Algorithm with 128-bit KEK, RFC3394 (broadcast/default - key encryption), - One-Key CBC MAC (OMAC1) hash with AES-128, - AES-128 CTR mode encryption, - AES-128 EAX mode encryption/decryption, - AES-128 CBC - -crypto.h - Definition of crypto library wrapper - -crypto_openssl.c - Wrapper functions for libcrypto (OpenSSL) - -crypto_internal.c - Wrapper functions for internal crypto implementation - -crypto_gnutls.c - Wrapper functions for libgcrypt (used by GnuTLS) - -ms_funcs.c and ms_funcs.h - Helper functions for MSCHAPV2 and LEAP - -tls.h - Definition of TLS library wrapper - -tls_none.c - Dummy implementation of TLS library wrapper for cases where TLS - functionality is not included. - -tls_openssl.c - TLS library wrapper for openssl - -tls_internal.c - TLS library for internal TLS implementation - -tls_gnutls.c - TLS library wrapper for GnuTLS - - -\section tls_func TLS library - -asn1.c and asn1.h - ASN.1 DER parsing - -bignum.c and bignum.h - Big number math - -rsa.c and rsa.h - RSA - -x509v3.c and x509v3.h - X.509v3 certificate parsing and processing - -tlsv1_client.c, tlsv1_client.h - TLSv1 client (RFC 2246) - -tlsv1_client_i.h - Internal structures for TLSv1 client - -tlsv1_client_read.c - TLSv1 client: read handshake messages - -tlsv1_client_write.c - TLSv1 client: write handshake messages - -tlsv1_common.c and tlsv1_common.h - Common TLSv1 routines and definitions - -tlsv1_cred.c and tlsv1_cred.h - TLSv1 credentials - -tlsv1_record.c and tlsv1_record.h - TLSv1 record protocol - - -\section configuration Configuration - -config_ssid.h - Definition of per network configuration items - -config.h - Definition of the %wpa_supplicant configuration - -config.c - Configuration parser and common functions - -config_file.c - Configuration backend for text files (e.g., wpa_supplicant.conf) - -config_winreg.c - Configuration backend for Windows registry - - -\section ctrl_iface Control interface - -%wpa_supplicant has a \ref ctrl_iface_page "control interface" -that can be used to get status -information and manage operations from external programs. An example -command line interface (wpa_cli) and GUI (wpa_gui) for this interface -are included in the %wpa_supplicant distribution. - -ctrl_iface.c and ctrl_iface.h - %wpa_supplicant-side of the control interface - -ctrl_iface_unix.c - UNIX domain sockets -based control interface backend - -ctrl_iface_udp.c - UDP sockets -based control interface backend - -ctrl_iface_named_pipe.c - Windows named pipes -based control interface backend - -wpa_ctrl.c and wpa_ctrl.h - Library functions for external programs to provide access to the - %wpa_supplicant control interface - -wpa_cli.c - Example program for using %wpa_supplicant control interface - - -\section wpa_code WPA supplicant - -wpa.c and wpa.h - WPA state machine and 4-Way/Group Key Handshake processing - -preauth.c and preauth.h - PMKSA caching and pre-authentication (RSN/WPA2) - -wpa_i.h - Internal definitions for WPA code; not to be included to other modules. - -\section eap_peer EAP peer - -\ref eap_peer_module "EAP peer implementation" is a separate module that -can be used by other programs than just %wpa_supplicant. - -eap.c and eap.h - EAP state machine and method interface - -eap_defs.h - Common EAP definitions - -eap_i.h - Internal definitions for EAP state machine and EAP methods; not to be - included in other modules - -eap_sim_common.c and eap_sim_common.h - Common code for EAP-SIM and EAP-AKA - -eap_tls_common.c and eap_tls_common.h - Common code for EAP-PEAP, EAP-TTLS, and EAP-FAST - -eap_tlv.c and eap_tlv.h - EAP-TLV code for EAP-PEAP and EAP-FAST - -eap_ttls.c and eap_ttls.h - EAP-TTLS - -eap_pax.c, eap_pax_common.h, eap_pax_common.c - EAP-PAX - -eap_psk.c, eap_psk_common.h, eap_psk_common.c - EAP-PSK (note: this is not needed for WPA-PSK) - -eap_sake.c, eap_sake_common.h, eap_sake_common.c - EAP-SAKE - -eap_gpsk.c, eap_gpsk_common.h, eap_gpsk_common.c - EAP-GPSK - -eap_aka.c, eap_fast.c, eap_gtc.c, eap_leap.c, eap_md5.c, eap_mschapv2.c, -eap_otp.c, eap_peap.c, eap_sim.c, eap_tls.c - Other EAP method implementations - - -\section eapol_supp EAPOL supplicant - -eapol_supp_sm.c and eapol_supp_sm.h - EAPOL supplicant state machine and IEEE 802.1X processing - - -\section win_port Windows port - -ndis_events.c - Code for receiving NdisMIndicateStatus() events and delivering them to - %wpa_supplicant driver_ndis.c in more easier to use form - -win_if_list.c - External program for listing current network interface - - -\section test_programs Test programs - -radius_client.c and radius_client.h - RADIUS authentication client implementation for eapol_test - -radius.c and radius.h - RADIUS message processing for eapol_test - -eapol_test.c - Standalone EAP testing tool with integrated RADIUS authentication - client - -preauth_test.c - Standalone RSN pre-authentication tool - -wpa_passphrase.c - WPA ASCII passphrase to PSK conversion - -*/ diff --git a/doc/ctrl_iface.doxygen b/doc/ctrl_iface.doxygen deleted file mode 100644 index f820f9e16..000000000 --- a/doc/ctrl_iface.doxygen +++ /dev/null @@ -1,1053 +0,0 @@ -/** -\page ctrl_iface_page %wpa_supplicant control interface - -%wpa_supplicant implements a control interface that can be used by -external programs to control the operations of the %wpa_supplicant -daemon and to get status information and event notifications. There is -a small C library, in a form of a single C file, wpa_ctrl.c, that -provides helper functions to facilitate the use of the control -interface. External programs can link this file into them and then use -the library functions documented in wpa_ctrl.h to interact with -%wpa_supplicant. This library can also be used with C++. wpa_cli.c and -wpa_gui are example programs using this library. - -There are multiple mechanisms for inter-process communication. For -example, Linux version of %wpa_supplicant is using UNIX domain sockets -for the control interface and Windows version UDP sockets. The use of -the functions defined in wpa_ctrl.h can be used to hide the details of -the used IPC from external programs. - - -\section using_ctrl_iface Using the control interface - -External programs, e.g., a GUI or a configuration utility, that need to -communicate with %wpa_supplicant should link in wpa_ctrl.c. This -allows them to use helper functions to open connection to the control -interface with wpa_ctrl_open() and to send commands with -wpa_ctrl_request(). - -%wpa_supplicant uses the control interface for two types of communication: -commands and unsolicited event messages. Commands are a pair of -messages, a request from the external program and a response from -%wpa_supplicant. These can be executed using wpa_ctrl_request(). -Unsolicited event messages are sent by %wpa_supplicant to the control -interface connection without specific request from the external program -for receiving each message. However, the external program needs to -attach to the control interface with wpa_ctrl_attach() to receive these -unsolicited messages. - -If the control interface connection is used both for commands and -unsolicited event messages, there is potential for receiving an -unsolicited message between the command request and response. -wpa_ctrl_request() caller will need to supply a callback, msg_cb, -for processing these messages. Often it is easier to open two -control interface connections by calling wpa_ctrl_open() twice and -then use one of the connections for commands and the other one for -unsolicited messages. This way command request/response pairs will -not be broken by unsolicited messages. wpa_cli is an example of how -to use only one connection for both purposes and wpa_gui demonstrates -how to use two separate connections. - -Once the control interface connection is not needed anymore, it should -be closed by calling wpa_ctrl_close(). If the connection was used for -unsolicited event messages, it should be first detached by calling -wpa_ctrl_detach(). - - -\section ctrl_iface_cmds Control interface commands - -Following commands can be used with wpa_ctrl_request(): - -\subsection ctrl_iface_PING PING - -This command can be used to test whether %wpa_supplicant is replying -to the control interface commands. The expected reply is \c PONG if the -connection is open and %wpa_supplicant is processing commands. - - -\subsection ctrl_iface_MIB MIB - -Request a list of MIB variables (dot1x, dot11). The output is a text -block with each line in \c variable=value format. For example: - -\verbatim -dot11RSNAOptionImplemented=TRUE -dot11RSNAPreauthenticationImplemented=TRUE -dot11RSNAEnabled=FALSE -dot11RSNAPreauthenticationEnabled=FALSE -dot11RSNAConfigVersion=1 -dot11RSNAConfigPairwiseKeysSupported=5 -dot11RSNAConfigGroupCipherSize=128 -dot11RSNAConfigPMKLifetime=43200 -dot11RSNAConfigPMKReauthThreshold=70 -dot11RSNAConfigNumberOfPTKSAReplayCounters=1 -dot11RSNAConfigSATimeout=60 -dot11RSNAAuthenticationSuiteSelected=00-50-f2-2 -dot11RSNAPairwiseCipherSelected=00-50-f2-4 -dot11RSNAGroupCipherSelected=00-50-f2-4 -dot11RSNAPMKIDUsed= -dot11RSNAAuthenticationSuiteRequested=00-50-f2-2 -dot11RSNAPairwiseCipherRequested=00-50-f2-4 -dot11RSNAGroupCipherRequested=00-50-f2-4 -dot11RSNAConfigNumberOfGTKSAReplayCounters=0 -dot11RSNA4WayHandshakeFailures=0 -dot1xSuppPaeState=5 -dot1xSuppHeldPeriod=60 -dot1xSuppAuthPeriod=30 -dot1xSuppStartPeriod=30 -dot1xSuppMaxStart=3 -dot1xSuppSuppControlledPortStatus=Authorized -dot1xSuppBackendPaeState=2 -dot1xSuppEapolFramesRx=0 -dot1xSuppEapolFramesTx=440 -dot1xSuppEapolStartFramesTx=2 -dot1xSuppEapolLogoffFramesTx=0 -dot1xSuppEapolRespFramesTx=0 -dot1xSuppEapolReqIdFramesRx=0 -dot1xSuppEapolReqFramesRx=0 -dot1xSuppInvalidEapolFramesRx=0 -dot1xSuppEapLengthErrorFramesRx=0 -dot1xSuppLastEapolFrameVersion=0 -dot1xSuppLastEapolFrameSource=00:00:00:00:00:00 -\endverbatim - - -\subsection ctrl_iface_STATUS STATUS - -Request current WPA/EAPOL/EAP status information. The output is a text -block with each line in \c variable=value format. For example: - -\verbatim -bssid=02:00:01:02:03:04 -ssid=test network -pairwise_cipher=CCMP -group_cipher=CCMP -key_mgmt=WPA-PSK -wpa_state=COMPLETED -ip_address=192.168.1.21 -Supplicant PAE state=AUTHENTICATED -suppPortStatus=Authorized -EAP state=SUCCESS -\endverbatim - - -\subsection ctrl_iface_STATUS-VERBOSE STATUS-VERBOSE - -Same as STATUS, but with more verbosity (i.e., more \c variable=value pairs). - -\verbatim -bssid=02:00:01:02:03:04 -ssid=test network -id=0 -pairwise_cipher=CCMP -group_cipher=CCMP -key_mgmt=WPA-PSK -wpa_state=COMPLETED -ip_address=192.168.1.21 -Supplicant PAE state=AUTHENTICATED -suppPortStatus=Authorized -heldPeriod=60 -authPeriod=30 -startPeriod=30 -maxStart=3 -portControl=Auto -Supplicant Backend state=IDLE -EAP state=SUCCESS -reqMethod=0 -methodState=NONE -decision=COND_SUCC -ClientTimeout=60 -\endverbatim - - -\subsection ctrl_iface_PMKSA PMKSA - -Show PMKSA cache - -\verbatim -Index / AA / PMKID / expiration (in seconds) / opportunistic -1 / 02:00:01:02:03:04 / 000102030405060708090a0b0c0d0e0f / 41362 / 0 -2 / 02:00:01:33:55:77 / 928389281928383b34afb34ba4212345 / 362 / 1 -\endverbatim - - -\subsection ctrl_iface_SET SET - -Set variables: -- EAPOL::heldPeriod -- EAPOL::authPeriod -- EAPOL::startPeriod -- EAPOL::maxStart -- dot11RSNAConfigPMKLifetime -- dot11RSNAConfigPMKReauthThreshold -- dot11RSNAConfigSATimeout - -Example command: -\verbatim -SET EAPOL::heldPeriod 45 -\endverbatim - - -\subsection ctrl_iface_LOGON LOGON - -IEEE 802.1X EAPOL state machine logon. - - -\subsection ctrl_iface_LOGOFF LOGOFF - -IEEE 802.1X EAPOL state machine logoff. - - -\subsection ctrl_iface_REASSOCIATE REASSOCIATE - -Force reassociation. - - -\subsection ctrl_iface_RECONNECT RECONNECT - -Connect if disconnected (i.e., like \c REASSOCIATE, but only connect -if in disconnected state). - - -\subsection ctrl_iface_PREAUTH PREAUTH - -Start pre-authentication with the given BSSID. - - -\subsection ctrl_iface_ATTACH ATTACH - -Attach the connection as a monitor for unsolicited events. This can -be done with wpa_ctrl_attach(). - - -\subsection ctrl_iface_DETACH DETACH - -Detach the connection as a monitor for unsolicited events. This can -be done with wpa_ctrl_detach(). - - -\subsection ctrl_iface_LEVEL LEVEL - -Change debug level. - - -\subsection ctrl_iface_RECONFIGURE RECONFIGURE - -Force %wpa_supplicant to re-read its configuration data. - - -\subsection ctrl_iface_TERMINATE TERMINATE - -Terminate %wpa_supplicant process. - - -\subsection ctrl_iface_BSSID BSSID - -Set preferred BSSID for a network. Network id can be received from the -\c LIST_NETWORKS command output. - - -\subsection ctrl_iface_LIST_NETWORKS LIST_NETWORKS - -List configured networks. - -\verbatim -network id / ssid / bssid / flags -0 example network any [CURRENT] -\endverbatim - -(note: fields are separated with tabs) - - -\subsection ctrl_iface_DISCONNECT DISCONNECT - -Disconnect and wait for \c REASSOCIATE or \c RECONNECT command before -connecting. - - -\subsection ctrl_iface_SCAN SCAN - -Request a new BSS scan. - - -\subsection ctrl_iface_SCAN_RESULTS SCAN_RESULTS - -Get the latest scan results. - -\verbatim -bssid / frequency / signal level / flags / ssid -00:09:5b:95:e0:4e 2412 208 [WPA-PSK-CCMP] jkm private -02:55:24:33:77:a3 2462 187 [WPA-PSK-TKIP] testing -00:09:5b:95:e0:4f 2412 209 jkm guest -\endverbatim - -(note: fields are separated with tabs) - - -\subsection ctrl_iface_BSS BSS - -Get detailed per-BSS scan results. \c BSS command can be used to -iterate through scan results one BSS at a time and to fetch all -information from the found BSSes. This provides access to the same -data that is available through \c SCAN_RESULTS but in a way that -avoids problems with large number of scan results not fitting in the -ctrl_iface messages. - -There are two options for selecting the BSS with the \c BSS command: -"BSS " requests information for the BSS identified by the index -(0 .. size-1) in the scan results table and "BSS " requests -information for the given BSS (based on BSSID in 00:01:02:03:04:05 -format). - -BSS information is presented in following format. Please note that new -fields may be added to this field=value data, so the ctrl_iface user -should be prepared to ignore values it does not understand. - -\verbatim -bssid=00:09:5b:95:e0:4e -freq=2412 -beacon_int=0 -capabilities=0x0011 -qual=51 -noise=161 -level=212 -tsf=0000000000000000 -ie=000b6a6b6d2070726976617465010180dd180050f20101000050f20401000050f20401000050f2020000 -ssid=jkm private -\endverbatim - - - -\subsection ctrl_iface_SELECT_NETWORK SELECT_NETWORK - -Select a network (disable others). Network id can be received from the -\c LIST_NETWORKS command output. - - -\subsection ctrl_iface_ENABLE_NETWORK ENABLE_NETWORK - -Enable a network. Network id can be received from the -\c LIST_NETWORKS command output. Special network id \c all can be -used to enable all network. - - -\subsection ctrl_iface_DISABLE_NETWORK DISABLE_NETWORK - -Disable a network. Network id can be received from the -\c LIST_NETWORKS command output. Special network id \c all can be -used to disable all network. - - -\subsection ctrl_iface_ADD_NETWORK ADD_NETWORK - -Add a new network. This command creates a new network with empty -configuration. The new network is disabled and once it has been -configured it can be enabled with \c ENABLE_NETWORK command. \c ADD_NETWORK -returns the network id of the new network or FAIL on failure. - - -\subsection ctrl_iface_REMOVE_NETWORK REMOVE_NETWORK - -Remove a network. Network id can be received from the -\c LIST_NETWORKS command output. Special network id \c all can be -used to remove all network. - - -\subsection ctrl_iface_SET_NETWORK SET_NETWORK - -Set network variables. Network id can be received from the -\c LIST_NETWORKS command output. - -This command uses the same variables and data formats as the -configuration file. See example wpa_supplicant.conf for more details. - -- ssid (network name, SSID) -- psk (WPA passphrase or pre-shared key) -- key_mgmt (key management protocol) -- identity (EAP identity) -- password (EAP password) -- ... - - -\subsection ctrl_iface_GET_NETWORK GET_NETWORK - -Get network variables. Network id can be received from the -\c LIST_NETWORKS command output. - - -\subsection ctrl_iface_SAVE_CONFIG SAVE_CONFIG - -Save the current configuration. - - -\subsection ctrl_iface_P2P_FIND P2P_FIND - -Start P2P device discovery. Optional parameter can be used to specify -the duration for the discovery in seconds (e.g., "P2P_FIND 5"). If the -duration is not specified, discovery will be started for indefinite -time, i.e., until it is terminated by P2P_STOP_FIND or P2P_CONNECT (to -start group formation with a discovered peer). - -The default search type is to first run a full scan of all channels -and then continue scanning only social channels (1, 6, 11). This -behavior can be changed by specifying a different search type: social -(e.g., "P2P_FIND 5 type=social") will skip the initial full scan and -only search social channels; progressive (e.g., "P2P_FIND -type=progressive") starts with a full scan and then searches -progressively through all channels one channel at the time with the -social channel scans. Progressive device discovery can be used to find -new groups (and groups that were not found during the initial scan, -e.g., due to the GO being asleep) over time without adding -considerable extra delay for every Search state round. - - -\subsection ctrl_iface_P2P_STOP_FIND P2P_STOP_FIND - -Stop ongoing P2P device discovery or other operation (connect, listen -mode). - - -\subsection ctrl_iface_P2P_CONNECT P2P_CONNECT - -Start P2P group formation with a discovered P2P peer. This includes -group owner negotiation, group interface setup, provisioning, and -establishing data connection. - -P2P_CONNECT -[label|display|keypad] [persistent] [join|auth] [go_intent=<0..15>] - -Start P2P group formation with a discovered P2P peer. This includes -optional group owner negotiation, group interface setup, provisioning, -and establishing data connection. - -The parameter specifies the WPS provisioning -method. "pbc" string starts pushbutton method, "pin" string start PIN -method using an automatically generated PIN (which will be returned as -the command return code), PIN# means that a pre-selected PIN can be -used (e.g., 12345670). [label|display|keypad] is used with PIN method -to specify which PIN is used (label=PIN from local label, -display=dynamically generated random PIN from local display, -keypad=PIN entered from peer device label or display). "persistent" -parameter can be used to request a persistent group to be formed. - -"join" indicates that this is a command to join an existing group as a -client. It skips the GO Negotiation part. - -"auth" indicates that the WPS parameters are authorized for the peer -device without actually starting GO Negotiation (i.e., the peer is -expected to initiate GO Negotiation). This is mainly for testing -purposes. - -The optional "go_intent" parameter can be used to override the default -GO Intent value. - - -\subsection ctrl_iface_P2P_LISTEN P2P_LISTEN - -Start Listen-only state. Optional parameter can be used to specify the -duration for the Listen operation in seconds. This command may not -be of that much use during normal operations and is mainly designed -for testing. It can also be used to keep the device discoverable -without having to maintain a group. - - -\subsection ctrl_iface_P2P_GROUP_REMOVE P2P_GROUP_REMOVE - -Terminate a P2P group. If a new virtual network interface was used for -the group, it will also be removed. The network interface name of the -group interface is used as a parameter for this command. - - -\subsection ctrl_iface_P2P_GROUP_ADD P2P_GROUP_ADD - -Set up a P2P group owner manually (i.e., without group owner -negotiation with a specific peer). This is also known as autonomous -GO. Optional persistent= can be used to specify restart of -a persistent group. - - -\subsection ctrl_iface_P2P_PROV_DISC P2P_PROV_DISC - -Send P2P provision discovery request to the specified peer. The -parameters for this command are the P2P device address of the peer and -the desired configuration method. For example, "P2P_PROV_DISC -02:01:02:03:04:05 display" would request the peer to display a PIN for -us and "P2P_PROV_DISC 02:01:02:03:04:05 keypad" would request the peer -to enter a PIN that we display. - - -\subsection ctrl_iface_P2P_GET_PASSPHRASE P2P_GET_PASSPHRASE - -Get the passphrase for a group (only available when acting as a GO). - - -\subsection ctrl_iface_P2P_SERV_DISC_REQ P2P_SERV_DISC_REQ - -Schedule a P2P service discovery request. The parameters for this -command are the device address of the peer device (or 00:00:00:00:00:00 -for wildcard query that is sent to every discovered P2P peer that -supports service discovery) and P2P Service Query TLV(s) as hexdump. -For example, "P2P_SERV_DISC_REQ 00:00:00:00:00:00 02000001" schedules -a request for listing all supported service discovery protocols and -requests this to be sent to all discovered peers. The pending requests -are sent during device discovery (see \ref ctrl_iface_P2P_FIND). - -This command returns an identifier for the pending query (e.g., -"1f77628") that can be used to cancel the request. Directed requests -will be automatically removed when the specified peer has replied to -it. - - -\subsection ctrl_iface_P2P_SERV_DISC_CANCEL_REQ P2P_SERV_DISC_CANCEL_REQ - -Cancel a pending P2P service discovery request. This command takes a -single parameter: identifier for the pending query (the value returned -by \ref ctrl_iface_P2P_SERV_DISC_REQ), e.g., -"P2P_SERV_DISC_CANCEL_REQ 1f77628". - - -\subsection ctrl_iface_P2P_SERV_DISC_RESP P2P_SERV_DISC_RESP - -Reply to a service discovery query. This command takes following -parameters: frequency in MHz, destination address, dialog token, -response TLV(s). The first three parameters are copied from the -request event. For example, -"P2P_SERV_DISC_RESP 2437 02:40:61:c2:f3:b7 1 0300000101". - - -\subsection ctrl_iface_P2P_SERVICE_UPDATE P2P_SERVICE_UPDATE - -Indicate that local services have changed. This is used to increment -the P2P service indicator value so that peers know when previously -cached information may have changed. - - -\subsection ctrl_iface_P2P_SERV_DISC_EXTERNAL P2P_SERV_DISC_EXTERNAL - -Configure external processing of P2P service requests: 0 (default) = -no external processing of requests (i.e., internal code will reject -each request), 1 = external processing of requests (external program -is responsible for replying to service discovery requests with -\ref ctrl_iface_P2P_SERV_DISC_RESP). - - -\subsection ctrl_iface_P2P_REJECT P2P_REJECT - -Reject connection attempt from a peer (specified with a device -address). This is a mechanism to reject a pending GO Negotiation with -a peer and request to automatically block any further connection or -discovery of the peer. - - -\subsection ctrl_iface_P2P_INVITE P2P_INVITE - -Invite a peer to join a group or to (re)start a persistent group. - - -\subsection ctrl_iface_P2P_PEER P2P_PEER - -Fetch information about a discovered peer. This command takes in an -argument specifying which peer to select: P2P Device Address of the -peer, "FIRST" to indicate the first peer in the list, or "NEXT-" to indicate the entry following the specified peer -(to allow for iterating through the list). - - -\subsection ctrl_iface_P2P_EXT_LISTEN P2P_EXT_LISTEN - -Enable/disable extended listen timing. Without parameters, this -command disables extended listen timing. When enabling the feature, -two parameters are used: availibility period and availability interval -(both in milliseconds and with range of 1-65535). - - -\section ctrl_iface_interactive Interactive requests - -If %wpa_supplicant needs additional information during authentication -(e.g., password), it will use a specific prefix, \c CTRL-REQ- -(\a WPA_CTRL_REQ macro) in an unsolicited event message. An external -program, e.g., a GUI, can provide such information by using -\c CTRL-RSP- (\a WPA_CTRL_RSP macro) prefix in a command with matching -field name. - -The following fields can be requested in this way from the user: -- IDENTITY (EAP identity/user name) -- PASSWORD (EAP password) -- NEW_PASSWORD (New password if the server is requesting password change) -- PIN (PIN code for accessing a SIM or smartcard) -- OTP (one-time password; like password, but the value is used only once) -- PASSPHRASE (passphrase for a private key file) - -\verbatim -CTRL-REQ--- -CTRL-RSP--- -\endverbatim - -For example, request from %wpa_supplicant: -\verbatim -CTRL-REQ-PASSWORD-1-Password needed for SSID test-network -\endverbatim - -And a matching reply from the GUI: -\verbatim -CTRL-RSP-PASSWORD-1-secret -\endverbatim - - -\subsection ctrl_iface_GET_CAPABILITY GET_CAPABILITY