diff options
author | Jimmy Chen <jimmycmchen@google.com> | 2019-07-04 16:49:38 +0800 |
---|---|---|
committer | Jimmy Chen <jimmycmchen@google.com> | 2019-09-06 13:23:48 +0800 |
commit | fdc02792197230fc686e9a1c0a6e6747bdd74113 (patch) | |
tree | 75e2555aebbc5437a4a064b9f81404686ad47648 /tests | |
parent | c7599e9b44142a5756b2323c847ff24dc716e055 (diff) |
wifi: support setting ocsp request type
Bug: 136720092
Test: atest FrameworksWifiTests
Test: tested with OCSP supported profile
Change-Id: I950754c791c9995f9e8393a72cb8d9d95e1b43bd
Diffstat (limited to 'tests')
3 files changed, 122 insertions, 21 deletions
diff --git a/tests/wifitests/src/com/android/server/wifi/NetworkListStoreDataTest.java b/tests/wifitests/src/com/android/server/wifi/NetworkListStoreDataTest.java index 7336c4119..87eff41e3 100644 --- a/tests/wifitests/src/com/android/server/wifi/NetworkListStoreDataTest.java +++ b/tests/wifitests/src/com/android/server/wifi/NetworkListStoreDataTest.java @@ -186,6 +186,7 @@ public class NetworkListStoreDataTest { + "<int name=\"Phase2Method\" value=\"0\" />\n" + "<string name=\"PLMN\"></string>\n" + "<string name=\"Realm\"></string>\n" + + "<int name=\"Ocsp\" value=\"0\" />\n" + "</WifiEnterpriseConfiguration>\n" + "</Network>\n"; diff --git a/tests/wifitests/src/com/android/server/wifi/SupplicantStaNetworkHalTest.java b/tests/wifitests/src/com/android/server/wifi/SupplicantStaNetworkHalTest.java index 796dce1df..0073695ba 100644 --- a/tests/wifitests/src/com/android/server/wifi/SupplicantStaNetworkHalTest.java +++ b/tests/wifitests/src/com/android/server/wifi/SupplicantStaNetworkHalTest.java @@ -79,6 +79,8 @@ public class SupplicantStaNetworkHalTest { @Mock private ISupplicantStaNetwork mISupplicantStaNetworkMock; @Mock private android.hardware.wifi.supplicant.V1_2.ISupplicantStaNetwork mISupplicantStaNetworkV12; + @Mock + private android.hardware.wifi.supplicant.V1_3.ISupplicantStaNetwork mISupplicantStaNetworkV13; @Mock private Context mContext; @Mock private WifiMonitor mWifiMonitor; @@ -86,6 +88,12 @@ public class SupplicantStaNetworkHalTest { private MockResources mResources; private ISupplicantStaNetworkCallback mISupplicantStaNetworkCallback; + enum SupplicantStaNetworkVersion { + V1_0, + V1_2, + V1_3, + } + /** * Spy used to return the V1_2 ISupplicantStaNetwork mock object to simulate the 1.2 HAL running * on the device. @@ -104,6 +112,24 @@ public class SupplicantStaNetworkHalTest { } } + /** + * Spy used to return the V1_3 ISupplicantStaNetwork mock object to simulate the 1.3 HAL running + * on the device. + */ + private class SupplicantStaNetworkHalSpyV1_3 extends SupplicantStaNetworkHalSpyV1_2 { + SupplicantStaNetworkHalSpyV1_3(ISupplicantStaNetwork iSupplicantStaNetwork, + String ifaceName, + Context context, WifiMonitor monitor) { + super(iSupplicantStaNetwork, ifaceName, context, monitor); + } + + @Override + protected android.hardware.wifi.supplicant.V1_3.ISupplicantStaNetwork + getSupplicantStaNetworkForV1_3Mockable() { + return mISupplicantStaNetworkV13; + } + } + @Before public void setUp() throws Exception { MockitoAnnotations.initMocks(this); @@ -114,7 +140,7 @@ public class SupplicantStaNetworkHalTest { mResources = new MockResources(); when(mContext.getResources()).thenReturn(mResources); - createSupplicantStaNetwork(); + createSupplicantStaNetwork(SupplicantStaNetworkVersion.V1_0); } /** @@ -123,8 +149,7 @@ public class SupplicantStaNetworkHalTest { @Test public void testOweNetworkWifiConfigurationSaveLoad() throws Exception { // Now expose the V1.2 ISupplicantStaNetwork - mSupplicantNetwork = new SupplicantStaNetworkHalSpyV1_2(mISupplicantStaNetworkMock, - IFACE_NAME, mContext, mWifiMonitor); + createSupplicantStaNetwork(SupplicantStaNetworkVersion.V1_2); WifiConfiguration config = WifiConfigurationTestUtil.createOweNetwork(); config.updateIdentifier = "46"; @@ -147,8 +172,7 @@ public class SupplicantStaNetworkHalTest { @Test public void testSaePasswordNetworkWifiConfigurationSaveLoad() throws Exception { // Now expose the V1.2 ISupplicantStaNetwork - mSupplicantNetwork = new SupplicantStaNetworkHalSpyV1_2(mISupplicantStaNetworkMock, - IFACE_NAME, mContext, mWifiMonitor); + createSupplicantStaNetwork(SupplicantStaNetworkVersion.V1_2); WifiConfiguration config = WifiConfigurationTestUtil.createSaeNetwork(); testWifiConfigurationSaveLoad(config); @@ -257,6 +281,23 @@ public class SupplicantStaNetworkHalTest { * Tests the saving of WifiConfiguration to wpa_supplicant. */ @Test + public void testEapTlsNoneClientCertNetworkWithOcspWifiConfigurationSaveLoad() + throws Exception { + // Now expose the V1.3 ISupplicantStaNetwork + createSupplicantStaNetwork(SupplicantStaNetworkVersion.V1_3); + + WifiConfiguration config = WifiConfigurationTestUtil.createEapNetwork(); + config.enterpriseConfig = + WifiConfigurationTestUtil.createTLSWifiEnterpriseConfigWithNonePhase2(); + config.enterpriseConfig.setClientCertificateAlias("test_alias"); + config.enterpriseConfig.setOcsp(WifiEnterpriseConfig.OCSP_REQUIRE_CERT_STATUS); + testWifiConfigurationSaveLoad(config); + } + + /** + * Tests the saving of WifiConfiguration to wpa_supplicant. + */ + @Test public void testEapTlsAkaNetworkWifiConfigurationSaveLoad() throws Exception { WifiConfiguration config = WifiConfigurationTestUtil.createEapNetwork(); config.enterpriseConfig = @@ -270,8 +311,7 @@ public class SupplicantStaNetworkHalTest { @Test public void testEapSuiteBRsaNetworkWifiConfigurationSaveLoad() throws Exception { // Now expose the V1.2 ISupplicantStaNetwork - mSupplicantNetwork = new SupplicantStaNetworkHalSpyV1_2(mISupplicantStaNetworkMock, - IFACE_NAME, mContext, mWifiMonitor); + createSupplicantStaNetwork(SupplicantStaNetworkVersion.V1_2); WifiConfiguration config = WifiConfigurationTestUtil.createEapSuiteBNetwork(); config.allowedSuiteBCiphers.set(WifiConfiguration.SuiteBCipher.ECDHE_RSA); @@ -297,8 +337,7 @@ public class SupplicantStaNetworkHalTest { @Test public void testEapSuiteBEcdsaNetworkWifiConfigurationSaveLoad() throws Exception { // Now expose the V1.2 ISupplicantStaNetwork - mSupplicantNetwork = new SupplicantStaNetworkHalSpyV1_2(mISupplicantStaNetworkMock, - IFACE_NAME, mContext, mWifiMonitor); + createSupplicantStaNetwork(SupplicantStaNetworkVersion.V1_2); WifiConfiguration config = WifiConfigurationTestUtil.createEapSuiteBNetwork(); config.allowedSuiteBCiphers.set(WifiConfiguration.SuiteBCipher.ECDHE_ECDSA); @@ -732,8 +771,7 @@ public class SupplicantStaNetworkHalTest { any(ArrayList.class), any(ArrayList.class)); // Now expose the V1.2 ISupplicantStaNetwork - mSupplicantNetwork = new SupplicantStaNetworkHalSpyV1_2(mISupplicantStaNetworkMock, - IFACE_NAME, mContext, mWifiMonitor); + createSupplicantStaNetwork(SupplicantStaNetworkVersion.V1_2); doAnswer(new AnswerWithArguments() { public SupplicantStatus answer(ArrayList<Byte> identity, ArrayList<Byte> encryptedIdentity) @@ -755,7 +793,7 @@ public class SupplicantStaNetworkHalTest { @Test public void testAddFtPskFlags() throws Exception { mResources.setBoolean(R.bool.config_wifi_fast_bss_transition_enabled, true); - createSupplicantStaNetwork(); + createSupplicantStaNetwork(SupplicantStaNetworkVersion.V1_0); WifiConfiguration config = WifiConfigurationTestUtil.createPskNetwork(); assertTrue(mSupplicantNetwork.saveWifiConfiguration(config)); @@ -777,7 +815,7 @@ public class SupplicantStaNetworkHalTest { @Test public void testAddFtEapFlags() throws Exception { mResources.setBoolean(R.bool.config_wifi_fast_bss_transition_enabled, true); - createSupplicantStaNetwork(); + createSupplicantStaNetwork(SupplicantStaNetworkVersion.V1_0); WifiConfiguration config = WifiConfigurationTestUtil.createEapNetwork(); assertTrue(mSupplicantNetwork.saveWifiConfiguration(config)); @@ -800,8 +838,7 @@ public class SupplicantStaNetworkHalTest { public void testAddPskSha256Flags() throws Exception { WifiConfiguration config = WifiConfigurationTestUtil.createPskNetwork(); // Now expose the V1.2 ISupplicantStaNetwork - mSupplicantNetwork = new SupplicantStaNetworkHalSpyV1_2(mISupplicantStaNetworkMock, - IFACE_NAME, mContext, mWifiMonitor); + createSupplicantStaNetwork(SupplicantStaNetworkVersion.V1_2); assertTrue(mSupplicantNetwork.saveWifiConfiguration(config)); // Check the supplicant variables to ensure that we have added the SHA256 flags. @@ -824,8 +861,7 @@ public class SupplicantStaNetworkHalTest { public void testAddEapSha256Flags() throws Exception { WifiConfiguration config = WifiConfigurationTestUtil.createEapNetwork(); // Now expose the V1.2 ISupplicantStaNetwork - mSupplicantNetwork = new SupplicantStaNetworkHalSpyV1_2(mISupplicantStaNetworkMock, - IFACE_NAME, mContext, mWifiMonitor); + createSupplicantStaNetwork(SupplicantStaNetworkVersion.V1_2); assertTrue(mSupplicantNetwork.saveWifiConfiguration(config)); // Check the supplicant variables to ensure that we have added the SHA256 flags. @@ -872,6 +908,23 @@ public class SupplicantStaNetworkHalTest { } /** + * Tests OCSP status is ignored on HAL v1.2 or lower + */ + @Test + public void testOcspStatusHal1_2OrLower() throws Exception { + WifiConfiguration config = WifiConfigurationTestUtil.createEapNetwork(); + config.enterpriseConfig = + WifiConfigurationTestUtil.createTLSWifiEnterpriseConfigWithNonePhase2(); + config.enterpriseConfig.setClientCertificateAlias("test_alias"); + config.enterpriseConfig.setOcsp(WifiEnterpriseConfig.OCSP_REQUIRE_CERT_STATUS); + + assertTrue(mSupplicantNetwork.saveWifiConfiguration(config)); + + // Check the supplicant variables to ensure that we have NOT change the OCSP status. + assertEquals(WifiEnterpriseConfig.OCSP_NONE, mSupplicantVariables.ocsp); + } + + /** * Tests the retrieval of WPS NFC token. */ @Test @@ -1565,6 +1618,24 @@ public class SupplicantStaNetworkHalTest { return mStatusSuccess; } }).when(mISupplicantStaNetworkV12).enableSuiteBEapOpenSslCiphers(); + + /** OCSP */ + doAnswer(new AnswerWithArguments() { + public SupplicantStatus answer(int ocsp) throws RemoteException { + mSupplicantVariables.ocsp = ocsp; + return mStatusSuccess; + } + }).when(mISupplicantStaNetworkV13).setOcsp(any(int.class)); + doAnswer(new AnswerWithArguments() { + public void answer( + android.hardware.wifi.supplicant.V1_3.ISupplicantStaNetwork.getOcspCallback cb) + throws RemoteException { + cb.onValues(mStatusSuccess, mSupplicantVariables.ocsp); + } + }).when(mISupplicantStaNetworkV13) + .getOcsp(any(android.hardware.wifi.supplicant.V1_3.ISupplicantStaNetwork + .getOcspCallback.class)); + } private SupplicantStatus createSupplicantStatus(int code) { @@ -1576,10 +1647,21 @@ public class SupplicantStaNetworkHalTest { /** * Need this for tests which wants to manipulate context before creating the instance. */ - private void createSupplicantStaNetwork() { - mSupplicantNetwork = - new SupplicantStaNetworkHal(mISupplicantStaNetworkMock, IFACE_NAME, mContext, - mWifiMonitor); + private void createSupplicantStaNetwork(SupplicantStaNetworkVersion version) { + switch (version) { + case V1_0: + mSupplicantNetwork = new SupplicantStaNetworkHal( + mISupplicantStaNetworkMock, IFACE_NAME, mContext, mWifiMonitor); + break; + case V1_2: + mSupplicantNetwork = new SupplicantStaNetworkHalSpyV1_2( + mISupplicantStaNetworkMock, IFACE_NAME, mContext, mWifiMonitor); + break; + case V1_3: + mSupplicantNetwork = new SupplicantStaNetworkHalSpyV1_3( + mISupplicantStaNetworkMock, IFACE_NAME, mContext, mWifiMonitor); + break; + } mSupplicantNetwork.enableVerboseLogging(true); } @@ -1616,5 +1698,6 @@ public class SupplicantStaNetworkHalTest { public String eapEngineID; public String eapDomainSuffixMatch; public boolean eapProactiveKeyCaching; + public int ocsp; } } diff --git a/tests/wifitests/src/com/android/server/wifi/hotspot2/PasspointProviderTest.java b/tests/wifitests/src/com/android/server/wifi/hotspot2/PasspointProviderTest.java index c73e0d105..6911db801 100644 --- a/tests/wifitests/src/com/android/server/wifi/hotspot2/PasspointProviderTest.java +++ b/tests/wifitests/src/com/android/server/wifi/hotspot2/PasspointProviderTest.java @@ -364,6 +364,13 @@ public class PasspointProviderTest { } else { assertEquals(CA_CERTIFICATE_ALIAS, wifiEnterpriseConfig.getCaCertificateAlias()); } + if (passpointConfig.getCredential().getCheckAaaServerCertStatus()) { + assertEquals(wifiEnterpriseConfig.getOcsp(), + WifiEnterpriseConfig.OCSP_REQUIRE_CERT_STATUS); + } else { + assertEquals(wifiEnterpriseConfig.getOcsp(), + WifiEnterpriseConfig.OCSP_NONE); + } } else if (credential.getCertCredential() != null) { Credential.CertificateCredential certCredential = credential.getCertCredential(); assertEquals("anonymous@" + credential.getRealm(), @@ -391,6 +398,13 @@ public class PasspointProviderTest { assertTrue(Arrays.equals(new String[] {SYSTEM_CA_STORE_PATH}, wifiEnterpriseConfig.getCaCertificateAliases())); } + if (passpointConfig.getCredential().getCheckAaaServerCertStatus()) { + assertEquals(wifiEnterpriseConfig.getOcsp(), + WifiEnterpriseConfig.OCSP_REQUIRE_CERT_STATUS); + } else { + assertEquals(wifiEnterpriseConfig.getOcsp(), + WifiEnterpriseConfig.OCSP_NONE); + } } else if (credential.getSimCredential() != null) { Credential.SimCredential simCredential = credential.getSimCredential(); switch (simCredential.getEapType()) { @@ -1021,6 +1035,9 @@ public class PasspointProviderTest { PasspointConfiguration config = generateTestPasspointConfiguration( CredentialType.USER, false); config.setAaaServerTrustedNames(TEST_TRUSTED_NAME); + Credential credential = config.getCredential(); + // OCSP (Online Certificate Status Protocol) is required. + credential.setCheckAaaServerCertStatus(true); mProvider = createProvider(config); // Install certificate. |