0

wpa_supplicant コードで遊んだ経験のある人の助けが必要です。

私が理解しているのは、サプリカントが AP に接続するために wpa_supplicant がすべてを投与するということです (それが何なのか)。したがって、手順は次のとおりです。

  1. スキャン
  2. スキャン結果を取得する
  3. 認証
  4. アソック
  5. 4ハンドシェイク
  6. データ交換

私がこれを理解しているように、最初の 4 つのステップは wpa_supplicant によってのみ管理されます。つまり、wpa_supplicant は、メイン イベント ループが EVENT_ASSOC メッセージを受信した後に、これらの手順を実行するために下層のドライバーを呼び出すだけです。4 ハンドシェイクを開始します。

私の場合、最初の 2 つのステップがドライバーで実行されても問題ありません。つまり、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 は、これらのパケットを自分で生成できませんか?

これが意味をなすことを願っています。そうでない場合は、お尋ねください:)

4

1 に答える 1