95 lines
		
	
	
	
		
			4.4 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			95 lines
		
	
	
	
		
			4.4 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
| /**
 | |
| \mainpage Developers' documentation for wpa_supplicant and hostapd
 | |
| 
 | |
| The goal of this documentation and comments in the source code is to
 | |
| give enough information for other developers to understand how
 | |
| %wpa_supplicant and hostapd have been implemented, how they can be
 | |
| modified, how new drivers can be supported, and how the source code
 | |
| can be ported to other operating systems. If any information is
 | |
| missing, feel free to contact Jouni Malinen <j@w1.fi> for more
 | |
| information. Contributions as patch files are also very welcome at the
 | |
| same address. Please note that this software is licensed under dual
 | |
| license, GPLv2 or BSD at user's choice. All contributions to
 | |
| %wpa_supplicant and hostapd are expected to use compatible licensing
 | |
| terms.
 | |
| 
 | |
| The source code and read-only access to the combined %wpa_supplicant
 | |
| and hostapd Git repository is available from the project home page at
 | |
| http://w1.fi/wpa_supplicant/. This developers' documentation is also
 | |
| available as a PDF file from
 | |
| http://w1.fi/wpa_supplicant/wpa_supplicant-devel.pdf .
 | |
| 
 | |
| 
 | |
| \section wpa_supplicant wpa_supplicant
 | |
| 
 | |
| %wpa_supplicant is a WPA Supplicant for Linux, BSD and Windows with
 | |
| support for WPA and WPA2 (IEEE 802.11i / RSN). Supplicant is the IEEE
 | |
| 802.1X/WPA component that is used in the client stations. It
 | |
| implements key negotiation with a WPA Authenticator and it can optionally
 | |
| control roaming and IEEE 802.11 authentication/association of the wlan
 | |
| driver.
 | |
| 
 | |
| The design goal for %wpa_supplicant was to use hardware, driver, and
 | |
| OS independent, portable C code for all WPA functionality. The source
 | |
| code is divided into separate C files as shown on the \ref
 | |
| code_structure "code structure page". All hardware/driver specific
 | |
| functionality is in separate files that implement a \ref
 | |
| driver_wrapper "well-defined driver API". Information about porting
 | |
| to different target boards and operating systems is available on
 | |
| the \ref porting "porting page".
 | |
| 
 | |
| EAPOL (IEEE 802.1X) state machines are implemented as a separate
 | |
| module that interacts with \ref eap_peer_module "EAP peer implementation".
 | |
| In addition to programs aimed at normal production use,
 | |
| %wpa_supplicant source tree includes number of \ref testing_tools
 | |
| "testing and development tools" that make it easier to test the
 | |
| programs without having to setup a full test setup with wireless
 | |
| cards. These tools can also be used to implement automatic test
 | |
| suites.
 | |
| 
 | |
| %wpa_supplicant implements a
 | |
| \ref ctrl_iface_page "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 that provides helper functions to facilitate the use of the
 | |
| control interface. This library can also be used with C++.
 | |
| 
 | |
| \image html wpa_supplicant.png "wpa_supplicant modules"
 | |
| \image latex wpa_supplicant.eps "wpa_supplicant modules" width=15cm
 | |
| 
 | |
| 
 | |
| \section hostapd hostapd
 | |
| 
 | |
| hostapd includes IEEE 802.11 access point management (authentication /
 | |
| association), IEEE 802.1X/WPA/WPA2 Authenticator, EAP server, and
 | |
| RADIUS authentication server functionality. It can be build with
 | |
| various configuration option, e.g., a standalone AP management
 | |
| solution or a RADIUS authentication server with support for number of
 | |
| EAP methods.
 | |
| 
 | |
| The design goal for hostapd was to use hardware, driver, and
 | |
| OS independent, portable C code for all WPA functionality. The source
 | |
| code is divided into separate C files as shown on the \ref
 | |
| code_structure "code structure page". All hardware/driver specific
 | |
| functionality is in separate files that implement a \ref
 | |
| driver_wrapper "well-defined driver API". Information about porting
 | |
| to different target boards and operating systems is available on
 | |
| the \ref porting "porting page".
 | |
| 
 | |
| EAPOL (IEEE 802.1X) state machines are implemented as a separate
 | |
| module that interacts with \ref eap_server_module "EAP server implementation".
 | |
| Similarly, RADIUS authentication server is in its own separate module.
 | |
| Both IEEE 802.1X and RADIUS authentication server can use EAP server
 | |
| functionality.
 | |
| 
 | |
| hostapd implements a \ref hostapd_ctrl_iface_page "control interface"
 | |
| that can be used by external programs to control the operations of the
 | |
| hostapdt daemon and to get status information and event notifications.
 | |
| There is a small C library that provides helper functions to facilitate
 | |
| the use of the control interface. This library can also be used with
 | |
| C++.
 | |
| 
 | |
| \image html hostapd.png "hostapd modules"
 | |
| \image latex hostapd.eps "hostapd modules" width=15cm
 | |
| 
 | |
| */
 | 
