Merge changes from topic "r-ocsp-base"

* changes:
  hidl: add setOcsp and getOcsp methods for OCSP support
  wpa_supplicant: Uprev hidl to 1.3, add support for OCSP
diff --git a/wpa_supplicant/Android.mk b/wpa_supplicant/Android.mk
index 6c12414..8b5c73d 100644
--- a/wpa_supplicant/Android.mk
+++ b/wpa_supplicant/Android.mk
@@ -1755,6 +1755,7 @@
 LOCAL_SHARED_LIBRARIES += android.hardware.wifi.supplicant@1.0
 LOCAL_SHARED_LIBRARIES += android.hardware.wifi.supplicant@1.1
 LOCAL_SHARED_LIBRARIES += android.hardware.wifi.supplicant@1.2
+LOCAL_SHARED_LIBRARIES += android.hardware.wifi.supplicant@1.3
 LOCAL_SHARED_LIBRARIES += libhidlbase libhidltransport libhwbinder libutils libbase
 LOCAL_STATIC_LIBRARIES += libwpa_hidl
 endif
@@ -1805,7 +1806,7 @@
 LOCAL_CPPFLAGS := $(L_CPPFLAGS)
 LOCAL_CFLAGS := $(L_CFLAGS)
 LOCAL_C_INCLUDES := $(INCLUDES)
-HIDL_INTERFACE_VERSION = 1.2
+HIDL_INTERFACE_VERSION = 1.3
 LOCAL_SRC_FILES := \
     hidl/$(HIDL_INTERFACE_VERSION)/hidl.cpp \
     hidl/$(HIDL_INTERFACE_VERSION)/hidl_manager.cpp \
@@ -1819,6 +1820,7 @@
     android.hardware.wifi.supplicant@1.0 \
     android.hardware.wifi.supplicant@1.1 \
     android.hardware.wifi.supplicant@1.2 \
+    android.hardware.wifi.supplicant@1.3 \
     libbase \
     libhidlbase \
     libhidltransport \
diff --git a/wpa_supplicant/hidl/1.2/hidl.cpp b/wpa_supplicant/hidl/1.3/hidl.cpp
similarity index 99%
rename from wpa_supplicant/hidl/1.2/hidl.cpp
rename to wpa_supplicant/hidl/1.3/hidl.cpp
index ea1fa98..748bd61 100644
--- a/wpa_supplicant/hidl/1.2/hidl.cpp
+++ b/wpa_supplicant/hidl/1.3/hidl.cpp
@@ -24,7 +24,7 @@
 using android::hardware::configureRpcThreadpool;
 using android::hardware::handleTransportPoll;
 using android::hardware::setupTransportPolling;
-using android::hardware::wifi::supplicant::V1_2::implementation::HidlManager;
+using android::hardware::wifi::supplicant::V1_3::implementation::HidlManager;
 using namespace android::hardware::wifi::supplicant::V1_2;
 
 static void wpas_hidl_notify_dpp_failure(struct wpa_supplicant *wpa_s, DppFailureCode code);
diff --git a/wpa_supplicant/hidl/1.2/hidl.h b/wpa_supplicant/hidl/1.3/hidl.h
similarity index 100%
rename from wpa_supplicant/hidl/1.2/hidl.h
rename to wpa_supplicant/hidl/1.3/hidl.h
diff --git a/wpa_supplicant/hidl/1.2/hidl_constants.h b/wpa_supplicant/hidl/1.3/hidl_constants.h
similarity index 100%
rename from wpa_supplicant/hidl/1.2/hidl_constants.h
rename to wpa_supplicant/hidl/1.3/hidl_constants.h
diff --git a/wpa_supplicant/hidl/1.2/hidl_i.h b/wpa_supplicant/hidl/1.3/hidl_i.h
similarity index 100%
rename from wpa_supplicant/hidl/1.2/hidl_i.h
rename to wpa_supplicant/hidl/1.3/hidl_i.h
diff --git a/wpa_supplicant/hidl/1.2/hidl_manager.cpp b/wpa_supplicant/hidl/1.3/hidl_manager.cpp
similarity index 99%
rename from wpa_supplicant/hidl/1.2/hidl_manager.cpp
rename to wpa_supplicant/hidl/1.3/hidl_manager.cpp
index b69fe04..c1c1963 100644
--- a/wpa_supplicant/hidl/1.2/hidl_manager.cpp
+++ b/wpa_supplicant/hidl/1.3/hidl_manager.cpp
@@ -429,7 +429,7 @@
 namespace hardware {
 namespace wifi {
 namespace supplicant {
-namespace V1_2 {
+namespace V1_3 {
 namespace implementation {
 
 using namespace android::hardware::wifi::supplicant::V1_2;
@@ -1986,7 +1986,7 @@
 	    ifname, network_id, method, sta_network_callbacks_map_);
 }
 }  // namespace implementation
-}  // namespace V1_2
+}  // namespace V1_3
 }  // namespace supplicant
 }  // namespace wifi
 }  // namespace hardware
diff --git a/wpa_supplicant/hidl/1.2/hidl_manager.h b/wpa_supplicant/hidl/1.3/hidl_manager.h
similarity index 99%
rename from wpa_supplicant/hidl/1.2/hidl_manager.h
rename to wpa_supplicant/hidl/1.3/hidl_manager.h
index 910e2bf..5e44462 100644
--- a/wpa_supplicant/hidl/1.2/hidl_manager.h
+++ b/wpa_supplicant/hidl/1.3/hidl_manager.h
@@ -37,13 +37,14 @@
 namespace hardware {
 namespace wifi {
 namespace supplicant {
-namespace V1_2 {
+namespace V1_3 {
 namespace implementation {
 using namespace android::hardware::wifi::supplicant::V1_2;
 using V1_0::ISupplicantP2pIface;
 using V1_0::ISupplicantStaIfaceCallback;
 using V1_1::ISupplicant;
 using V1_1::ISupplicantStaIface;
+using V1_2::ISupplicantStaNetwork;
 
 /**
  * HidlManager is responsible for managing the lifetime of all
@@ -718,7 +719,7 @@
 	P2P_PROV_DISC_INFO_UNAVAILABLE,
     "P2P status code value mismatch");
 }  // namespace implementation
-}  // namespace V1_2
+}  // namespace V1_3
 }  // namespace supplicant
 }  // namespace wifi
 }  // namespace hardware
diff --git a/wpa_supplicant/hidl/1.2/hidl_return_util.h b/wpa_supplicant/hidl/1.3/hidl_return_util.h
similarity index 98%
rename from wpa_supplicant/hidl/1.2/hidl_return_util.h
rename to wpa_supplicant/hidl/1.3/hidl_return_util.h
index 238646a..28da1d9 100644
--- a/wpa_supplicant/hidl/1.2/hidl_return_util.h
+++ b/wpa_supplicant/hidl/1.3/hidl_return_util.h
@@ -14,7 +14,7 @@
 namespace hardware {
 namespace wifi {
 namespace supplicant {
-namespace V1_2 {
+namespace V1_3 {
 namespace implementation {
 namespace hidl_return_util {
 
@@ -93,7 +93,7 @@
 
 }  // namespace hidl_return_util
 }  // namespace implementation
-}  // namespace V1_2
+}  // namespace V1_3
 }  // namespace supplicant
 }  // namespace wifi
 }  // namespace hardware
diff --git a/wpa_supplicant/hidl/1.2/iface_config_utils.cpp b/wpa_supplicant/hidl/1.3/iface_config_utils.cpp
similarity index 99%
rename from wpa_supplicant/hidl/1.2/iface_config_utils.cpp
rename to wpa_supplicant/hidl/1.3/iface_config_utils.cpp
index 43908e3..31370a6 100644
--- a/wpa_supplicant/hidl/1.2/iface_config_utils.cpp
+++ b/wpa_supplicant/hidl/1.3/iface_config_utils.cpp
@@ -81,7 +81,7 @@
 namespace hardware {
 namespace wifi {
 namespace supplicant {
-namespace V1_2 {
+namespace V1_3 {
 namespace implementation {
 namespace iface_config_utils {
 SupplicantStatus setWpsDeviceName(
@@ -176,7 +176,7 @@
 }
 }  // namespace iface_config_utils
 }  // namespace implementation
-}  // namespace V1_2
+}  // namespace V1_3
 }  // namespace supplicant
 }  // namespace wifi
 }  // namespace hardware
diff --git a/wpa_supplicant/hidl/1.2/iface_config_utils.h b/wpa_supplicant/hidl/1.3/iface_config_utils.h
similarity index 97%
rename from wpa_supplicant/hidl/1.2/iface_config_utils.h
rename to wpa_supplicant/hidl/1.3/iface_config_utils.h
index 9e88b3e..822d7ac 100644
--- a/wpa_supplicant/hidl/1.2/iface_config_utils.h
+++ b/wpa_supplicant/hidl/1.3/iface_config_utils.h
@@ -30,7 +30,7 @@
 namespace hardware {
 namespace wifi {
 namespace supplicant {
-namespace V1_2 {
+namespace V1_3 {
 namespace implementation {
 namespace iface_config_utils {
 SupplicantStatus setWpsDeviceName(
@@ -51,7 +51,7 @@
     struct wpa_supplicant* wpa_s, bool useExternalSim);
 }  // namespace iface_config_utils
 }  // namespace implementation
-}  // namespace V1_2
+}  // namespace V1_3
 }  // namespace supplicant
 }  // namespace wifi
 }  // namespace hardware
diff --git a/wpa_supplicant/hidl/1.2/misc_utils.h b/wpa_supplicant/hidl/1.3/misc_utils.h
similarity index 97%
rename from wpa_supplicant/hidl/1.2/misc_utils.h
rename to wpa_supplicant/hidl/1.3/misc_utils.h
index 1360e6b..5f1c060 100644
--- a/wpa_supplicant/hidl/1.2/misc_utils.h
+++ b/wpa_supplicant/hidl/1.3/misc_utils.h
@@ -25,7 +25,7 @@
 namespace hardware {
 namespace wifi {
 namespace supplicant {
-namespace V1_2 {
+namespace V1_3 {
 namespace implementation {
 namespace misc_utils {
 using wpabuf_unique_ptr = std::unique_ptr<wpabuf, void (*)(wpabuf *)>;
@@ -65,7 +65,7 @@
 
 }  // namespace misc_utils
 }  // namespace implementation
-}  // namespace V1_2
+}  // namespace V1_3
 }  // namespace supplicant
 }  // namespace wifi
 }  // namespace hardware
diff --git a/wpa_supplicant/hidl/1.2/p2p_iface.cpp b/wpa_supplicant/hidl/1.3/p2p_iface.cpp
similarity index 99%
rename from wpa_supplicant/hidl/1.2/p2p_iface.cpp
rename to wpa_supplicant/hidl/1.3/p2p_iface.cpp
index b4433b9..18a2054 100644
--- a/wpa_supplicant/hidl/1.2/p2p_iface.cpp
+++ b/wpa_supplicant/hidl/1.3/p2p_iface.cpp
@@ -383,7 +383,7 @@
 namespace hardware {
 namespace wifi {
 namespace supplicant {
-namespace V1_2 {
+namespace V1_3 {
 namespace implementation {
 using hidl_return_util::validateAndCall;
 
@@ -1822,7 +1822,7 @@
 }
 
 }  // namespace implementation
-}  // namespace V1_2
+}  // namespace V1_3
 }  // namespace supplicant
 }  // namespace wifi
 }  // namespace hardware
diff --git a/wpa_supplicant/hidl/1.2/p2p_iface.h b/wpa_supplicant/hidl/1.3/p2p_iface.h
similarity index 99%
rename from wpa_supplicant/hidl/1.2/p2p_iface.h
rename to wpa_supplicant/hidl/1.3/p2p_iface.h
index bd43a5a..dc4fbb4 100644
--- a/wpa_supplicant/hidl/1.2/p2p_iface.h
+++ b/wpa_supplicant/hidl/1.3/p2p_iface.h
@@ -34,7 +34,7 @@
 namespace hardware {
 namespace wifi {
 namespace supplicant {
-namespace V1_2 {
+namespace V1_3 {
 namespace implementation {
 using namespace android::hardware::wifi::supplicant::V1_0;
 using namespace android::hardware::wifi::supplicant::V1_1;
@@ -318,7 +318,7 @@
 };
 
 }  // namespace implementation
-}  // namespace V1_2
+}  // namespace V1_3
 }  // namespace supplicant
 }  // namespace wifi
 }  // namespace hardware
diff --git a/wpa_supplicant/hidl/1.2/p2p_network.cpp b/wpa_supplicant/hidl/1.3/p2p_network.cpp
similarity index 99%
rename from wpa_supplicant/hidl/1.2/p2p_network.cpp
rename to wpa_supplicant/hidl/1.3/p2p_network.cpp
index a84d0e7..e489a0c 100644
--- a/wpa_supplicant/hidl/1.2/p2p_network.cpp
+++ b/wpa_supplicant/hidl/1.3/p2p_network.cpp
@@ -20,7 +20,7 @@
 namespace hardware {
 namespace wifi {
 namespace supplicant {
-namespace V1_2 {
+namespace V1_3 {
 namespace implementation {
 using hidl_return_util::validateAndCall;
 
@@ -249,7 +249,7 @@
 	    (struct wpa_global *)wpa_global_, ifname_.c_str());
 }
 }  // namespace implementation
-}  // namespace V1_2
+}  // namespace V1_3
 }  // namespace supplicant
 }  // namespace wifi
 }  // namespace hardware
diff --git a/wpa_supplicant/hidl/1.2/p2p_network.h b/wpa_supplicant/hidl/1.3/p2p_network.h
similarity index 98%
rename from wpa_supplicant/hidl/1.2/p2p_network.h
rename to wpa_supplicant/hidl/1.3/p2p_network.h
index e2e8ec2..9e5c8a9 100644
--- a/wpa_supplicant/hidl/1.2/p2p_network.h
+++ b/wpa_supplicant/hidl/1.3/p2p_network.h
@@ -26,7 +26,7 @@
 namespace hardware {
 namespace wifi {
 namespace supplicant {
-namespace V1_2 {
+namespace V1_3 {
 namespace implementation {
 using namespace android::hardware::wifi::supplicant::V1_0;
 using namespace android::hardware::wifi::supplicant::V1_1;
@@ -96,7 +96,7 @@
 };
 
 }  // namespace implementation
-}  // namespace V1_2
+}  // namespace V1_3
 }  // namespace supplicant
 }  // namespace wifi
 }  // namespace hardware
diff --git a/wpa_supplicant/hidl/1.2/sta_iface.cpp b/wpa_supplicant/hidl/1.3/sta_iface.cpp
similarity index 99%
rename from wpa_supplicant/hidl/1.2/sta_iface.cpp
rename to wpa_supplicant/hidl/1.3/sta_iface.cpp
index 1ca440e..80e31c8 100644
--- a/wpa_supplicant/hidl/1.2/sta_iface.cpp
+++ b/wpa_supplicant/hidl/1.3/sta_iface.cpp
@@ -28,7 +28,7 @@
 using android::hardware::wifi::supplicant::V1_0::SupplicantStatus;
 using android::hardware::wifi::supplicant::V1_0::SupplicantStatusCode;
 using android::hardware::wifi::supplicant::V1_2::ISupplicantStaIface;
-using android::hardware::wifi::supplicant::V1_2::implementation::HidlManager;
+using android::hardware::wifi::supplicant::V1_3::implementation::HidlManager;
 
 constexpr uint32_t kMaxAnqpElems = 100;
 constexpr char kGetMacAddress[] = "MACADDR";
@@ -158,7 +158,7 @@
 namespace hardware {
 namespace wifi {
 namespace supplicant {
-namespace V1_2 {
+namespace V1_3 {
 namespace implementation {
 using hidl_return_util::validateAndCall;
 
@@ -1310,7 +1310,7 @@
 	return wpa_supplicant_get_iface(wpa_global_, ifname_.c_str());
 }
 }  // namespace implementation
-}  // namespace V1_2
+}  // namespace V1_3
 }  // namespace supplicant
 }  // namespace wifi
 }  // namespace hardware
diff --git a/wpa_supplicant/hidl/1.2/sta_iface.h b/wpa_supplicant/hidl/1.3/sta_iface.h
similarity index 99%
rename from wpa_supplicant/hidl/1.2/sta_iface.h
rename to wpa_supplicant/hidl/1.3/sta_iface.h
index 5a04ee3..a179956 100644
--- a/wpa_supplicant/hidl/1.2/sta_iface.h
+++ b/wpa_supplicant/hidl/1.3/sta_iface.h
@@ -33,7 +33,7 @@
 namespace hardware {
 namespace wifi {
 namespace supplicant {
-namespace V1_2 {
+namespace V1_3 {
 namespace implementation {
 using namespace android::hardware::wifi::supplicant::V1_2;
 
@@ -275,7 +275,7 @@
 };
 
 }  // namespace implementation
-}  // namespace V1_2
+}  // namespace V1_3
 }  // namespace supplicant
 }  // namespace wifi
 }  // namespace hardware
diff --git a/wpa_supplicant/hidl/1.2/sta_network.cpp b/wpa_supplicant/hidl/1.3/sta_network.cpp
similarity index 98%
rename from wpa_supplicant/hidl/1.2/sta_network.cpp
rename to wpa_supplicant/hidl/1.3/sta_network.cpp
index 9f4e9d2..799981b 100644
--- a/wpa_supplicant/hidl/1.2/sta_network.cpp
+++ b/wpa_supplicant/hidl/1.3/sta_network.cpp
@@ -89,7 +89,7 @@
 namespace hardware {
 namespace wifi {
 namespace supplicant {
-namespace V1_2 {
+namespace V1_3 {
 namespace implementation {
 using hidl_return_util::validateAndCall;
 
@@ -791,6 +791,20 @@
 	    &StaNetwork::setSaePasswordIdInternal, _hidl_cb, sae_password_id);
 }
 
+Return<void> StaNetwork::setOcsp(
+    OcspType ocspType, setOcsp_cb _hidl_cb) {
+	return validateAndCall(
+	    this, SupplicantStatusCode::FAILURE_NETWORK_INVALID,
+	    &StaNetwork::setOcspInternal, _hidl_cb, ocspType);
+}
+
+Return<void> StaNetwork::getOcsp(
+    getOcsp_cb _hidl_cb)
+{
+	return validateAndCall(
+	    this, SupplicantStatusCode::FAILURE_NETWORK_INVALID,
+	    &StaNetwork::getOcspInternal, _hidl_cb);
+}
 std::pair<SupplicantStatus, uint32_t> StaNetwork::getIdInternal()
 {
 	return {{SupplicantStatusCode::SUCCESS, ""}, network_id_};
@@ -1946,6 +1960,24 @@
 		wpa_ssid->group_mgmt_cipher & kAllowedGroupMgmtCipherMask};
 }
 
+SupplicantStatus StaNetwork::setOcspInternal(OcspType ocspType) {
+	struct wpa_ssid *wpa_ssid = retrieveNetworkPtr();
+	if (ocspType < OcspType::NONE || ocspType > OcspType::REQUIRE_ALL_CERTS_STATUS) {
+		return{ SupplicantStatusCode::FAILURE_ARGS_INVALID, "" };
+	}
+	wpa_ssid->eap.ocsp = (int) ocspType;
+	wpa_printf(
+	    MSG_MSGDUMP, "ocsp: %d", wpa_ssid->eap.ocsp);
+	resetInternalStateAfterParamsUpdate();
+	return {SupplicantStatusCode::SUCCESS, ""};
+}
+
+std::pair<SupplicantStatus, OcspType> StaNetwork::getOcspInternal()
+{
+	struct wpa_ssid *wpa_ssid = retrieveNetworkPtr();
+	return {{SupplicantStatusCode::SUCCESS, ""},
+		(OcspType) wpa_ssid->eap.ocsp};
+}
 /**
  * Retrieve the underlying |wpa_ssid| struct pointer for
  * this network.
@@ -2162,7 +2194,7 @@
 	}
 }
 }  // namespace implementation
-}  // namespace V1_2
+}  // namespace V1_3
 }  // namespace supplicant
 }  // namespace wifi
 }  // namespace hardware
diff --git a/wpa_supplicant/hidl/1.2/sta_network.h b/wpa_supplicant/hidl/1.3/sta_network.h
similarity index 97%
rename from wpa_supplicant/hidl/1.2/sta_network.h
rename to wpa_supplicant/hidl/1.3/sta_network.h
index 16d065e..f018a10 100644
--- a/wpa_supplicant/hidl/1.2/sta_network.h
+++ b/wpa_supplicant/hidl/1.3/sta_network.h
@@ -15,7 +15,7 @@
 
 #include <android-base/macros.h>
 
-#include <android/hardware/wifi/supplicant/1.2/ISupplicantStaNetwork.h>
+#include <android/hardware/wifi/supplicant/1.3/ISupplicantStaNetwork.h>
 #include <android/hardware/wifi/supplicant/1.0/ISupplicantStaNetworkCallback.h>
 
 extern "C"
@@ -34,17 +34,18 @@
 namespace hardware {
 namespace wifi {
 namespace supplicant {
-namespace V1_2 {
+namespace V1_3 {
 namespace implementation {
 using namespace android::hardware::wifi::supplicant::V1_0;
 using namespace android::hardware::wifi::supplicant::V1_1;
+using namespace android::hardware::wifi::supplicant::V1_2;
 
 /**
  * Implementation of StaNetwork hidl object. Each unique hidl
  * object is used for control operations on a specific network
  * controlled by wpa_supplicant.
  */
-class StaNetwork : public V1_2::ISupplicantStaNetwork
+class StaNetwork : public V1_3::ISupplicantStaNetwork
 {
 public:
 	StaNetwork(
@@ -225,6 +226,10 @@
 	Return<void> setSaePasswordId(
 	    const hidl_string& sae_password_id,
 	    setSaePasswordId_cb _hidl_cb) override;
+	Return<void> setOcsp(
+	    OcspType ocspType, setOcsp_cb _hidl_cb) override;
+	Return<void> getOcsp(
+	    getOcsp_cb _hidl_cb) override;
 
 private:
 	// Corresponding worker functions for the HIDL methods.
@@ -341,6 +346,8 @@
 	    const std::string& sae_password_id);
 	SupplicantStatus setGroupMgmtCipherInternal(uint32_t group_mgmt_cipher_mask);
 	std::pair<SupplicantStatus, uint32_t> getGroupMgmtCipherInternal();
+	SupplicantStatus setOcspInternal(OcspType ocspType);
+	std::pair<SupplicantStatus, OcspType> getOcspInternal();
 
 	struct wpa_ssid* retrieveNetworkPtr();
 	struct wpa_supplicant* retrieveIfacePtr();
@@ -379,7 +386,7 @@
 };
 
 }  // namespace implementation
-}  // namespace V1_2
+}  // namespace V1_3
 }  // namespace supplicant
 }  // namespace wifi
 }  // namespace hardware
diff --git a/wpa_supplicant/hidl/1.2/supplicant.cpp b/wpa_supplicant/hidl/1.3/supplicant.cpp
similarity index 99%
rename from wpa_supplicant/hidl/1.2/supplicant.cpp
rename to wpa_supplicant/hidl/1.3/supplicant.cpp
index 9342ace..336c34e 100644
--- a/wpa_supplicant/hidl/1.2/supplicant.cpp
+++ b/wpa_supplicant/hidl/1.3/supplicant.cpp
@@ -157,7 +157,7 @@
 namespace hardware {
 namespace wifi {
 namespace supplicant {
-namespace V1_2 {
+namespace V1_3 {
 namespace implementation {
 using hidl_return_util::validateAndCall;
 
@@ -417,7 +417,7 @@
 	return SupplicantStatus{SupplicantStatusCode::SUCCESS, ""};
 }
 }  // namespace implementation
-}  // namespace V1_2
+}  // namespace V1_3
 }  // namespace supplicant
 }  // namespace wifi
 }  // namespace hardware
diff --git a/wpa_supplicant/hidl/1.2/supplicant.h b/wpa_supplicant/hidl/1.3/supplicant.h
similarity index 98%
rename from wpa_supplicant/hidl/1.2/supplicant.h
rename to wpa_supplicant/hidl/1.3/supplicant.h
index 8985854..1341157 100644
--- a/wpa_supplicant/hidl/1.2/supplicant.h
+++ b/wpa_supplicant/hidl/1.3/supplicant.h
@@ -29,7 +29,7 @@
 namespace hardware {
 namespace wifi {
 namespace supplicant {
-namespace V1_2 {
+namespace V1_3 {
 namespace implementation {
 using namespace android::hardware::wifi::supplicant::V1_0;
 
@@ -92,7 +92,7 @@
 };
 
 }  // namespace implementation
-}  // namespace V1_2
+}  // namespace V1_3
 }  // namespace supplicant
 }  // namespace wifi
 }  // namespace hardware