之后的文章基本都是wpa_supplicant源码分析的介绍, wpa_supplicant 一个庞大的开源项目, 最新版本的为2016-10-V2.6。据目前来开,WiFi相关应用层的操作基本都是wpa_supplicant 的封装,包括Android 。初步统计一下,wpa_supplicant 源文件个数 552个, 20万行代码。 分析起来工作量巨大,这条路非常难走,请读者做好准备。
wpa_supplicant 的源码目录介绍
├── ap // hostapd 相关功能 ├── common // 通用函数 ├── crypto // 各种加密功能 ├── drivers // 对接底层驱动,包括 wext 和nl80211 ├── eap_common // eap 相关 ├── eapol_auth ├── eapol_supp ├── eap_peer ├── eap_server ├── fst // fst 模块 ├── l2_packet // 链路层的访问封装 ├── p2p // WiFi P2P协议, ├── pae // ieeee802 协议 ├── radius // RADIUS:Remote Authentication Dial In User Service 消息处理 ├── rsn_supp // RSN协议, Robust Secure Network,强健安全网络),即通常所说的WPA2安全模式,是WPA 的第二个版本 ├── tls // tls 协议 ├── utils // 包括 RFC1341编解码, 通用的辅助函数, 双链表, UUID, debug, epool └── wps // wps 功能的实现
主要文件详解
wpa_supplicant 使用通用的帮助函数,其中一些与hostapd共享,文件如下:
wpa_supplicant有一个控制界面可以用来获取状态信息和管理来自外部程序的操作.一个命令行界面的例子(wpa_cli)和GUI(wpa_gui)的接口包含在wpa_supplicant分发中