diff options
-rw-r--r-- | service/java/com/android/server/wifi/hal/WifiNanIfaceAidlImpl.java | 20 | ||||
-rw-r--r-- | service/tests/wifitests/src/com/android/server/wifi/hal/WifiNanIfaceAidlImplTest.java | 23 |
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 |