summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Nate Jiang <qiangjiang@google.com> 2024-07-17 23:56:30 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2024-07-17 23:56:30 +0000
commit1e86fa60fc4f89fb873089682582708fa06d476a (patch)
treeac1d6b80244a0016f5d6571370dcfeac5aa4559a
parentf8e5ab2cfbff7453b5e1a81b36e571fd7a45391f (diff)
parentc8a8e414dfe935aec86b004d124687a8020e7daf (diff)
Merge "Fix cipher suite type match issue" into main
-rw-r--r--service/java/com/android/server/wifi/hal/WifiNanIfaceAidlImpl.java20
-rw-r--r--service/tests/wifitests/src/com/android/server/wifi/hal/WifiNanIfaceAidlImplTest.java23
2 files changed, 32 insertions, 11 deletions
diff --git a/service/java/com/android/server/wifi/hal/WifiNanIfaceAidlImpl.java b/service/java/com/android/server/wifi/hal/WifiNanIfaceAidlImpl.java
index 2b5a7da08a..4df54809b8 100644
--- a/service/java/com/android/server/wifi/hal/WifiNanIfaceAidlImpl.java
+++ b/service/java/com/android/server/wifi/hal/WifiNanIfaceAidlImpl.java
@@ -18,6 +18,8 @@ package com.android.server.wifi.hal;
import static android.net.wifi.aware.Characteristics.WIFI_AWARE_CIPHER_SUITE_NCS_PK_128;
import static android.net.wifi.aware.Characteristics.WIFI_AWARE_CIPHER_SUITE_NCS_PK_256;
+import static android.net.wifi.aware.Characteristics.WIFI_AWARE_CIPHER_SUITE_NCS_PK_PASN_128;
+import static android.net.wifi.aware.Characteristics.WIFI_AWARE_CIPHER_SUITE_NCS_PK_PASN_256;
import static android.net.wifi.aware.Characteristics.WIFI_AWARE_CIPHER_SUITE_NCS_SK_128;
import static android.net.wifi.aware.Characteristics.WIFI_AWARE_CIPHER_SUITE_NCS_SK_256;
@@ -455,9 +457,9 @@ public class WifiNanIfaceAidlImpl implements IWifiNanIface {
byte[] pairingIdentityKey, boolean enablePairingCache, int requestType, byte[] pmk,
String password, int akm, int cipherSuite) {
String methodStr = "respondToPairingRequest";
- NanRespondToPairingIndicationRequest request = createNanPairingResponse(pairingId, accept,
- pairingIdentityKey, enablePairingCache, requestType, pmk, password, akm,
- cipherSuite);
+ NanRespondToPairingIndicationRequest request = createRespondToPairingIndicationRequest(
+ pairingId, accept, pairingIdentityKey, enablePairingCache, requestType, pmk,
+ password, akm, cipherSuite);
synchronized (mLock) {
try {
if (!checkIfaceAndLogFailure(methodStr)) return false;
@@ -1032,7 +1034,7 @@ public class WifiNanIfaceAidlImpl implements IWifiNanIface {
: NanPairingRequestType.NAN_PAIRING_VERIFICATION;
request.securityConfig = new NanPairingSecurityConfig();
request.securityConfig.pmk = new byte[32];
- request.securityConfig.cipherType = cipherSuite;
+ request.securityConfig.cipherType = getHalCipherSuiteType(cipherSuite);
request.securityConfig.passphrase = new byte[0];
if (pmk != null && pmk.length != 0) {
request.securityConfig.securityType = NanPairingSecurityType.PMK;
@@ -1050,7 +1052,7 @@ public class WifiNanIfaceAidlImpl implements IWifiNanIface {
return request;
}
- private static NanRespondToPairingIndicationRequest createNanPairingResponse(
+ private static NanRespondToPairingIndicationRequest createRespondToPairingIndicationRequest(
int pairingInstanceId, boolean accept, byte[] pairingIdentityKey,
boolean enablePairingCache, int requestType, byte[] pmk, String password, int akm,
int cipherSuite) {
@@ -1065,7 +1067,7 @@ public class WifiNanIfaceAidlImpl implements IWifiNanIface {
request.securityConfig = new NanPairingSecurityConfig();
request.securityConfig.pmk = new byte[32];
request.securityConfig.passphrase = new byte[0];
- request.securityConfig.cipherType = cipherSuite;
+ request.securityConfig.cipherType = getHalCipherSuiteType(cipherSuite);
if (pmk != null && pmk.length != 0) {
request.securityConfig.securityType = NanPairingSecurityType.PMK;
request.securityConfig.pmk = copyArray(pmk);
@@ -1126,9 +1128,13 @@ public class WifiNanIfaceAidlImpl implements IWifiNanIface {
case WIFI_AWARE_CIPHER_SUITE_NCS_SK_256:
return NanCipherSuiteType.SHARED_KEY_256_MASK;
case WIFI_AWARE_CIPHER_SUITE_NCS_PK_128:
- return NanCipherSuiteType.PUBLIC_KEY_2WDH_256_MASK;
+ return NanCipherSuiteType.PUBLIC_KEY_2WDH_128_MASK;
case WIFI_AWARE_CIPHER_SUITE_NCS_PK_256:
return NanCipherSuiteType.PUBLIC_KEY_2WDH_256_MASK;
+ case WIFI_AWARE_CIPHER_SUITE_NCS_PK_PASN_128:
+ return NanCipherSuiteType.PUBLIC_KEY_PASN_128_MASK;
+ case WIFI_AWARE_CIPHER_SUITE_NCS_PK_PASN_256:
+ return NanCipherSuiteType.PUBLIC_KEY_PASN_256_MASK;
}
return NanCipherSuiteType.NONE;
}
diff --git a/service/tests/wifitests/src/com/android/server/wifi/hal/WifiNanIfaceAidlImplTest.java b/service/tests/wifitests/src/com/android/server/wifi/hal/WifiNanIfaceAidlImplTest.java
index 192c97ac8f..d633b57b8e 100644
--- a/service/tests/wifitests/src/com/android/server/wifi/hal/WifiNanIfaceAidlImplTest.java
+++ b/service/tests/wifitests/src/com/android/server/wifi/hal/WifiNanIfaceAidlImplTest.java
@@ -18,9 +18,14 @@ package com.android.server.wifi.hal;
import static android.hardware.wifi.V1_0.NanCipherSuiteType.SHARED_KEY_128_MASK;
import static android.hardware.wifi.V1_0.NanCipherSuiteType.SHARED_KEY_256_MASK;
+import static android.net.wifi.aware.Characteristics.WIFI_AWARE_CIPHER_SUITE_NCS_PK_PASN_128;
+import static android.net.wifi.aware.Characteristics.WIFI_AWARE_CIPHER_SUITE_NCS_PK_PASN_256;
import static android.net.wifi.aware.Characteristics.WIFI_AWARE_CIPHER_SUITE_NCS_SK_128;
import static android.net.wifi.aware.Characteristics.WIFI_AWARE_CIPHER_SUITE_NCS_SK_256;
+import static com.android.server.wifi.aware.WifiAwareStateManager.NAN_PAIRING_AKM_PASN;
+import static com.android.server.wifi.aware.WifiAwareStateManager.NAN_PAIRING_AKM_SAE;
+
import static org.hamcrest.core.IsEqual.equalTo;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
@@ -33,10 +38,12 @@ import android.hardware.wifi.IWifiNanIface;
import android.hardware.wifi.NanBandIndex;
import android.hardware.wifi.NanBootstrappingRequest;
import android.hardware.wifi.NanBootstrappingResponse;
+import android.hardware.wifi.NanCipherSuiteType;
import android.hardware.wifi.NanConfigRequest;
import android.hardware.wifi.NanConfigRequestSupplemental;
import android.hardware.wifi.NanDataPathSecurityType;
import android.hardware.wifi.NanEnableRequest;
+import android.hardware.wifi.NanPairingAkm;
import android.hardware.wifi.NanPairingRequest;
import android.hardware.wifi.NanPairingRequestType;
import android.hardware.wifi.NanPairingSecurityType;
@@ -506,7 +513,8 @@ public class WifiNanIfaceAidlImplTest extends WifiBaseTest {
ArgumentCaptor<NanRespondToPairingIndicationRequest> reqCaptor = ArgumentCaptor.forClass(
NanRespondToPairingIndicationRequest.class);
assertTrue(mDut.respondToPairingRequest(tid, 1, true, null, true,
- NanPairingRequestType.NAN_PAIRING_SETUP, null, null , 0, 0));
+ NanPairingRequestType.NAN_PAIRING_SETUP, null, null , NAN_PAIRING_AKM_PASN,
+ WIFI_AWARE_CIPHER_SUITE_NCS_PK_PASN_256));
verify(mIWifiNanIfaceMock).respondToPairingIndicationRequest(eq((char) tid),
reqCaptor.capture());
NanRespondToPairingIndicationRequest request = reqCaptor.getValue();
@@ -518,6 +526,9 @@ public class WifiNanIfaceAidlImplTest extends WifiBaseTest {
assertArrayEquals(new byte[0], request.securityConfig.passphrase);
assertTrue(request.enablePairingCache);
assertArrayEquals(new byte[16], request.pairingIdentityKey);
+ assertEquals(NanCipherSuiteType.PUBLIC_KEY_PASN_256_MASK,
+ request.securityConfig.cipherType);
+ assertEquals(NanPairingAkm.PASN, request.securityConfig.akm);
}
@Test
@@ -527,17 +538,21 @@ public class WifiNanIfaceAidlImplTest extends WifiBaseTest {
ArgumentCaptor<NanPairingRequest> reqCaptor = ArgumentCaptor.forClass(
NanPairingRequest.class);
assertTrue(mDut.initiateNanPairingRequest(tid, 1, peer, null, true,
- NanPairingRequestType.NAN_PAIRING_SETUP, null, null , 0, 0));
+ NanPairingRequestType.NAN_PAIRING_SETUP, null, "PASSWORD", NAN_PAIRING_AKM_SAE,
+ WIFI_AWARE_CIPHER_SUITE_NCS_PK_PASN_128));
verify(mIWifiNanIfaceMock).initiatePairingRequest(eq((char) tid),
reqCaptor.capture());
NanPairingRequest request = reqCaptor.getValue();
assertEquals(NanPairingRequestType.NAN_PAIRING_SETUP, request.requestType);
assertEquals(1, request.peerId);
- assertEquals(NanPairingSecurityType.OPPORTUNISTIC, request.securityConfig.securityType);
+ assertEquals(NanPairingSecurityType.PASSPHRASE, request.securityConfig.securityType);
assertArrayEquals(new byte[32], request.securityConfig.pmk);
- assertArrayEquals(new byte[0], request.securityConfig.passphrase);
+ assertArrayEquals("PASSWORD".getBytes(), request.securityConfig.passphrase);
assertTrue(request.enablePairingCache);
assertArrayEquals(new byte[16], request.pairingIdentityKey);
+ assertEquals(NanCipherSuiteType.PUBLIC_KEY_PASN_128_MASK,
+ request.securityConfig.cipherType);
+ assertEquals(NanPairingAkm.SAE, request.securityConfig.akm);
}
@Test