Map extension AKMs in AIDL to main AKM am: 1de410d064
Original change: https://googleplex-android-review.googlesource.com/c/platform/external/wpa_supplicant_8/+/23639894 Change-Id: I04e605d8a5d899336bc6dd335bc344ffd55c69f0 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -646,6 +646,59 @@ int AidlManager::unregisterNetwork(
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Some of the undefined AKMs in AIDL (Mostly extension AKMs like FT AKMs)
|
||||||
|
// are mapped to the main AKM. This is for the framework to map the AKM to
|
||||||
|
// correct security type.
|
||||||
|
KeyMgmtMask convertSupplicantSelectedKeyMgmtForConnectionToAidl(int key_mgmt)
|
||||||
|
{
|
||||||
|
switch (key_mgmt) {
|
||||||
|
case WPA_KEY_MGMT_IEEE8021X:
|
||||||
|
return KeyMgmtMask::WPA_EAP;
|
||||||
|
case WPA_KEY_MGMT_PSK:
|
||||||
|
return KeyMgmtMask::WPA_PSK;
|
||||||
|
case WPA_KEY_MGMT_NONE:
|
||||||
|
return KeyMgmtMask::NONE;
|
||||||
|
case WPA_KEY_MGMT_IEEE8021X_NO_WPA:
|
||||||
|
return KeyMgmtMask::IEEE8021X;
|
||||||
|
case WPA_KEY_MGMT_FT_IEEE8021X:
|
||||||
|
return KeyMgmtMask::FT_EAP;
|
||||||
|
case WPA_KEY_MGMT_FT_PSK:
|
||||||
|
return KeyMgmtMask::FT_PSK;
|
||||||
|
case WPA_KEY_MGMT_IEEE8021X_SHA256:
|
||||||
|
return KeyMgmtMask::WPA_EAP_SHA256;
|
||||||
|
case WPA_KEY_MGMT_PSK_SHA256:
|
||||||
|
return KeyMgmtMask::WPA_PSK_SHA256;
|
||||||
|
case WPA_KEY_MGMT_SAE:
|
||||||
|
case WPA_KEY_MGMT_FT_SAE:
|
||||||
|
case WPA_KEY_MGMT_SAE_EXT_KEY:
|
||||||
|
case WPA_KEY_MGMT_FT_SAE_EXT_KEY:
|
||||||
|
return KeyMgmtMask::SAE;
|
||||||
|
case WPA_KEY_MGMT_WAPI_PSK:
|
||||||
|
return KeyMgmtMask::WAPI_PSK;
|
||||||
|
case WPA_KEY_MGMT_WAPI_CERT:
|
||||||
|
return KeyMgmtMask::WAPI_CERT;
|
||||||
|
case WPA_KEY_MGMT_OSEN:
|
||||||
|
return KeyMgmtMask::OSEN;
|
||||||
|
case WPA_KEY_MGMT_IEEE8021X_SUITE_B_192:
|
||||||
|
case WPA_KEY_MGMT_FT_IEEE8021X_SHA384:
|
||||||
|
return KeyMgmtMask::SUITE_B_192;
|
||||||
|
case WPA_KEY_MGMT_FILS_SHA256:
|
||||||
|
case WPA_KEY_MGMT_FT_FILS_SHA256:
|
||||||
|
return KeyMgmtMask::FILS_SHA256;
|
||||||
|
case WPA_KEY_MGMT_FILS_SHA384:
|
||||||
|
case WPA_KEY_MGMT_FT_FILS_SHA384:
|
||||||
|
return KeyMgmtMask::FILS_SHA384;
|
||||||
|
case WPA_KEY_MGMT_OWE:
|
||||||
|
return KeyMgmtMask::OWE;
|
||||||
|
case WPA_KEY_MGMT_DPP:
|
||||||
|
return KeyMgmtMask::DPP;
|
||||||
|
default:
|
||||||
|
wpa_printf(MSG_INFO, "Unable to convert supplicant key_mgmt 0x%x to AIDL",
|
||||||
|
key_mgmt);
|
||||||
|
return (KeyMgmtMask) key_mgmt;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Notify all listeners about any state changes on a particular interface.
|
* Notify all listeners about any state changes on a particular interface.
|
||||||
*
|
*
|
||||||
@@ -690,10 +743,17 @@ int AidlManager::notifyStateChange(struct wpa_supplicant *wpa_s)
|
|||||||
(wpa_auth_alg_fils(wpa_s->auth_alg) &&
|
(wpa_auth_alg_fils(wpa_s->auth_alg) &&
|
||||||
!dl_list_empty(&wpa_s->fils_hlp_req) &&
|
!dl_list_empty(&wpa_s->fils_hlp_req) &&
|
||||||
(wpa_s->wpa_state == WPA_COMPLETED)) ? true : false;
|
(wpa_s->wpa_state == WPA_COMPLETED)) ? true : false;
|
||||||
aidl_state_change_data.keyMgmtMask = (KeyMgmtMask) wpa_s->key_mgmt;
|
if (wpa_s->wpa_state >= WPA_ASSOCIATED) {
|
||||||
// wpa_supplicant sets the frequency on receiving the EVENT_ASSOC.
|
// wpa_supplicant sets the frequency on receiving the EVENT_ASSOC.
|
||||||
aidl_state_change_data.frequencyMhz =
|
aidl_state_change_data.frequencyMhz = wpa_s->assoc_freq;
|
||||||
wpa_s->wpa_state >= WPA_ASSOCIATED ? wpa_s->assoc_freq : 0;
|
// The key_mgmt is selected prior to sending the connect command
|
||||||
|
// to driver. But in case of CROSS-AKM Connection/Roaming, the
|
||||||
|
// key_mgmt is updated with the one from association IE. So the
|
||||||
|
// selected key_mgmt is accurate only after moving to
|
||||||
|
// associated state.
|
||||||
|
aidl_state_change_data.keyMgmtMask =
|
||||||
|
convertSupplicantSelectedKeyMgmtForConnectionToAidl(wpa_s->key_mgmt);
|
||||||
|
}
|
||||||
|
|
||||||
// Invoke the |onStateChanged| method on all registered callbacks.
|
// Invoke the |onStateChanged| method on all registered callbacks.
|
||||||
std::function<
|
std::function<
|
||||||
|
|||||||
Reference in New Issue
Block a user