(八十二)學習wpa_supplicant-devel——chapter1

前言:對應wpa_supplicant-devel 中Developers’ documentation for wpa_supplicant and hostapd,主要內容就是wpa_supplicant和hostapd的簡介

 

1.wpa_supplicant-devel簡介

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 mod-
ified, 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 <[email protected]> for more information. Con-
tributions 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 develop-
ers’ documentation is also available as a PDF file from http://w1.fi/wpa_supplicant/wpa_-
supplicant-devel.pdf .

簡單來說wpa_supplicant-devel是一個wpa_supplicant和hostapd的開發文檔,涉及以下幾部分內容

  • wpa_supplicant和hostapd的實現方式
  • wpa_supplicant和hostapd的修改方式
  • 驅動如何支持
  • 源碼如何移植到其他的操作系統

 

2.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 code structure
page. All hardware/driver specific functionality is in separate files that implement a well-defined driver
API. Information about porting to different target boards and operating systems is available on the porting
page.
EAPOL (IEEE 802.1X) state machines are implemented as a separate module that interacts with EAP
peer implementation. In addition to programs aimed at normal production use, wpa_supplicant source tree
includes number of 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 control interface that can be used by external programs to control the opera-
tions 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++.

以上第一部分主要將wpa_supplicant是什麼,第二部分講它是做什麼的,第三部分是補充說明。

1)wpa_supplicant是一個支持WPA和WPA2的用於Linux、BSD和Windows的WPA Supplicant.它實現了使用WPA認證器的祕鑰協商,可以控制wlan驅動的漫遊和IEEE 802.11 授權和連接。

2)wpa_supplicant設計目的是可以使用適用於所有WPA硬件驅動和OS獨立的可移植的C代碼。源碼都被分割成單獨的C文件,所有的硬件、驅動都被寫入到單獨的文件中,這些文件都實現了定義良好的驅動API。

 

3.hostapd簡介

hostapd includes IEEE 802.11 access point management (authentication / association), IEEE 802.1X/W-
PA/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 code structure page.
All hardware/driver specific functionality is in separate files that implement a well-defined driver API.
Information about porting to different target boards and operating systems is available on the porting page.
EAPOL (IEEE 802.1X) state machines are implemented as a separate module that interacts with 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 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++.

hostapd包含了IEEE 802.11接入點管理、IEEE 802.1X/WPA/WPA2 授權、EAP服務器 和 RADIUS認證服務器功能。它可以使用多種配置編譯,比如一個單獨的AP 管理解決方案或者一個RADIUS支持許多EAP方法的授權服務器。

hostapd實現了一個可以用額外的可以控制hostapdt守護進程和獲取狀態信息事件通知的控制接口,並且有一個小的C語言庫提供有用的功能來加強控制接口的使用。這個庫也可以使用C++進行調用。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章