Enter WPA_4WAY_HANDSHAKE state change
On devices where the EAPOL 4 way H/S is offloaded
to driver, after association is completed,
supplicant sets the WPA_ASSOCIATED state change
and waits for the port authorization event from driver.
It never sets the WPA_4WAY_HANDSHAKE state. This makes
the upper layer(Android framework) and lower layer(driver/supplicant)
out of sync in state. So the last received supplicant state
change will be WPA_ASSOCIATED. Framework is not aware of 4 way
H/S offload feature. And Framework detects the connection
failure due to wrong password on checking the last state
and connection failure reasons. Since the last received state
is WPA_ASSOCIATED, framework fails to detect the wrong password error.
To fix the issue, once supplicant receives the association completion,
set the state to WPA_4WAY_HANDSHAKE. So the state change indications to
framework during the connection will be WPA_ASSOCIATED
-> WPA_4WAY_HANDSHAKE -> WPA_COMPLETED.
Bug: 278490035
Bug: 283160713
Test: Tried to connect with wrong password - A wrong
password notification was seen in the UI.
Test: connect/Disconnect to WPA AP multiple times.
Change-Id: I5efb00d21afa6ef3bc23ac1bf027d87732f8c3df
1 file changed