Greetings,
I'm trying to setup a WiFi connection on an enterprise access point (in my case a WPA2-enterprise but it could be any other).
Since I need to have dynamically loaded certificates, I defined eap_ca_cert, eap_client_cert, and eap_client_key to store the data in RAM and I do the following:
struct wifi_enterprise_creds_params creds{
.ca_cert = eap_ca_cert,
.ca_cert_len = strlen(reinterpret_cast<char*>(eap_ca_cert)),
.client_cert = eap_client_cert,
.client_cert_len = strlen(reinterpret_cast<char*>(eap_client_cert)),
.client_key = eap_client_key,
.client_key_len = strlen(reinterpret_cast<char*>(eap_client_key))
};
net_mgmt(NET_REQUEST_WIFI_ENTERPRISE_CREDS, m_netIface, &creds, sizeof(creds));
struct wifi_connect_req_params params{};
params.ssid = reinterpret_cast<const uint8_t *>(m_wiFiStationConfig.ssid.data());
params.ssid_length = m_wiFiStationConfig.ssid.size();
params.security = WIFI_SECURITY_TYPE_EAP_TLS;
static const char* identity = "user@example.org";
params.eap_identity = reinterpret_cast<const uint8_t *>(identity);
params.eap_id_length = strlen(identity);
net_mgmt(NET_REQUEST_WIFI_CONNECT, m_netIface, ¶ms, sizeof(params));
The calls to net_mgmt return with no error but I don't see anything happening. Here are the wpa_supplicant logs:
00017717:<dbg> [networkThread] net_wifi_mgmt: wifi_connect: ssid
45 6d 62 53 57 5f 41 73 75 73 41 50 |EmbSW_As usAP
00017719:<dbg> [networkThread] net_wifi_mgmt: wifi_connect: psk
00017720:<dbg> [networkThread] net_wifi_mgmt: wifi_connect: (networkThread): ch 6 sec 7
00017721:<dbg> [networkThread] wpa_supp: wpa_printf_impl: Calling wpa_cli: remove_network, argc: 2
00017723:<dbg> [networkThread] wpa_supp: wpa_printf_impl: argv[0]: remove_network
00017724:<dbg> [networkThread] wpa_supp: wpa_printf_impl: argv[1]: all
00017725:<dbg> [hostap_handler] wpa_supp: wpa_printf_impl: ml: Control interface command 'REMOVE_NETWORK all'
00017727:<dbg> [hostap_handler] wpa_supp: wpa_printf_impl: CTRL_IFACE: REMOVE_NETWORK all
00017728:<dbg> [hostap_handler] wpa_supp: wpa_printf_impl: ml: Control interface command 'ADD_NETWORK'
00017730:<dbg> [hostap_handler] wpa_supp: wpa_printf_impl: CTRL_IFACE: ADD_NETWORK
00017731:<dbg> [networkThread] wpa_supp: wpa_printf_impl: NET added: 0
00017732:<dbg> [networkThread] wpa_supp: wpa_printf_impl: Calling wpa_cli: set_network, argc: 4
00017733:<dbg> [networkThread] wpa_supp: wpa_printf_impl: argv[0]: set_network
00017734:<dbg> [networkThread] wpa_supp: wpa_printf_impl: argv[1]: 0
00017735:<dbg> [networkThread] wpa_supp: wpa_printf_impl: argv[2]: ssid
00017736:<dbg> [networkThread] wpa_supp: wpa_printf_impl: argv[3]: "EmbSW_AsusAP"
00017737:<dbg> [hostap_handler] wpa_supp: wpa_printf_impl: ml: Control interface command 'SET_NETWORK [REMOVED]'
00017739:<dbg> [hostap_handler] wpa_supp: wpa_printf_impl: CTRL_IFACE: SET_NETWORK id=0 name='ssid'
00017740:<dbg> [hostap_handler] wpa_supp: wpa_printf_impl: CTRL_IFACE: value - hexdump_ascii(len=14): [REMOVED]
00017742:<dbg> [hostap_handler] wpa_supp: wpa_printf_impl: ssid - hexdump_ascii(len=12):
00017743:<dbg> [hostap_handler] wpa_supp: _wpa_hexdump_ascii:
45 6d 62 53 57 5f 41 73 75 73 41 50 |EmbSW_As usAP
00017745:<dbg> [networkThread] wpa_supp: wpa_printf_impl: Calling wpa_cli: set_network, argc: 4
00017746:<dbg> [networkThread] wpa_supp: wpa_printf_impl: argv[0]: set_network
00017747:<dbg> [networkThread] wpa_supp: wpa_printf_impl: argv[1]: 0
00017748:<dbg> [networkThread] wpa_supp: wpa_printf_impl: argv[2]: scan_ssid
00017749:<dbg> [networkThread] wpa_supp: wpa_printf_impl: argv[3]: 1
00017751:<dbg> [hostap_handler] wpa_supp: wpa_printf_impl: ml: Control interface command 'SET_NETWORK [REMOVED]'
00017752:<dbg> [hostap_handler] wpa_supp: wpa_printf_impl: CTRL_IFACE: SET_NETWORK id=0 name='scan_ssid'
00017753:<dbg> [hostap_handler] wpa_supp: wpa_printf_impl: CTRL_IFACE: value - hexdump_ascii(len=1): [REMOVED]
00017755:<dbg> [hostap_handler] wpa_supp: wpa_printf_impl: scan_ssid=1 (0x1)
00017756:<dbg> [networkThread] wpa_supp: wpa_printf_impl: Calling wpa_cli: set_network, argc: 4
00017757:<dbg> [networkThread] wpa_supp: wpa_printf_impl: argv[0]: set_network
00017758:<dbg> [networkThread] wpa_supp: wpa_printf_impl: argv[1]: 0
00017759:<dbg> [networkThread] wpa_supp: wpa_printf_impl: argv[2]: key_mgmt
00017760:<dbg> [networkThread] wpa_supp: wpa_printf_impl: argv[3]: NONE
00017761:<dbg> [hostap_handler] wpa_supp: wpa_printf_impl: ml: Control interface command 'SET_NETWORK [REMOVED]'
00017763:<dbg> [hostap_handler] wpa_supp: wpa_printf_impl: CTRL_IFACE: SET_NETWORK id=0 name='key_mgmt'
00017764:<dbg> [hostap_handler] wpa_supp: wpa_printf_impl: CTRL_IFACE: value - hexdump_ascii(len=4): [REMOVED]
00017766:<dbg> [hostap_handler] wpa_supp: wpa_printf_impl: key_mgmt: 0x4
00017767:<dbg> [networkThread] wpa_supp: wpa_printf_impl: Calling wpa_cli: set_network, argc: 4
00017768:<dbg> [networkThread] wpa_supp: wpa_printf_impl: argv[0]: set_network
00017769:<dbg> [networkThread] wpa_supp: wpa_printf_impl: argv[1]: 0
00017770:<dbg> [networkThread] wpa_supp: wpa_printf_impl: argv[2]: ieee80211w
00017771:<dbg> [networkThread] wpa_supp: wpa_printf_impl: argv[3]: 0
00017772:<dbg> [hostap_handler] wpa_supp: wpa_printf_impl: ml: Control interface command 'SET_NETWORK [REMOVED]'
00017774:<dbg> [hostap_handler] wpa_supp: wpa_printf_impl: CTRL_IFACE: SET_NETWORK id=0 name='ieee80211w'
00017775:<dbg> [hostap_handler] wpa_supp: wpa_printf_impl: CTRL_IFACE: value - hexdump_ascii(len=1): [REMOVED]
00017777:<dbg> [hostap_handler] wpa_supp: wpa_printf_impl: ieee80211w=0 (0x0)
00017778:<dbg> [networkThread] wpa_supp: wpa_printf_impl: Calling wpa_cli: set_network, argc: 4
00017779:<dbg> [networkThread] wpa_supp: wpa_printf_impl: argv[0]: set_network
00017780:<dbg> [networkThread] wpa_supp: wpa_printf_impl: argv[1]: 0
00017781:<dbg> [networkThread] wpa_supp: wpa_printf_impl: argv[2]: proto
00017782:<dbg> [networkThread] wpa_supp: wpa_printf_impl: argv[3]: RSN
00017783:<dbg> [hostap_handler] wpa_supp: wpa_printf_impl: ml: Control interface command 'SET_NETWORK [REMOVED]'
00017785:<dbg> [hostap_handler] wpa_supp: wpa_printf_impl: CTRL_IFACE: SET_NETWORK id=0 name='proto'
00017786:<dbg> [hostap_handler] wpa_supp: wpa_printf_impl: CTRL_IFACE: value - hexdump_ascii(len=3): [REMOVED]
00017787:<dbg> [hostap_handler] wpa_supp: wpa_printf_impl: proto: 0x2
00017789:<dbg> [networkThread] wpa_supp: wpa_printf_impl: Calling wpa_cli: set_network, argc: 4
00017790:<dbg> [networkThread] wpa_supp: wpa_printf_impl: argv[0]: set_network
00017791:<dbg> [networkThread] wpa_supp: wpa_printf_impl: argv[1]: 0
00017792:<dbg> [networkThread] wpa_supp: wpa_printf_impl: argv[2]: key_mgmt
00017793:<dbg> [networkThread] wpa_supp: wpa_printf_impl: argv[3]: WPA-EAP
00017794:<dbg> [hostap_handler] wpa_supp: wpa_printf_impl: ml: Control interface command 'SET_NETWORK [REMOVED]'
00017796:<dbg> [hostap_handler] wpa_supp: wpa_printf_impl: CTRL_IFACE: SET_NETWORK id=0 name='key_mgmt'
00017797:<dbg> [hostap_handler] wpa_supp: wpa_printf_impl: CTRL_IFACE: value - hexdump_ascii(len=7): [REMOVED]
00017798:<dbg> [hostap_handler] wpa_supp: wpa_printf_impl: key_mgmt: 0x1
00017799:<dbg> [networkThread] wpa_supp: wpa_printf_impl: Calling wpa_cli: set, argc: 3
00017801:<dbg> [networkThread] wpa_supp: wpa_printf_impl: argv[0]: set
00017802:<dbg> [networkThread] wpa_supp: wpa_printf_impl: argv[1]: openssl_ciphers
00017803:<dbg> [networkThread] wpa_supp: wpa_printf_impl: argv[2]: "DEFAULT:!EXP:!LOW"
00017804:<dbg> [hostap_handler] wpa_supp: wpa_printf_impl: ml: Control interface command 'SET openssl_ciphers "DEFAULT:!EXP:!LOW"'
00017806:<dbg> [hostap_handler] wpa_supp: wpa_printf_impl: CTRL_IFACE SET 'openssl_ciphers'='"DEFAULT:!EXP:!LOW"'
00017807:<dbg> [hostap_handler] wpa_supp: wpa_printf_impl: openssl_ciphers='"DEFAULT:!EXP:!LOW"'
00017809:<dbg> [networkThread] wpa_supp: wpa_printf_impl: Calling wpa_cli: set_network, argc: 4
00017810:<dbg> [networkThread] wpa_supp: wpa_printf_impl: argv[0]: set_network
00017811:<dbg> [networkThread] wpa_supp: wpa_printf_impl: argv[1]: 0
00017812:<dbg> [networkThread] wpa_supp: wpa_printf_impl: argv[2]: group
00017813:<dbg> [networkThread] wpa_supp: wpa_printf_impl: argv[3]: CCMP
00017814:<dbg> [hostap_handler] wpa_supp: wpa_printf_impl: ml: Control interface command 'SET_NETWORK [REMOVED]'
00017816:<dbg> [hostap_handler] wpa_supp: wpa_printf_impl: CTRL_IFACE: SET_NETWORK id=0 name='group'
00017817:<dbg> [hostap_handler] wpa_supp: wpa_printf_impl: CTRL_IFACE: value - hexdump_ascii(len=4): [REMOVED]
00017818:<dbg> [hostap_handler] wpa_supp: wpa_printf_impl: group: 0x10
00017819:<dbg> [networkThread] wpa_supp: wpa_printf_impl: Calling wpa_cli: set_network, argc: 4
00017821:<dbg> [networkThread] wpa_supp: wpa_printf_impl: argv[0]: set_network
00017822:<dbg> [networkThread] wpa_supp: wpa_printf_impl: argv[1]: 0
00017823:<dbg> [networkThread] wpa_supp: wpa_printf_impl: argv[2]: pairwise
00017824:<dbg> [networkThread] wpa_supp: wpa_printf_impl: argv[3]: CCMP
00017825:<dbg> [hostap_handler] wpa_supp: wpa_printf_impl: ml: Control interface command 'SET_NETWORK [REMOVED]'
00017826:<dbg> [hostap_handler] wpa_supp: wpa_printf_impl: CTRL_IFACE: SET_NETWORK id=0 name='pairwise'
00017828:<dbg> [hostap_handler] wpa_supp: wpa_printf_impl: CTRL_IFACE: value - hexdump_ascii(len=4): [REMOVED]
00017829:<dbg> [hostap_handler] wpa_supp: wpa_printf_impl: pairwise: 0x10
00017830:<dbg> [networkThread] wpa_supp: wpa_printf_impl: Calling wpa_cli: set_network, argc: 4
00017831:<dbg> [networkThread] wpa_supp: wpa_printf_impl: argv[0]: set_network
00017832:<dbg> [networkThread] wpa_supp: wpa_printf_impl: argv[1]: 0
00017833:<dbg> [networkThread] wpa_supp: wpa_printf_impl: argv[2]: group_mgmt
00017834:<dbg> [networkThread] wpa_supp: wpa_printf_impl: argv[3]: AES-128-CMAC
00017836:<dbg> [hostap_handler] wpa_supp: wpa_printf_impl: ml: Control interface command 'SET_NETWORK [REMOVED]'
00017837:<dbg> [hostap_handler] wpa_supp: wpa_printf_impl: CTRL_IFACE: SET_NETWORK id=0 name='group_mgmt'
00017839:<dbg> [hostap_handler] wpa_supp: wpa_printf_impl: CTRL_IFACE: value - hexdump_ascii(len=12): [REMOVED]
00017840:<dbg> [hostap_handler] wpa_supp: wpa_printf_impl: group_mgmt: 0x20
00017841:<dbg> [networkThread] wpa_supp: wpa_printf_impl: Calling wpa_cli: set_network, argc: 4
00017842:<dbg> [networkThread] wpa_supp: wpa_printf_impl: argv[0]: set_network
00017843:<dbg> [networkThread] wpa_supp: wpa_printf_impl: argv[1]: 0
00017844:<dbg> [networkThread] wpa_supp: wpa_printf_impl: argv[2]: proto
00017845:<dbg> [networkThread] wpa_supp: wpa_printf_impl: argv[3]: RSN
00017847:<dbg> [hostap_handler] wpa_supp: wpa_printf_impl: ml: Control interface command 'SET_NETWORK [REMOVED]'
00017848:<dbg> [hostap_handler] wpa_supp: wpa_printf_impl: CTRL_IFACE: SET_NETWORK id=0 name='proto'
00017849:<dbg> [hostap_handler] wpa_supp: wpa_printf_impl: CTRL_IFACE: value - hexdump_ascii(len=3): [REMOVED]
00017851:<dbg> [networkThread] wpa_supp: wpa_printf_impl: Calling wpa_cli: set_network, argc: 4
00017852:<dbg> [networkThread] wpa_supp: wpa_printf_impl: argv[0]: set_network
00017853:<dbg> [networkThread] wpa_supp: wpa_printf_impl: argv[1]: 0
00017854:<dbg> [networkThread] wpa_supp: wpa_printf_impl: argv[2]: eap
00017855:<dbg> [networkThread] wpa_supp: wpa_printf_impl: argv[3]: TLS
00017856:<dbg> [hostap_handler] wpa_supp: wpa_printf_impl: ml: Control interface command 'SET_NETWORK [REMOVED]'
00017858:<dbg> [hostap_handler] wpa_supp: wpa_printf_impl: CTRL_IFACE: SET_NETWORK id=0 name='eap'
00017859:<dbg> [hostap_handler] wpa_supp: wpa_printf_impl: CTRL_IFACE: value - hexdump_ascii(len=3): [REMOVED]
00017860:<dbg> [hostap_handler] wpa_supp: wpa_printf_impl: eap methods - hexdump(len=16): 00 00 00 00 0d 00 00 00 00 00 00 00 00 00 00 00
00017862:<dbg> [networkThread] wpa_supp: wpa_printf_impl: Calling wpa_cli: set_network, argc: 4
00017864:<dbg> [networkThread] wpa_supp: wpa_printf_impl: argv[0]: set_network
00017865:<dbg> [networkThread] wpa_supp: wpa_printf_impl: argv[1]: 0
00017866:<dbg> [networkThread] wpa_supp: wpa_printf_impl: argv[2]: identity
00017867:<dbg> [networkThread] wpa_supp: wpa_printf_impl: argv[3]: "user@example.org"
00017868:<dbg> [hostap_handler] wpa_supp: wpa_printf_impl: ml: Control interface command 'SET_NETWORK [REMOVED]'
00017869:<dbg> [hostap_handler] wpa_supp: wpa_printf_impl: CTRL_IFACE: SET_NETWORK id=0 name='identity'
00017871:<dbg> [hostap_handler] wpa_supp: wpa_printf_impl: CTRL_IFACE: value - hexdump_ascii(len=18): [REMOVED]
00017872:<dbg> [hostap_handler] wpa_supp: wpa_printf_impl: identity - hexdump_ascii(len=16):
00017873:<dbg> [hostap_handler] wpa_supp: _wpa_hexdump_ascii:
75 73 65 72 40 65 78 61 6d 70 6c 65 2e 6f 72 67 |user@exa mple.org
00017876:<dbg> [networkThread] wpa_supp: wpa_printf_impl: Calling wpa_cli: set_network, argc: 4
00017877:<dbg> [networkThread] wpa_supp: wpa_printf_impl: argv[0]: set_network
00017878:<dbg> [networkThread] wpa_supp: wpa_printf_impl: argv[1]: 0
00017879:<dbg> [networkThread] wpa_supp: wpa_printf_impl: argv[2]: anonymous_identity
00017880:<dbg> [networkThread] wpa_supp: wpa_printf_impl: argv[3]: "(null)"
00017881:<dbg> [hostap_handler] wpa_supp: wpa_printf_impl: ml: Control interface command 'SET_NETWORK [REMOVED]'
00017883:<dbg> [hostap_handler] wpa_supp: wpa_printf_impl: CTRL_IFACE: SET_NETWORK id=0 name='anonymous_identity'
00017884:<dbg> [hostap_handler] wpa_supp: wpa_printf_impl: CTRL_IFACE: value - hexdump_ascii(len=8): [REMOVED]
00017886:<dbg> [hostap_handler] wpa_supp: wpa_printf_impl: anonymous_identity - hexdump_ascii(len=6):
00017887:<dbg> [hostap_handler] wpa_supp: _wpa_hexdump_ascii:
28 6e 75 6c 6c 29 |(null)
00017889:<dbg> [networkThread] wpa_supp: wpa_printf_impl: Calling wpa_cli: set_network, argc: 4
00017891:<dbg> [networkThread] wpa_supp: wpa_printf_impl: argv[0]: set_network
00017892:<dbg> [networkThread] wpa_supp: wpa_printf_impl: argv[1]: 0
00017892:<dbg> [networkThread] wpa_supp: wpa_printf_impl: argv[2]: ca_cert
00017893:<dbg> [networkThread] wpa_supp: wpa_printf_impl: argv[3]: "blob://ca_cert"
00017895:<dbg> [hostap_handler] wpa_supp: wpa_printf_impl: ml: Control interface command 'SET_NETWORK [REMOVED]'
00017896:<dbg> [hostap_handler] wpa_supp: wpa_printf_impl: CTRL_IFACE: SET_NETWORK id=0 name='ca_cert'
00017898:<dbg> [hostap_handler] wpa_supp: wpa_printf_impl: CTRL_IFACE: value - hexdump_ascii(len=16): [REMOVED]
00017899:<dbg> [hostap_handler] wpa_supp: wpa_printf_impl: ca_cert - hexdump_ascii(len=14):
00017900:<dbg> [hostap_handler] wpa_supp: _wpa_hexdump_ascii:
62 6c 6f 62 3a 2f 2f 63 61 5f 63 65 72 74 |blob://c a_cert
00017903:<dbg> [networkThread] wpa_supp: wpa_printf_impl: Calling wpa_cli: set_network, argc: 4
00017904:<dbg> [networkThread] wpa_supp: wpa_printf_impl: argv[0]: set_network
00017905:<dbg> [networkThread] wpa_supp: wpa_printf_impl: argv[1]: 0
00017906:<dbg> [networkThread] wpa_supp: wpa_printf_impl: argv[2]: client_cert
00017907:<dbg> [networkThread] wpa_supp: wpa_printf_impl: argv[3]: "blob://client_cert"
00017908:<dbg> [hostap_handler] wpa_supp: wpa_printf_impl: ml: Control interface command 'SET_NETWORK [REMOVED]'
00017910:<dbg> [hostap_handler] wpa_supp: wpa_printf_impl: CTRL_IFACE: SET_NETWORK id=0 name='client_cert'
00017911:<dbg> [hostap_handler] wpa_supp: wpa_printf_impl: CTRL_IFACE: value - hexdump_ascii(len=20): [REMOVED]
00017912:<dbg> [hostap_handler] wpa_supp: wpa_printf_impl: client_cert - hexdump_ascii(len=18):
00017914:<dbg> [hostap_handler] wpa_supp: _wpa_hexdump_ascii:
62 6c 6f 62 3a 2f 2f 63 6c 69 65 6e 74 5f 63 65 |blob://c lient_ce
72 74 |rt
00017917:<dbg> [networkThread] wpa_supp: wpa_printf_impl: Calling wpa_cli: set_network, argc: 4
00017918:<dbg> [networkThread] wpa_supp: wpa_printf_impl: argv[0]: set_network
00017920:<dbg> [networkThread] wpa_supp: wpa_printf_impl: argv[1]: 0
00017920:<dbg> [networkThread] wpa_supp: wpa_printf_impl: argv[2]: private_key
00017921:<dbg> [networkThread] wpa_supp: wpa_printf_impl: argv[3]: "blob://private_key"
00017923:<dbg> [hostap_handler] wpa_supp: wpa_printf_impl: ml: Control interface command 'SET_NETWORK [REMOVED]'
00017924:<dbg> [hostap_handler] wpa_supp: wpa_printf_impl: CTRL_IFACE: SET_NETWORK id=0 name='private_key'
00017926:<dbg> [hostap_handler] wpa_supp: wpa_printf_impl: CTRL_IFACE: value - hexdump_ascii(len=20): [REMOVED]
00017927:<dbg> [hostap_handler] wpa_supp: wpa_printf_impl: private_key - hexdump_ascii(len=18):
00017928:<dbg> [hostap_handler] wpa_supp: _wpa_hexdump_ascii:
62 6c 6f 62 3a 2f 2f 70 72 69 76 61 74 65 5f 6b |blob://p rivate_k
65 79 |ey
00017932:<dbg> [networkThread] wpa_supp: wpa_printf_impl: Calling wpa_cli: set_network, argc: 4
00017933:<dbg> [networkThread] wpa_supp: wpa_printf_impl: argv[0]: set_network
00017934:<dbg> [networkThread] wpa_supp: wpa_printf_impl: argv[1]: 0
00017935:<dbg> [networkThread] wpa_supp: wpa_printf_impl: argv[2]: private_key_passwd
00017936:<dbg> [networkThread] wpa_supp: wpa_printf_impl: argv[3]: "(null)"
00017937:<dbg> [hostap_handler] wpa_supp: wpa_printf_impl: ml: Control interface command 'SET_NETWORK [REMOVED]'
00017939:<dbg> [hostap_handler] wpa_supp: wpa_printf_impl: CTRL_IFACE: SET_NETWORK id=0 name='private_key_passwd'
00017940:<dbg> [hostap_handler] wpa_supp: wpa_printf_impl: CTRL_IFACE: value - hexdump_ascii(len=8): [REMOVED]
00017942:<dbg> [hostap_handler] wpa_supp: wpa_printf_impl: private_key_passwd - hexdump_ascii(len=6): [REMOVED]
Am I missing something? Is that doable at all?
RW612 @zephyr