Skip to content
65 changes: 37 additions & 28 deletions ports/zephyr-cp/common-hal/wifi/Network.c
Original file line number Diff line number Diff line change
Expand Up @@ -34,35 +34,44 @@ mp_obj_t common_hal_wifi_network_get_country(wifi_network_obj_t *self) {
}

mp_obj_t common_hal_wifi_network_get_authmode(wifi_network_obj_t *self) {
// Translate Zephyr's wifi_security_type. An empty list would read as an
// open network to any caller checking for AUTHMODE_OPEN.
uint32_t authmode_mask = 0;
// switch (self->record.authmode) {
// case WIFI_AUTH_OPEN:
// authmode_mask = AUTHMODE_OPEN;
// break;
// case WIFI_AUTH_WEP:
// authmode_mask = AUTHMODE_WEP;
// break;
// case WIFI_AUTH_WPA_PSK:
// authmode_mask = AUTHMODE_WPA | AUTHMODE_PSK;
// break;
// case WIFI_AUTH_WPA2_PSK:
// authmode_mask = AUTHMODE_WPA2 | AUTHMODE_PSK;
// break;
// case WIFI_AUTH_WPA_WPA2_PSK:
// authmode_mask = AUTHMODE_WPA | AUTHMODE_WPA2 | AUTHMODE_PSK;
// break;
// case WIFI_AUTH_WPA2_ENTERPRISE:
// authmode_mask = AUTHMODE_WPA2 | AUTHMODE_ENTERPRISE;
// break;
// case WIFI_AUTH_WPA3_PSK:
// authmode_mask = AUTHMODE_WPA3 | AUTHMODE_PSK;
// break;
// case WIFI_AUTH_WPA2_WPA3_PSK:
// authmode_mask = AUTHMODE_WPA2 | AUTHMODE_WPA3 | AUTHMODE_PSK;
// break;
// default:
// break;
// }
switch (self->scan_result.security) {
case WIFI_SECURITY_TYPE_NONE:
authmode_mask = AUTHMODE_OPEN;
break;
case WIFI_SECURITY_TYPE_WEP:
authmode_mask = AUTHMODE_WEP;
break;
case WIFI_SECURITY_TYPE_WPA_PSK:
authmode_mask = AUTHMODE_WPA | AUTHMODE_PSK;
break;
case WIFI_SECURITY_TYPE_PSK:
case WIFI_SECURITY_TYPE_PSK_SHA256:
authmode_mask = AUTHMODE_WPA2 | AUTHMODE_PSK;
break;
case WIFI_SECURITY_TYPE_SAE: // == WIFI_SECURITY_TYPE_SAE_HNP (alias)
case WIFI_SECURITY_TYPE_SAE_H2E:
case WIFI_SECURITY_TYPE_SAE_AUTO:
case WIFI_SECURITY_TYPE_SAE_EXT_KEY:
case WIFI_SECURITY_TYPE_FT_SAE:
authmode_mask = AUTHMODE_WPA3 | AUTHMODE_PSK;
break;
case WIFI_SECURITY_TYPE_WPA_AUTO_PERSONAL:
authmode_mask = AUTHMODE_WPA | AUTHMODE_WPA2 | AUTHMODE_WPA3 | AUTHMODE_PSK;
break;
case WIFI_SECURITY_TYPE_EAP: // == WIFI_SECURITY_TYPE_EAP_TLS (alias)
case WIFI_SECURITY_TYPE_EAP_PEAP_MSCHAPV2:
case WIFI_SECURITY_TYPE_EAP_PEAP_GTC:
case WIFI_SECURITY_TYPE_EAP_TTLS_MSCHAPV2:
case WIFI_SECURITY_TYPE_EAP_PEAP_TLS:
case WIFI_SECURITY_TYPE_FT_EAP:
authmode_mask = AUTHMODE_WPA2 | AUTHMODE_ENTERPRISE;
break;
default:
break;
}
mp_obj_t authmode_list = mp_obj_new_list(0, NULL);
if (authmode_mask != 0) {
for (uint8_t i = 0; i < 32; i++) {
Expand Down
Loading
Loading