Add method in wpa_supplicant to call listAliases.

Bug: 205764502
Test: Manual test - store several aliases
      in the certificate store. Call the new
      method to verify that the expected aliases
      are retrieved when the corresponding
      prefix is passed in.
Change-Id: I3ae57f5cce9a4fecb8145abb0ba7bf6542b1f03f
diff --git a/wpa_supplicant/aidl/certificate_utils.cpp b/wpa_supplicant/aidl/certificate_utils.cpp
index 79fe38b..8750cea 100644
--- a/wpa_supplicant/aidl/certificate_utils.cpp
+++ b/wpa_supplicant/aidl/certificate_utils.cpp
@@ -188,6 +188,21 @@
 	}
 }
 
+std::optional<std::vector<std::string>> listAliases(const std::string& prefix,
+		const std::shared_ptr<INonStandardCertCallback> &non_standard_callback) {
+	if (non_standard_callback == nullptr) {
+		wpa_printf(MSG_ERROR, "Non-standard cert callback is not available");
+		return std::nullopt;
+	}
+	std::vector<std::string> aliases;
+	const auto& status = non_standard_callback->listAliases(prefix, &aliases);
+	if (!status.isOk()) {
+		wpa_printf(MSG_ERROR, "Unable to retrieve aliases");
+		return std::nullopt;
+	}
+	return aliases;
+}
+
 }  // namespace certificate_utils
 }  // namespace supplicant
 }  // namespace wifi
diff --git a/wpa_supplicant/aidl/certificate_utils.h b/wpa_supplicant/aidl/certificate_utils.h
index 09da74b..adbafc8 100644
--- a/wpa_supplicant/aidl/certificate_utils.h
+++ b/wpa_supplicant/aidl/certificate_utils.h
@@ -32,6 +32,8 @@
 namespace certificate_utils {
 	std::optional<std::vector<uint8_t>> getCertificate(const std::string& alias,
 		const std::shared_ptr<INonStandardCertCallback> &non_standard_callback);
+	std::optional<std::vector<std::string>> listAliases(const std::string& prefix,
+		const std::shared_ptr<INonStandardCertCallback> &non_standard_callback);
 }  // namespace certificate_utils
 }  // namespace supplicant
 }  // namespace wifi