diff options
author | sam <sam@FreeBSD.org> | 2007-07-11 15:48:36 +0000 |
---|---|---|
committer | sam <sam@FreeBSD.org> | 2007-07-11 15:48:36 +0000 |
commit | 35aef052ff21baa52c4cec68b512986c21f70a48 (patch) | |
tree | c3da7f33886a852f7dceb74373fbdeec49a48f77 /contrib/wpa_supplicant/doc | |
parent | 840099f34d8de1ca769f02fae379c4d8e5d6688a (diff) | |
download | FreeBSD-src-35aef052ff21baa52c4cec68b512986c21f70a48.zip FreeBSD-src-35aef052ff21baa52c4cec68b512986c21f70a48.tar.gz |
Import of WPA supplicant 0.5.8
Diffstat (limited to 'contrib/wpa_supplicant/doc')
19 files changed, 239 insertions, 45 deletions
diff --git a/contrib/wpa_supplicant/doc/code_structure.doxygen b/contrib/wpa_supplicant/doc/code_structure.doxygen index 6a32e59..23b7f22 100644 --- a/contrib/wpa_supplicant/doc/code_structure.doxygen +++ b/contrib/wpa_supplicant/doc/code_structure.doxygen @@ -219,6 +219,12 @@ eap_pax.c, eap_pax_common.h, eap_pax_common.c 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 diff --git a/contrib/wpa_supplicant/doc/ctrl_iface.doxygen b/contrib/wpa_supplicant/doc/ctrl_iface.doxygen index fd1b9c4..f9e7d0e 100644 --- a/contrib/wpa_supplicant/doc/ctrl_iface.doxygen +++ b/contrib/wpa_supplicant/doc/ctrl_iface.doxygen @@ -138,6 +138,7 @@ 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 @@ -368,11 +369,15 @@ CTRL-RSP-PASSWORD-1-secret \endverbatim -\subsection ctrl_iface_GET_CAPABILITY GET_CAPABILITY <option> +\subsection ctrl_iface_GET_CAPABILITY GET_CAPABILITY <option> [strict] Get list of supported functionality (eap, pairwise, group, proto). Supported functionality is shown as space separate lists of values used in the same format as in %wpa_supplicant configuration. +If optional argument, 'strict', is added, only the values that the +driver claims to explicitly support are included. Without this, all +available capabilities are included if the driver does not provide +a mechanism for querying capabilities. Example request/reply pairs: @@ -387,6 +392,10 @@ CCMP TKIP NONE \endverbatim \verbatim +GET_CAPABILITY pairwise strict +\endverbatim + +\verbatim GET_CAPABILITY group CCMP TKIP WEP104 WEP40 \endverbatim @@ -406,4 +415,23 @@ GET_CAPABILITY auth_alg OPEN SHARED LEAP \endverbatim + +\subsection ctrl_iface_AP_SCAN AP_SCAN <ap_scan value> + +Change ap_scan value: +0 = no scanning, +1 = %wpa_supplicant requests scans and uses scan results to select the AP, +2 = %wpa_supplicant does not use scanning and just requests driver to +associate and take care of AP selection + + +\subsection ctrl_iface_INTERFACES INTERFACES + +List configured interfaces. + +\verbatim +wlan0 +eth0 +\endverbatim + */ diff --git a/contrib/wpa_supplicant/doc/docbook/wpa_background.8 b/contrib/wpa_supplicant/doc/docbook/wpa_background.8 index 3a7be28..7f9d637 100644 --- a/contrib/wpa_supplicant/doc/docbook/wpa_background.8 +++ b/contrib/wpa_supplicant/doc/docbook/wpa_background.8 @@ -3,7 +3,7 @@ .\" <http://shell.ipoline.com/~elmert/comp/docbook2X/> .\" Please send any bug reports, improvements, comments, patches, .\" etc. to Steve Cheng <steve@ggi-project.org>. -.TH "WPA_BACKGROUND" "8" "08 February 2006" "" "" +.TH "WPA_BACKGROUND" "8" "28 May 2007" "" "" .SH NAME wpa_background \- Background information on Wi-Fi Protected Access and IEEE 802.11i @@ -76,7 +76,7 @@ pre-authentication, and PMKSA caching). .SH "LEGAL" .PP wpa_supplicant is copyright (c) 2003-2005, -Jouni Malinen <jkmaline@cc.hut.fi> and +Jouni Malinen <j@w1.fi> and contributors. All Rights Reserved. .PP diff --git a/contrib/wpa_supplicant/doc/docbook/wpa_background.sgml b/contrib/wpa_supplicant/doc/docbook/wpa_background.sgml index dc64360..91b08bc 100644 --- a/contrib/wpa_supplicant/doc/docbook/wpa_background.sgml +++ b/contrib/wpa_supplicant/doc/docbook/wpa_background.sgml @@ -91,7 +91,7 @@ <refsect1> <title>Legal</title> <para>wpa_supplicant is copyright (c) 2003-2005, - Jouni Malinen <email>jkmaline@cc.hut.fi</email> and + Jouni Malinen <email>j@w1.fi</email> and contributors. All Rights Reserved.</para> diff --git a/contrib/wpa_supplicant/doc/docbook/wpa_cli.8 b/contrib/wpa_supplicant/doc/docbook/wpa_cli.8 index ad039b5..6d32260 100644 --- a/contrib/wpa_supplicant/doc/docbook/wpa_cli.8 +++ b/contrib/wpa_supplicant/doc/docbook/wpa_cli.8 @@ -3,7 +3,7 @@ .\" <http://shell.ipoline.com/~elmert/comp/docbook2X/> .\" Please send any bug reports, improvements, comments, patches, .\" etc. to Steve Cheng <steve@ggi-project.org>. -.TH "WPA_CLI" "8" "08 February 2006" "" "" +.TH "WPA_CLI" "8" "28 May 2007" "" "" .SH NAME wpa_cli \- WPA command line client @@ -113,7 +113,14 @@ Run in daemon mode executing the action file based on events from wpa_supplicant. The specified file will be executed with the first argument set to interface name and second to "CONNECT" or "DISCONNECT" depending on the event. -This can be used +This can be used to execute networking tools required to configure +the interface. + +Additionally, three environmental variables are available to +the file: WPA_CTRL_DIR, WPA_ID, and WPA_ID_STR. WPA_CTRL_DIR +contains the absolute path to the ctrl_interface socket. WPA_ID +contains the unique network_id identifier assigned to the active +network, and WPA_ID_STR contains the content of the id_str option. .TP \fB-P file\fR Set the location of the PID @@ -177,7 +184,7 @@ configure pin for an SSID \fBotp <network id> <password>\fR configure one-time-password for an SSID .TP -\fBbssid *lt;network id> <BSSID>\fR +\fBbssid <network id> <BSSID>\fR set preferred BSSID for an SSID .TP \fBlist_networks\fR @@ -194,7 +201,7 @@ exit wpa_cli .SH "LEGAL" .PP wpa_supplicant is copyright (c) 2003-2005, -Jouni Malinen <jkmaline@cc.hut.fi> and +Jouni Malinen <j@w1.fi> and contributors. All Rights Reserved. .PP diff --git a/contrib/wpa_supplicant/doc/docbook/wpa_cli.sgml b/contrib/wpa_supplicant/doc/docbook/wpa_cli.sgml index e804239..140c365b 100644 --- a/contrib/wpa_supplicant/doc/docbook/wpa_cli.sgml +++ b/contrib/wpa_supplicant/doc/docbook/wpa_cli.sgml @@ -141,7 +141,15 @@ CTRL-REQ-OTP-2:Challenge 1235663 needed for SSID foobar based on events from wpa_supplicant. The specified file will be executed with the first argument set to interface name and second to "CONNECT" or "DISCONNECT" depending on the event. - This can be used </para></listitem> + This can be used to execute networking tools required to configure + the interface.</para> + + <para>Additionally, three environmental variables are available to + the file: WPA_CTRL_DIR, WPA_ID, and WPA_ID_STR. WPA_CTRL_DIR + contains the absolute path to the ctrl_interface socket. WPA_ID + contains the unique network_id identifier assigned to the active + network, and WPA_ID_STR contains the content of the id_str option. + </para></listitem> </varlistentry> <varlistentry> @@ -282,7 +290,7 @@ CTRL-REQ-OTP-2:Challenge 1235663 needed for SSID foobar </varlistentry> <varlistentry> - <term>bssid *lt;network id> <BSSID></term> + <term>bssid <network id> <BSSID></term> <listitem> <para>set preferred BSSID for an SSID</para> </listitem> @@ -320,7 +328,7 @@ CTRL-REQ-OTP-2:Challenge 1235663 needed for SSID foobar <refsect1> <title>Legal</title> <para>wpa_supplicant is copyright (c) 2003-2005, - Jouni Malinen <email>jkmaline@cc.hut.fi</email> and + Jouni Malinen <email>j@w1.fi</email> and contributors. All Rights Reserved.</para> diff --git a/contrib/wpa_supplicant/doc/docbook/wpa_passphrase.8 b/contrib/wpa_supplicant/doc/docbook/wpa_passphrase.8 index 11e0f85..c883777 100644 --- a/contrib/wpa_supplicant/doc/docbook/wpa_passphrase.8 +++ b/contrib/wpa_supplicant/doc/docbook/wpa_passphrase.8 @@ -3,10 +3,10 @@ .\" <http://shell.ipoline.com/~elmert/comp/docbook2X/> .\" Please send any bug reports, improvements, comments, patches, .\" etc. to Steve Cheng <steve@ggi-project.org>. -.TH "WPA_PASSPHRASE" "8" "08 February 2006" "" "" +.TH "WPA_PASSPHRASE" "8" "28 May 2007" "" "" .SH NAME -wpa_passphrase \- Set WPA passphrase for a SSID +wpa_passphrase \- Generate a WPA PSK from an ASCII passphrase for a SSID .SH SYNOPSIS \fBwpa_passphrase\fR [ \fB\fIssid\fB\fR ] [ \fB\fIpassphrase\fB\fR ] @@ -15,7 +15,8 @@ wpa_passphrase \- Set WPA passphrase for a SSID .PP \fBwpa_passphrase\fR pre-computes PSK entries for network configuration blocks of a -\fIwpa_supplicant.conf\fR file. +\fIwpa_supplicant.conf\fR file. An ASCII passphrase +and SSID are used to generate a 256-bit PSK. .SH "OPTIONS" .TP \fBssid\fR @@ -31,7 +32,7 @@ passphrase will be read from standard input. .SH "LEGAL" .PP wpa_supplicant is copyright (c) 2003-2005, -Jouni Malinen <jkmaline@cc.hut.fi> and +Jouni Malinen <j@w1.fi> and contributors. All Rights Reserved. .PP diff --git a/contrib/wpa_supplicant/doc/docbook/wpa_passphrase.sgml b/contrib/wpa_supplicant/doc/docbook/wpa_passphrase.sgml index 1380a74..eacb119 100644 --- a/contrib/wpa_supplicant/doc/docbook/wpa_passphrase.sgml +++ b/contrib/wpa_supplicant/doc/docbook/wpa_passphrase.sgml @@ -7,7 +7,7 @@ </refmeta> <refnamediv> <refname>wpa_passphrase</refname> - <refpurpose>Set WPA passphrase for a SSID</refpurpose> + <refpurpose>Generate a WPA PSK from an ASCII passphrase for a SSID</refpurpose> </refnamediv> <refsynopsisdiv> <cmdsynopsis> @@ -22,7 +22,8 @@ <para><command>wpa_passphrase</command> pre-computes PSK entries for network configuration blocks of a - <filename>wpa_supplicant.conf</filename> file.</para> + <filename>wpa_supplicant.conf</filename> file. An ASCII passphrase + and SSID are used to generate a 256-bit PSK.</para> </refsect1> <refsect1> @@ -62,7 +63,7 @@ <refsect1> <title>Legal</title> <para>wpa_supplicant is copyright (c) 2003-2005, - Jouni Malinen <email>jkmaline@cc.hut.fi</email> and + Jouni Malinen <email>j@w1.fi</email> and contributors. All Rights Reserved.</para> diff --git a/contrib/wpa_supplicant/doc/docbook/wpa_supplicant.8 b/contrib/wpa_supplicant/doc/docbook/wpa_supplicant.8 index fcd738b..502000d 100644 --- a/contrib/wpa_supplicant/doc/docbook/wpa_supplicant.8 +++ b/contrib/wpa_supplicant/doc/docbook/wpa_supplicant.8 @@ -3,13 +3,13 @@ .\" <http://shell.ipoline.com/~elmert/comp/docbook2X/> .\" Please send any bug reports, improvements, comments, patches, .\" etc. to Steve Cheng <steve@ggi-project.org>. -.TH "WPA_SUPPLICANT" "8" "08 February 2006" "" "" +.TH "WPA_SUPPLICANT" "8" "28 May 2007" "" "" .SH NAME wpa_supplicant \- Wi-Fi Protected Access client and IEEE 802.1X supplicant .SH SYNOPSIS -\fBwpa_supplicant\fR [ \fB-BddehLqqvw\fR ] [ \fB-i\fIifname\fB\fR ] [ \fB-c\fIconfig file\fB\fR ] [ \fB-D\fIdriver\fB\fR ] +\fBwpa_supplicant\fR [ \fB-BddehLqqvw\fR ] [ \fB-i\fIifname\fB\fR ] [ \fB-c\fIconfig file\fB\fR ] [ \fB-D\fIdriver\fB\fR ] [ \fB-P\fIPID_file\fB\fR ] .SH "OVERVIEW" .PP @@ -260,6 +260,15 @@ Interface to listen on. \fB-c filename\fR Path to configuration file. .TP +\fB-P PID_file\fR +Path to PID file. +.TP +\fB-C ctrl_interface\fR +Path to ctrl_interface socket (only used if -c is not). +.TP +\fB-g global ctrl_interface\fR +Path to global ctrl_interface socket. +.TP \fB-D driver\fR Driver to use. See the available options below. .TP @@ -454,7 +463,7 @@ encrypted passwords. .PP First, make a configuration file, e.g. \fI/etc/wpa_supplicant.conf\fR, that describes the networks -you are interested in. See \fBwpa_supplicant\fR(5) +you are interested in. See \fBwpa_supplicant.conf\fR(5) for details. .PP Once the configuration is ready, you can test whether the @@ -536,7 +545,7 @@ the AP. .SH "LEGAL" .PP wpa_supplicant is copyright (c) 2003-2005, -Jouni Malinen <jkmaline@cc.hut.fi> and +Jouni Malinen <j@w1.fi> and contributors. All Rights Reserved. .PP diff --git a/contrib/wpa_supplicant/doc/docbook/wpa_supplicant.conf.5 b/contrib/wpa_supplicant/doc/docbook/wpa_supplicant.conf.5 index d5e5c62..c7e4c6f 100644 --- a/contrib/wpa_supplicant/doc/docbook/wpa_supplicant.conf.5 +++ b/contrib/wpa_supplicant/doc/docbook/wpa_supplicant.conf.5 @@ -3,7 +3,7 @@ .\" <http://shell.ipoline.com/~elmert/comp/docbook2X/> .\" Please send any bug reports, improvements, comments, patches, .\" etc. to Steve Cheng <steve@ggi-project.org>. -.TH "WPA_SUPPLICANT.CONF" "5" "08 February 2006" "" "" +.TH "WPA_SUPPLICANT.CONF" "5" "28 May 2007" "" "" .SH NAME wpa_supplicant.conf \- configuration file for wpa_supplicant @@ -24,13 +24,13 @@ run in the background. Changes to configuration file can be reloaded be sending SIGHUP signal to \fBwpa_supplicant\fR ('killall -HUP wpa_supplicant'). Similarly, reloading can be triggered with -'wpa_cli reconfigure' command. +the 'wpa_cli reconfigure' command. .PP Configuration file can include one or more network blocks, e.g., one for each used SSID. wpa_supplicant will automatically -select the best betwork based on the order of network blocks in +select the best network based on the order of network blocks in the configuration file, network security level (WPA/WPA2 is -prefered), and signal strength. +preferred), and signal strength. .SH "QUICK EXAMPLES" .TP 3 1. diff --git a/contrib/wpa_supplicant/doc/docbook/wpa_supplicant.conf.sgml b/contrib/wpa_supplicant/doc/docbook/wpa_supplicant.conf.sgml index dbd9e37..082509c 100644 --- a/contrib/wpa_supplicant/doc/docbook/wpa_supplicant.conf.sgml +++ b/contrib/wpa_supplicant/doc/docbook/wpa_supplicant.conf.sgml @@ -26,13 +26,13 @@ <para>Changes to configuration file can be reloaded be sending SIGHUP signal to <command>wpa_supplicant</command> ('killall -HUP wpa_supplicant'). Similarly, reloading can be triggered with - 'wpa_cli reconfigure' command.</para> + the 'wpa_cli reconfigure' command.</para> <para>Configuration file can include one or more network blocks, e.g., one for each used SSID. wpa_supplicant will automatically - select the best betwork based on the order of network blocks in + select the best network based on the order of network blocks in the configuration file, network security level (WPA/WPA2 is - prefered), and signal strength.</para> + preferred), and signal strength.</para> </refsect1> <refsect1> diff --git a/contrib/wpa_supplicant/doc/docbook/wpa_supplicant.sgml b/contrib/wpa_supplicant/doc/docbook/wpa_supplicant.sgml index cb35abf..d19e546 100644 --- a/contrib/wpa_supplicant/doc/docbook/wpa_supplicant.sgml +++ b/contrib/wpa_supplicant/doc/docbook/wpa_supplicant.sgml @@ -16,6 +16,7 @@ <arg>-i<replaceable>ifname</replaceable></arg> <arg>-c<replaceable>config file</replaceable></arg> <arg>-D<replaceable>driver</replaceable></arg> + <arg>-P<replaceable>PID_file</replaceable></arg> </cmdsynopsis> </refsynopsisdiv> <refsect1> @@ -347,6 +348,27 @@ </varlistentry> <varlistentry> + <term>-P PID_file</term> + <listitem> + <para>Path to PID file.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>-C ctrl_interface</term> + <listitem> + <para>Path to ctrl_interface socket (only used if -c is not).</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>-g global ctrl_interface</term> + <listitem> + <para>Path to global ctrl_interface socket.</para> + </listitem> + </varlistentry> + + <varlistentry> <term>-D driver</term> <listitem> <para>Driver to use. See the available options below.</para> @@ -657,7 +679,7 @@ wpa_supplicant \ <para>First, make a configuration file, e.g. <filename>/etc/wpa_supplicant.conf</filename>, that describes the networks you are interested in. See <citerefentry> - <refentrytitle>wpa_supplicant</refentrytitle> + <refentrytitle>wpa_supplicant.conf</refentrytitle> <manvolnum>5</manvolnum> </citerefentry> for details.</para> @@ -751,7 +773,7 @@ fi <refsect1> <title>Legal</title> <para>wpa_supplicant is copyright (c) 2003-2005, - Jouni Malinen <email>jkmaline@cc.hut.fi</email> and + Jouni Malinen <email>j@w1.fi</email> and contributors. All Rights Reserved.</para> diff --git a/contrib/wpa_supplicant/doc/doxygen.fast b/contrib/wpa_supplicant/doc/doxygen.fast index 2eb9d27..597fd37 100644 --- a/contrib/wpa_supplicant/doc/doxygen.fast +++ b/contrib/wpa_supplicant/doc/doxygen.fast @@ -4,7 +4,7 @@ # Project related configuration options #--------------------------------------------------------------------------- PROJECT_NAME = wpa_supplicant -PROJECT_NUMBER = 0.4.x +PROJECT_NUMBER = 0.5.x OUTPUT_DIRECTORY = doc CREATE_SUBDIRS = NO OUTPUT_LANGUAGE = English diff --git a/contrib/wpa_supplicant/doc/doxygen.full b/contrib/wpa_supplicant/doc/doxygen.full index 69cec65..9ed2ef8 100644 --- a/contrib/wpa_supplicant/doc/doxygen.full +++ b/contrib/wpa_supplicant/doc/doxygen.full @@ -4,7 +4,7 @@ # Project related configuration options #--------------------------------------------------------------------------- PROJECT_NAME = wpa_supplicant -PROJECT_NUMBER = 0.4.x +PROJECT_NUMBER = 0.5.x OUTPUT_DIRECTORY = doc CREATE_SUBDIRS = NO OUTPUT_LANGUAGE = English @@ -187,7 +187,7 @@ EXPAND_ONLY_PREDEF = NO SEARCH_INCLUDES = YES INCLUDE_PATH = INCLUDE_FILE_PATTERNS = -PREDEFINED = IEEE8021X_EAPOL +PREDEFINED = IEEE8021X_EAPOL CONFIG_CTRL_IFACE EXPAND_AS_DEFINED = SKIP_FUNCTION_MACROS = YES #--------------------------------------------------------------------------- diff --git a/contrib/wpa_supplicant/doc/eap.doxygen b/contrib/wpa_supplicant/doc/eap.doxygen index e1ae9c0..988b304 100644 --- a/contrib/wpa_supplicant/doc/eap.doxygen +++ b/contrib/wpa_supplicant/doc/eap.doxygen @@ -1,9 +1,10 @@ /** \page eap_module EAP peer implementation -%wpa_supplicant uses a separate code module for EAP peer -implementation. This module was designed to use only a minimal set of -direct function calls (mainly, to debug/event functions) in order for +Extensible Authentication Protocol (EAP) is an authentication framework +defined in RFC 3748. %wpa_supplicant uses a separate code module for EAP +peer implementation. This module was designed to use only a minimal set +of direct function calls (mainly, to debug/event functions) in order for it to be usable in other programs. The design of the EAP implementation is based loosely on RFC 4137. The state machine is defined in this RFC and so is the interface between the peer state @@ -25,8 +26,9 @@ methods use the same interface between the peer state machine and method specific functions. This allows new EAP methods to be added without modifying the core EAP state machine implementation. -New EAP methods need to be registered by adding them into build -(Makefile) and EAP method table in the beginning of eap.c. Each EAP +New EAP methods need to be registered by adding them into the build +(Makefile) and the EAP method registration list in the +eap_peer_register_methods() function of eap_methods.c. Each EAP method should use a build-time configuration option, e.g., EAP_TLS, in order to make it possible to select which of the methods are included in the build. @@ -35,4 +37,20 @@ EAP methods must implement the interface defined in eap_i.h. struct eap_method defines the needed function pointers that each EAP method must provide. In addition, the EAP type and name are registered using this structure. This interface is based on section 4.4 of RFC 4137. + +It is recommended that the EAP methods would use generic helper +functions, eap_msg_alloc() and eap_hdr_validate() when processing +messages. This allows code sharing and can avoid missing some of the +needed validation steps for received packets. In addition, these +functions make it easier to change between expanded and legacy EAP +header, if needed. + +When adding an EAP method that uses a vendor specific EAP type +(Expanded Type as defined in RFC 3748, Chapter 5.7), the new method +must be registered by passing vendor id instead of EAP_VENDOR_IETF to +eap_peer_method_alloc(). These methods must not try to emulate +expanded types by registering a legacy EAP method for type 254. See +eap_vendor_test.c for an example of an EAP method implementation that +is implemented as an expanded type. + */ diff --git a/contrib/wpa_supplicant/doc/kerneldoc2doxygen.pl b/contrib/wpa_supplicant/doc/kerneldoc2doxygen.pl index d46f7bd..68835a1 100755 --- a/contrib/wpa_supplicant/doc/kerneldoc2doxygen.pl +++ b/contrib/wpa_supplicant/doc/kerneldoc2doxygen.pl @@ -20,7 +20,7 @@ # ########################################################################## # Copyright (C) 2003 Jonathan Foster <jon@jon-foster.co.uk> -# Copyright (C) 2005 Jouni Malinen <jkmaline@cc.hut.fi> +# Copyright (C) 2005 Jouni Malinen <j@w1.fi> # (modified for kerneldoc format used in wpa_supplicant) # # This program is free software; you can redistribute it and/or modify @@ -34,7 +34,7 @@ # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA # or look at http://www.gnu.org/licenses/gpl.html ########################################################################## diff --git a/contrib/wpa_supplicant/doc/mainpage.doxygen b/contrib/wpa_supplicant/doc/mainpage.doxygen index 56882f4..6e58af8 100644 --- a/contrib/wpa_supplicant/doc/mainpage.doxygen +++ b/contrib/wpa_supplicant/doc/mainpage.doxygen @@ -13,7 +13,7 @@ give enough information for other developers to understand how %wpa_supplicant has been implemented, how it can be modified, how new drivers can be supported, and how %wpa_supplicant can be ported to other operating systems. If any information is missing, feel free to -contact Jouni Malinen <jkmaline@cc.hut.fi> for more +contact Jouni Malinen <j@w1.fi> for more information. Contributions as patch files are also very welcome at the same address. Please note that %wpa_supplicant is licensed under dual license, GPLv2 or BSD at user's choice. All contributions to diff --git a/contrib/wpa_supplicant/doc/porting.doxygen b/contrib/wpa_supplicant/doc/porting.doxygen index db64a11..581da48 100644 --- a/contrib/wpa_supplicant/doc/porting.doxygen +++ b/contrib/wpa_supplicant/doc/porting.doxygen @@ -5,14 +5,62 @@ hardware (board, CPU) and software (OS, drivers) targets. It is already used with number of operating systems and numerous wireless card models and drivers. The main %wpa_supplicant repository includes -support for Linux, FreeBSD, and Windows. In addition, at least VxWorks -and PalmOS are supported in separate repositories. On the hardware +support for Linux, FreeBSD, and Windows. In addition, at least VxWorks, +PalmOS, Windows CE, and Windows Mobile are supported in separate +repositories. On the hardware side, %wpa_supplicant is used on various systems: desktops, laptops, PDAs, and embedded devices with CPUs including x86, PowerPC, arm/xscale, and MIPS. Both big and little endian configurations are supported. +\section ansi_c_extra Extra functions on top of ANSI C + +%wpa_supplicant is mostly using ANSI C functions that are available on +most targets. However, couple of additional functions that are common +on modern UNIX systems are used. Number of these are listed with +prototypes in common.h (the #ifdef CONFIG_ANSI_C_EXTRA block). These +functions may need to be implemented or at least defined as macros to +native functions in the target OS or C library. + +Many of the common ANSI C functions are used through a wrapper +definitions in os.h to allow these to be replaced easily with a +platform specific version in case standard C libraries are not +available. In addition, os.h defines couple of common platform +specific functions that are implemented in os_unix.c for UNIX like +targets and in os_win32.c for Win32 API. If the target platform does +not support either of these examples, a new os_*.c file may need to be +added. + +Unless OS_NO_C_LIB_DEFINES is defined, the standard ANSI C and POSIX +functions are used by defining the os_*() wrappers to use them +directly in order to avoid extra cost in size and speed. If the target +platform needs different versions of the functions, os.h can be +modified to define the suitable macros or alternatively, +OS_NO_C_LIB_DEFINES may be defined for the build and the wrapper +functions can then be implemented in a new os_*.c wrapper file. + +common.h defines number of helper macros for handling integers of +different size and byte order. Suitable version of these definitions +may need to be added for the target platform. + + +\section configuration_backend Configuration backend + +%wpa_supplicant implements a configuration interface that allows the +backend to be easily replaced in order to read configuration data from +a suitable source depending on the target platform. config.c +implements the generic code that can be shared with all configuration +backends. Each backend is implemented in its own config_*.c file. + +The included config_file.c backend uses a text file for configuration +and config_winreg.c uses Windows registry. These files can be used as +an example for a new configuration backend if the target platform uses +different mechanism for configuration parameters. In addition, +config_none.c can be used as an empty starting point for building a +new configuration backend. + + \section driver_iface_porting Driver interface Unless the target OS and driver is already supported, most porting @@ -118,4 +166,43 @@ also possible to do this when a network interface is being enabled/disabled if it is desirable that %wpa_supplicant processing for the interface is fully enabled/disabled at the same time. + +\section simple_build Simple build example + +One way to start a porting project is to begin with a very simple +build of %wpa_supplicant with WPA-PSK support and once that is +building correctly, start adding features. + +Following command can be used to build very simple version of +%wpa_supplicant: + +\verbatim +cc -o wpa_supplicant config.c eloop.c common.c md5.c rc4.c sha1.c \ + config_none.c l2_packet_none.c tls_none.c wpa.c preauth.c \ + aes_wrap.c wpa_supplicant.c events.c main_none.c drivers.c +\endverbatim + +The end result is not really very useful since it uses empty functions +for configuration parsing and layer 2 packet access and does not +include a driver interface. However, this is a good starting point +since the build is complete in the sense that all functions are +present and this is easy to configure to a build system by just +including the listed C files. + +Once this version can be build successfully, the end result can be +made functional by adding a proper program entry point (main*.c), +driver interface (driver_*.c and matching CONFIG_DRIVER_* define for +registration in drivers.c), configuration parser/writer (config_*.c), +and layer 2 packet access implementation (l2_packet_*.c). After these +components have been added, the end result should be a working +WPA/WPA2-PSK enabled supplicant. + +After the basic functionality has been verified to work, more features +can be added by linking in more files and defining C pre-processor +defines. Currently, the best source of information for what options +are available and which files needs to be included is in the Makefile +used for building the supplicant with make. Similar configuration will +be needed for build systems that either use different type of make +tool or a GUI-based project configuration. + */ diff --git a/contrib/wpa_supplicant/doc/testing_tools.doxygen b/contrib/wpa_supplicant/doc/testing_tools.doxygen index c1e2408..a2ae0c2 100644 --- a/contrib/wpa_supplicant/doc/testing_tools.doxygen +++ b/contrib/wpa_supplicant/doc/testing_tools.doxygen @@ -47,7 +47,9 @@ The resulting eapol_test binary has following command like options: \verbatim usage: -eapol_test [-nW] -c<conf> [-a<AS IP>] [-p<AS port>] [-s<AS secret>] [-r<count>] +eapol_test [-nWS] -c<conf> [-a<AS IP>] [-p<AS port>] [-s<AS secret>] \ + [-r<count>] [-t<timeout>] [-C<Connect-Info>] \ + [-M<client MAC address>] eapol_test scard eapol_test sim <PIN> <num triplets> [debug] @@ -58,7 +60,12 @@ options: -s<AS secret> = shared secret with the authentication server, default 'radius' -r<count> = number of re-authentications -W = wait for a control interface monitor before starting + -S = save configuration after authentiation -n = no MPPE keys expected + -t<timeout> = sets timeout in seconds (default: 30 s) + -C<Connect-Info> = RADIUS Connect-Info (default: CONNECT 11Mbps 802.11b) + -M<client MAC address> = Set own MAC address (Calling-Station-Id, + default: 02:00:00:00:00:01) \endverbatim |