2
\mainpage Developers' documentation for %wpa_supplicant
4
%wpa_supplicant is a WPA Supplicant for Linux, BSD and Windows with
5
support for WPA and WPA2 (IEEE 802.11i / RSN). Supplicant is the IEEE
6
802.1X/WPA component that is used in the client stations. It
7
implements key negotiation with a WPA Authenticator and it can optionally
8
control roaming and IEEE 802.11 authentication/association of the wlan
11
The goal of this documentation and comments in the source code is to
12
give enough information for other developers to understand how
13
%wpa_supplicant has been implemented, how it can be modified, how new
14
drivers can be supported, and how %wpa_supplicant can be ported to
15
other operating systems. If any information is missing, feel free to
16
contact Jouni Malinen <j@w1.fi> for more
17
information. Contributions as patch files are also very welcome at the
18
same address. Please note that %wpa_supplicant is licensed under dual
19
license, GPLv2 or BSD at user's choice. All contributions to
20
%wpa_supplicant are expected to use compatible licensing terms.
22
The source code and read-only access to %wpa_supplicant CVS repository
23
is available from the project home page at
24
http://hostap.epitest.fi/wpa_supplicant/. This developers' documentation
25
is also available as a PDF file from
26
http://hostap.epitest.fi/wpa_supplicant/wpa_supplicant-devel.pdf .
28
The design goal for %wpa_supplicant was to use hardware, driver, and
29
OS independent, portable C code for all WPA functionality. The source
30
code is divided into separate C files as shown on the \ref
31
code_structure "code structure page". All hardware/driver specific
32
functionality is in separate files that implement a \ref
33
driver_wrapper "well-defined driver API". Information about porting
34
to different target boards and operating systems is available on
35
the \ref porting "porting page".
37
EAPOL (IEEE 802.1X) state machines are implemented as a separate
38
module that interacts with \ref eap_module "EAP peer implementation".
39
In addition to programs aimed at normal production use,
40
%wpa_supplicant source tree includes number of \ref testing_tools
41
"testing and development tools" that make it easier to test the
42
programs without having to setup a full test setup with wireless
43
cards. These tools can also be used to implement automatic test
46
%wpa_supplicant implements a
47
\ref ctrl_iface_page "control interface" that can be used by
48
external programs to control the operations of the %wpa_supplicant
49
daemon and to get status information and event notifications. There is
50
a small C library that provides helper functions to facilitate the use of the
51
control interface. This library can also be used with C++.
53
\image html wpa_supplicant.png "wpa_supplicant modules"
54
\image latex wpa_supplicant.eps "wpa_supplicant modules" width=15cm