Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a7a059eb authored by Etan Cohen's avatar Etan Cohen Committed by Steven Moreland
Browse files

[AWARE] Fix validity check on PMK + export PASSPHRASE lengths

Bug: 62376042
Test: unit tests + integrated (sl4a) tests
Change-Id: I4c0e19a21a268fe7f2d38e82f3743ac5a8e2c6cb
parent bd513e06
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -186,3 +186,7 @@ d781c8d7e7b3fe5cca8cf6e1d8806e770982ae5358c7816ed51b0f0ec272e70d android.hardwar
b12ef0bdd8a4d247a8a6e960b227ed32383f2b0241f55d67fcea6eff6a6737fa android.hardware.wifi.supplicant@1.0::ISupplicantStaNetwork
d8f0877ae1d321c1d884c7631dfe36cab0ec8a4b2863d4b687f85d3549a63bcc android.hardware.wifi.supplicant@1.0::ISupplicantStaNetworkCallback
fe3c3c2f572b72f15f8594c538b0577bd5c28722c31879cfe6231330cddb6747 android.hardware.wifi.supplicant@1.0::types

# ABI preserving changes to HALs released in Android O

28e929b453df3d9f5060af2764e6cdb123ddb893e3e86923c877f6ff7e5f02c9 android.hardware.wifi@1.0::types
+46 −0
Original line number Diff line number Diff line
@@ -3760,5 +3760,51 @@ LOCAL_GENERATED_SOURCES += $(GEN)
include $(BUILD_STATIC_JAVA_LIBRARY)


################################################################################

include $(CLEAR_VARS)
LOCAL_MODULE := android.hardware.wifi-V1.0-java-constants
LOCAL_MODULE_CLASS := JAVA_LIBRARIES

intermediates := $(call local-generated-sources-dir, COMMON)

HIDL := $(HOST_OUT_EXECUTABLES)/hidl-gen$(HOST_EXECUTABLE_SUFFIX)
#
GEN := $(intermediates)/android/hardware/wifi/V1_0/Constants.java
$(GEN): $(HIDL)
$(GEN): $(LOCAL_PATH)/types.hal
$(GEN): $(LOCAL_PATH)/IWifi.hal
$(GEN): $(LOCAL_PATH)/IWifiApIface.hal
$(GEN): $(LOCAL_PATH)/IWifiChip.hal
$(GEN): $(LOCAL_PATH)/IWifiChipEventCallback.hal
$(GEN): $(LOCAL_PATH)/IWifiEventCallback.hal
$(GEN): $(LOCAL_PATH)/IWifiIface.hal
$(GEN): $(LOCAL_PATH)/IWifiNanIface.hal
$(GEN): $(LOCAL_PATH)/IWifiNanIfaceEventCallback.hal
$(GEN): $(LOCAL_PATH)/IWifiP2pIface.hal
$(GEN): $(LOCAL_PATH)/IWifiRttController.hal
$(GEN): $(LOCAL_PATH)/IWifiRttControllerEventCallback.hal
$(GEN): $(LOCAL_PATH)/IWifiStaIface.hal
$(GEN): $(LOCAL_PATH)/IWifiStaIfaceEventCallback.hal

$(GEN): PRIVATE_HIDL := $(HIDL)
$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
$(GEN): PRIVATE_CUSTOM_TOOL = \
        $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
        -Ljava-constants \
        -randroid.hardware:hardware/interfaces \
        -randroid.hidl:system/libhidl/transport \
        android.hardware.wifi@1.0

$(GEN):
	$(transform-generated-source)
LOCAL_GENERATED_SOURCES += $(GEN)
# Avoid dependency cycle of framework.jar -> this-library -> framework.jar
LOCAL_NO_STANDARD_LIBRARIES := true
LOCAL_JAVA_LIBRARIES := core-oj

include $(BUILD_STATIC_JAVA_LIBRARY)



include $(call all-makefiles-under,$(LOCAL_PATH))
+8 −8
Original line number Diff line number Diff line
@@ -1106,8 +1106,8 @@ bool convertHidlNanPublishRequestToLegacy(
    legacy_request->key_info.key_type = legacy_hal::NAN_SECURITY_KEY_INPUT_PMK;
    legacy_request->key_info.body.pmk_info.pmk_len =
        hidl_request.baseConfigs.securityConfig.pmk.size();
    if (legacy_request->key_info.body.pmk_info.pmk_len > NAN_PMK_INFO_LEN) {
      LOG(ERROR) << "convertHidlNanPublishRequestToLegacy: pmk_len too large";
    if (legacy_request->key_info.body.pmk_info.pmk_len != NAN_PMK_INFO_LEN) {
      LOG(ERROR) << "convertHidlNanPublishRequestToLegacy: invalid pmk_len";
      return false;
    }
    memcpy(legacy_request->key_info.body.pmk_info.pmk,
@@ -1223,8 +1223,8 @@ bool convertHidlNanSubscribeRequestToLegacy(
    legacy_request->key_info.key_type = legacy_hal::NAN_SECURITY_KEY_INPUT_PMK;
    legacy_request->key_info.body.pmk_info.pmk_len =
        hidl_request.baseConfigs.securityConfig.pmk.size();
    if (legacy_request->key_info.body.pmk_info.pmk_len > NAN_PMK_INFO_LEN) {
      LOG(ERROR) << "convertHidlNanSubscribeRequestToLegacy: pmk_len too large";
    if (legacy_request->key_info.body.pmk_info.pmk_len != NAN_PMK_INFO_LEN) {
      LOG(ERROR) << "convertHidlNanSubscribeRequestToLegacy: invalid pmk_len";
      return false;
    }
    memcpy(legacy_request->key_info.body.pmk_info.pmk,
@@ -1447,8 +1447,8 @@ bool convertHidlNanDataPathInitiatorRequestToLegacy(
  if (hidl_request.securityConfig.securityType == NanDataPathSecurityType::PMK) {
    legacy_request->key_info.key_type = legacy_hal::NAN_SECURITY_KEY_INPUT_PMK;
    legacy_request->key_info.body.pmk_info.pmk_len = hidl_request.securityConfig.pmk.size();
    if (legacy_request->key_info.body.pmk_info.pmk_len > NAN_PMK_INFO_LEN) {
      LOG(ERROR) << "convertHidlNanDataPathInitiatorRequestToLegacy: pmk_len too large";
    if (legacy_request->key_info.body.pmk_info.pmk_len != NAN_PMK_INFO_LEN) {
      LOG(ERROR) << "convertHidlNanDataPathInitiatorRequestToLegacy: invalid pmk_len";
      return false;
    }
    memcpy(legacy_request->key_info.body.pmk_info.pmk,
@@ -1511,8 +1511,8 @@ bool convertHidlNanDataPathIndicationResponseToLegacy(
  if (hidl_request.securityConfig.securityType == NanDataPathSecurityType::PMK) {
    legacy_request->key_info.key_type = legacy_hal::NAN_SECURITY_KEY_INPUT_PMK;
    legacy_request->key_info.body.pmk_info.pmk_len = hidl_request.securityConfig.pmk.size();
    if (legacy_request->key_info.body.pmk_info.pmk_len > NAN_PMK_INFO_LEN) {
      LOG(ERROR) << "convertHidlNanDataPathIndicationResponseToLegacy: pmk_len too large";
    if (legacy_request->key_info.body.pmk_info.pmk_len != NAN_PMK_INFO_LEN) {
      LOG(ERROR) << "convertHidlNanDataPathIndicationResponseToLegacy: invalid pmk_len";
      return false;
    }
    memcpy(legacy_request->key_info.body.pmk_info.pmk,
+1 −0
Original line number Diff line number Diff line
@@ -588,6 +588,7 @@ enum StaRoamingState : uint8_t {
/**
 * Size limits for parameters used in the NAN interface.
 */
@export
enum NanParamSizeLimits : uint32_t {
  /** Minimum length of Passphrase argument for data-path configuration */
  MIN_PASSPHRASE_LENGTH = 8,