我需要有一些使用 wpa_supplicant 代码经验的人的帮助。
我的理解是,wpa_supplicant 为请求者连接到 AP(如果你是什么)做了所有的事情。因此步骤如下:
- 扫描
- 获取扫描结果
- 授权
- 协会
- 4手摇
- 数据交换
据我了解,前 4 个步骤仅由 wpa_supplicant 管理。也就是说,wpa_supplicant 只是调用底层驱动程序来执行这些步骤,并且在主事件循环接收到 EVENT_ASSOC 消息之后。它开始 4 次握手。
就我而言,前两个步骤可以在驱动程序中执行,即 wpa_supplicant 发送扫描请求,驱动程序执行扫描并提供扫描结果。
我的问题是,wpa_supplicant 不能生成必要的数据包并使用例如第 2 层(rawsocket)向 AP 发送身份验证请求是否正确?然后是一个关联请求?...是否应该简单地提供这些作为驱动程序层的句柄?
从 wpa_supplicant.c 中的代码可以看出(void wpa_supplicant_associate(struct wpa_supplicant *wpa_s,struct wpa_bss *bss,struct wpa_ssid *ssid))
该函数调用指向所选驱动程序的函数指针,例如。“.associate = wpa_driver_nl80211_associate”,然后驱动程序将其发送到 udnerlaying nl80211 驱动程序代码?....所以 wpa_supplicant 不能自己生成这些数据包?
我希望这有任何意义,如果没有,请询问:)