Add callback path from wpa_supplicant core to
AidlManager::getCertificate.
Order of calls is:
1. eapol_sm_get_certificate (eapol_supp_sm.c)
2. wpa_supplicant_get_certificate_cb (wpas_glue.c)
3. wpas_get_certificate (notify.c)
4. wpas_aidl_get_certificate (aidl.cpp)
5. getCertificate (aidl_manager.cpp)
Bug: 205764502
Test: Manual test - store a key-value pair to
legacy Keystore. Check that we can retrieve
the value in supplicant using the new callbacks.
Change-Id: Ibe1fc5a2c50b818101c194bf739632d4c2a302a4
diff --git a/wpa_supplicant/wpas_glue.c b/wpa_supplicant/wpas_glue.c
index a733ae3..28faa94 100644
--- a/wpa_supplicant/wpas_glue.c
+++ b/wpa_supplicant/wpas_glue.c
@@ -1203,6 +1203,12 @@
wpa_sm_pmf_enabled(wpa_s->wpa);
}
+static ssize_t wpa_supplicant_get_certificate_cb(
+ const char* alias, uint8_t** value)
+{
+ return wpas_get_certificate(alias, value);
+}
+
#endif /* IEEE8021X_EAPOL */
@@ -1252,6 +1258,7 @@
ctx->set_anon_id = wpa_supplicant_set_anon_id;
ctx->eap_method_selected_cb = wpa_supplicant_eap_method_selected_cb;
ctx->open_ssl_failure_cb = wpa_supplicant_open_ssl_failure_cb;
+ ctx->get_certificate_cb = wpa_supplicant_get_certificate_cb;
ctx->encryption_required = wpas_encryption_required;
ctx->cb_ctx = wpa_s;
wpa_s->eapol = eapol_sm_init(ctx);