I am connecting to a WPA2 Enterprise network with a QCA4020 using PEAP MSCHAPV2 and am able to successfully authenticate. However, after connecting, the device will disconnect after precisely 30 minutes.
I observed the same issue on an Apple iPad, also on the same network. The solution that worked there was installing a root CA cert provided to me by the network administrator.
I attempted to implement a similar fix using the SDK (v3.4) by setting the __QAPI_WLAN_PARAM_GROUP_SECURITY_8021X_CA_CER parameter using the below snippet of code. I wrote the certificate to the flash filesystem at /spinor/cacert successfully before calling this function. I did not change the authentication method, leaving it as QAPI_WLAN_8021X_METHOD_EAP_PEAP_MSCHAPV2_E.
#define CERT_PATH "/spinor/cacert"
/* Snip */
const char * const certificate = CERT_PATH;
status = qapi_WLAN_Set_Param(0,
certificate, strlen(certificate) + 1, FALSE);
Once I do the above, however, the QCA4020 now fails to authenticate. It does begin the authentication process, but fails to authenticate with the RADIUS server and obviously fails to connect to the network.
Am I misunderstanding how to configure the CA certificate? Is there another solution available? I read through the QCLI_Demo code (specifically wifi_cmd_handler.c:4037) and I see that the CA cert is only configured when using EAP TLS. However, this requires another client side certificate, which is not available for the network.
Thanks for the help.