summaryrefslogtreecommitdiff
path: root/wifi/tests/src/android/net/wifi/WifiEnterpriseConfigTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'wifi/tests/src/android/net/wifi/WifiEnterpriseConfigTest.java')
-rw-r--r--wifi/tests/src/android/net/wifi/WifiEnterpriseConfigTest.java577
1 files changed, 0 insertions, 577 deletions
diff --git a/wifi/tests/src/android/net/wifi/WifiEnterpriseConfigTest.java b/wifi/tests/src/android/net/wifi/WifiEnterpriseConfigTest.java
deleted file mode 100644
index 62485ecb6f7b..000000000000
--- a/wifi/tests/src/android/net/wifi/WifiEnterpriseConfigTest.java
+++ /dev/null
@@ -1,577 +0,0 @@
-/*
- * Copyright (C) 2016 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License
- */
-
-package android.net.wifi;
-
-import static org.junit.Assert.assertArrayEquals;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
-
-import android.net.wifi.WifiEnterpriseConfig.Eap;
-import android.net.wifi.WifiEnterpriseConfig.Phase2;
-import android.os.Parcel;
-import android.security.Credentials;
-
-import androidx.test.filters.SmallTest;
-
-import org.junit.Before;
-import org.junit.Test;
-
-import java.security.PrivateKey;
-import java.security.cert.X509Certificate;
-
-/**
- * Unit tests for {@link android.net.wifi.WifiEnterpriseConfig}.
- */
-@SmallTest
-public class WifiEnterpriseConfigTest {
- // Maintain a ground truth of the keystore uri prefix which is expected by wpa_supplicant.
- public static final String KEYSTORE_URI = "keystore://";
- public static final String CA_CERT_PREFIX = KEYSTORE_URI + Credentials.CA_CERTIFICATE;
- public static final String KEYSTORES_URI = "keystores://";
- private static final String TEST_DOMAIN_SUFFIX_MATCH = "domainSuffixMatch";
-
- private WifiEnterpriseConfig mEnterpriseConfig;
-
- @Before
- public void setUp() throws Exception {
- mEnterpriseConfig = new WifiEnterpriseConfig();
- }
-
- @Test
- public void testGetEmptyCaCertificate() {
- // A newly-constructed WifiEnterpriseConfig object should have no CA certificate.
- assertNull(mEnterpriseConfig.getCaCertificate());
- assertNull(mEnterpriseConfig.getCaCertificates());
- // Setting CA certificate to null explicitly.
- mEnterpriseConfig.setCaCertificate(null);
- assertNull(mEnterpriseConfig.getCaCertificate());
- // Setting CA certificate to null using setCaCertificates().
- mEnterpriseConfig.setCaCertificates(null);
- assertNull(mEnterpriseConfig.getCaCertificates());
- // Setting CA certificate to zero-length array.
- mEnterpriseConfig.setCaCertificates(new X509Certificate[0]);
- assertNull(mEnterpriseConfig.getCaCertificates());
- }
-
- @Test
- public void testSetGetSingleCaCertificate() {
- X509Certificate cert0 = FakeKeys.CA_CERT0;
- mEnterpriseConfig.setCaCertificate(cert0);
- assertEquals(mEnterpriseConfig.getCaCertificate(), cert0);
- }
-
- @Test
- public void testSetGetMultipleCaCertificates() {
- X509Certificate cert0 = FakeKeys.CA_CERT0;
- X509Certificate cert1 = FakeKeys.CA_CERT1;
- mEnterpriseConfig.setCaCertificates(new X509Certificate[] {cert0, cert1});
- X509Certificate[] result = mEnterpriseConfig.getCaCertificates();
- assertEquals(result.length, 2);
- assertTrue(result[0] == cert0 && result[1] == cert1);
- }
-
- @Test
- public void testSetClientKeyEntryWithNull() {
- mEnterpriseConfig.setClientKeyEntry(null, null);
- assertNull(mEnterpriseConfig.getClientCertificateChain());
- assertNull(mEnterpriseConfig.getClientCertificate());
- mEnterpriseConfig.setClientKeyEntryWithCertificateChain(null, null);
- assertNull(mEnterpriseConfig.getClientCertificateChain());
- assertNull(mEnterpriseConfig.getClientCertificate());
-
- // Setting the client certificate to null should clear the existing chain.
- PrivateKey clientKey = FakeKeys.RSA_KEY1;
- X509Certificate clientCert0 = FakeKeys.CLIENT_CERT;
- X509Certificate clientCert1 = FakeKeys.CA_CERT1;
- mEnterpriseConfig.setClientKeyEntry(clientKey, clientCert0);
- assertNotNull(mEnterpriseConfig.getClientCertificate());
- mEnterpriseConfig.setClientKeyEntry(null, null);
- assertNull(mEnterpriseConfig.getClientCertificate());
- assertNull(mEnterpriseConfig.getClientCertificateChain());
-
- // Setting the chain to null should clear the existing chain.
- X509Certificate[] clientChain = new X509Certificate[] {clientCert0, clientCert1};
- mEnterpriseConfig.setClientKeyEntryWithCertificateChain(clientKey, clientChain);
- assertNotNull(mEnterpriseConfig.getClientCertificateChain());
- mEnterpriseConfig.setClientKeyEntryWithCertificateChain(null, null);
- assertNull(mEnterpriseConfig.getClientCertificate());
- assertNull(mEnterpriseConfig.getClientCertificateChain());
- }
-
- @Test
- public void testSetClientCertificateChain() {
- PrivateKey clientKey = FakeKeys.RSA_KEY1;
- X509Certificate cert0 = FakeKeys.CLIENT_CERT;
- X509Certificate cert1 = FakeKeys.CA_CERT1;
- X509Certificate[] clientChain = new X509Certificate[] {cert0, cert1};
- mEnterpriseConfig.setClientKeyEntryWithCertificateChain(clientKey, clientChain);
- X509Certificate[] result = mEnterpriseConfig.getClientCertificateChain();
- assertEquals(result.length, 2);
- assertTrue(result[0] == cert0 && result[1] == cert1);
- assertTrue(mEnterpriseConfig.getClientCertificate() == cert0);
- }
-
- private boolean isClientCertificateChainInvalid(X509Certificate[] clientChain) {
- boolean exceptionThrown = false;
- try {
- PrivateKey clientKey = FakeKeys.RSA_KEY1;
- mEnterpriseConfig.setClientKeyEntryWithCertificateChain(clientKey, clientChain);
- } catch (IllegalArgumentException e) {
- exceptionThrown = true;
- }
- return exceptionThrown;
- }
-
- @Test
- public void testSetInvalidClientCertificateChain() {
- X509Certificate clientCert = FakeKeys.CLIENT_CERT;
- X509Certificate caCert = FakeKeys.CA_CERT1;
- assertTrue("Invalid client certificate",
- isClientCertificateChainInvalid(new X509Certificate[] {caCert, caCert}));
- assertTrue("Invalid CA certificate",
- isClientCertificateChainInvalid(new X509Certificate[] {clientCert, clientCert}));
- assertTrue("Both certificates invalid",
- isClientCertificateChainInvalid(new X509Certificate[] {caCert, clientCert}));
- }
-
- @Test
- public void testSaveSingleCaCertificateAlias() {
- final String alias = "single_alias 0";
- mEnterpriseConfig.setCaCertificateAliases(new String[] {alias});
- assertEquals(getCaCertField(), CA_CERT_PREFIX + alias);
- }
-
- @Test
- public void testLoadSingleCaCertificateAlias() {
- final String alias = "single_alias 1";
- setCaCertField(CA_CERT_PREFIX + alias);
- String[] aliases = mEnterpriseConfig.getCaCertificateAliases();
- assertEquals(aliases.length, 1);
- assertEquals(aliases[0], alias);
- }
-
- @Test
- public void testSaveMultipleCaCertificates() {
- final String alias0 = "single_alias 0";
- final String alias1 = "single_alias 1";
- mEnterpriseConfig.setCaCertificateAliases(new String[] {alias0, alias1});
- assertEquals(getCaCertField(), String.format("%s%s %s",
- KEYSTORES_URI,
- WifiEnterpriseConfig.encodeCaCertificateAlias(Credentials.CA_CERTIFICATE + alias0),
- WifiEnterpriseConfig.encodeCaCertificateAlias(Credentials.CA_CERTIFICATE + alias1)));
- }
-
- @Test
- public void testLoadMultipleCaCertificates() {
- final String alias0 = "single_alias 0";
- final String alias1 = "single_alias 1";
- setCaCertField(String.format("%s%s %s",
- KEYSTORES_URI,
- WifiEnterpriseConfig.encodeCaCertificateAlias(Credentials.CA_CERTIFICATE + alias0),
- WifiEnterpriseConfig.encodeCaCertificateAlias(Credentials.CA_CERTIFICATE + alias1)));
- String[] aliases = mEnterpriseConfig.getCaCertificateAliases();
- assertEquals(aliases.length, 2);
- assertEquals(aliases[0], alias0);
- assertEquals(aliases[1], alias1);
- }
-
- private String getCaCertField() {
- return mEnterpriseConfig.getFieldValue(WifiEnterpriseConfig.CA_CERT_KEY);
- }
-
- private void setCaCertField(String value) {
- mEnterpriseConfig.setFieldValue(WifiEnterpriseConfig.CA_CERT_KEY, value);
- }
-
- // Retrieves the value for a specific key supplied to wpa_supplicant.
- private class SupplicantConfigExtractor implements WifiEnterpriseConfig.SupplicantSaver {
- private String mValue = null;
- private String mKey;
-
- SupplicantConfigExtractor(String key) {
- mKey = key;
- }
-
- @Override
- public boolean saveValue(String key, String value) {
- if (key.equals(mKey)) {
- mValue = value;
- }
- return true;
- }
-
- public String getValue() {
- return mValue;
- }
- }
-
- private String getSupplicantEapMethod() {
- SupplicantConfigExtractor entryExtractor = new SupplicantConfigExtractor(
- WifiEnterpriseConfig.EAP_KEY);
- mEnterpriseConfig.saveToSupplicant(entryExtractor);
- return entryExtractor.getValue();
- }
-
- private String getSupplicantPhase2Method() {
- SupplicantConfigExtractor entryExtractor = new SupplicantConfigExtractor(
- WifiEnterpriseConfig.PHASE2_KEY);
- mEnterpriseConfig.saveToSupplicant(entryExtractor);
- return entryExtractor.getValue();
- }
-
- /** Verifies the default value for EAP outer and inner methods */
- @Test
- public void eapInnerDefault() {
- assertEquals(null, getSupplicantEapMethod());
- assertEquals(null, getSupplicantPhase2Method());
- }
-
- /** Verifies that the EAP inner method is reset when we switch to TLS */
- @Test
- public void eapPhase2MethodForTls() {
- // Initially select an EAP method that supports an phase2.
- mEnterpriseConfig.setEapMethod(Eap.PEAP);
- mEnterpriseConfig.setPhase2Method(Phase2.MSCHAPV2);
- assertEquals("PEAP", getSupplicantEapMethod());
- assertEquals("\"auth=MSCHAPV2\"", getSupplicantPhase2Method());
-
- // Change the EAP method to another type which supports a phase2.
- mEnterpriseConfig.setEapMethod(Eap.TTLS);
- assertEquals("TTLS", getSupplicantEapMethod());
- assertEquals("\"auth=MSCHAPV2\"", getSupplicantPhase2Method());
-
- // Change the EAP method to TLS which does not support a phase2.
- mEnterpriseConfig.setEapMethod(Eap.TLS);
- assertEquals(null, getSupplicantPhase2Method());
- }
-
- /** Verfies that the EAP inner method is reset when we switch phase2 to NONE */
- @Test
- public void eapPhase2None() {
- // Initially select an EAP method that supports an phase2.
- mEnterpriseConfig.setEapMethod(Eap.PEAP);
- mEnterpriseConfig.setPhase2Method(Phase2.MSCHAPV2);
- assertEquals("PEAP", getSupplicantEapMethod());
- assertEquals("\"auth=MSCHAPV2\"", getSupplicantPhase2Method());
-
- // Change the phase2 method to NONE and ensure the value is cleared.
- mEnterpriseConfig.setPhase2Method(Phase2.NONE);
- assertEquals(null, getSupplicantPhase2Method());
- }
-
- /** Verfies that the correct "autheap" parameter is supplied for TTLS/GTC. */
- @Test
- public void peapGtcToTtls() {
- mEnterpriseConfig.setEapMethod(Eap.PEAP);
- mEnterpriseConfig.setPhase2Method(Phase2.GTC);
- assertEquals("PEAP", getSupplicantEapMethod());
- assertEquals("\"auth=GTC\"", getSupplicantPhase2Method());
-
- mEnterpriseConfig.setEapMethod(Eap.TTLS);
- assertEquals("TTLS", getSupplicantEapMethod());
- assertEquals("\"autheap=GTC\"", getSupplicantPhase2Method());
- }
-
- /** Verfies that the correct "auth" parameter is supplied for PEAP/GTC. */
- @Test
- public void ttlsGtcToPeap() {
- mEnterpriseConfig.setEapMethod(Eap.TTLS);
- mEnterpriseConfig.setPhase2Method(Phase2.GTC);
- assertEquals("TTLS", getSupplicantEapMethod());
- assertEquals("\"autheap=GTC\"", getSupplicantPhase2Method());
-
- mEnterpriseConfig.setEapMethod(Eap.PEAP);
- assertEquals("PEAP", getSupplicantEapMethod());
- assertEquals("\"auth=GTC\"", getSupplicantPhase2Method());
- }
-
- /** Verfies PEAP/SIM, PEAP/AKA, PEAP/AKA'. */
- @Test
- public void peapSimAkaAkaPrime() {
- mEnterpriseConfig.setEapMethod(Eap.PEAP);
- mEnterpriseConfig.setPhase2Method(Phase2.SIM);
- assertEquals("PEAP", getSupplicantEapMethod());
- assertEquals("\"auth=SIM\"", getSupplicantPhase2Method());
-
- mEnterpriseConfig.setPhase2Method(Phase2.AKA);
- assertEquals("\"auth=AKA\"", getSupplicantPhase2Method());
-
- mEnterpriseConfig.setPhase2Method(Phase2.AKA_PRIME);
- assertEquals("\"auth=AKA'\"", getSupplicantPhase2Method());
- }
-
- /**
- * Verifies that the copy constructor preseves both the masked password and inner method
- * information.
- */
- @Test
- public void copyConstructor() {
- WifiEnterpriseConfig enterpriseConfig = new WifiEnterpriseConfig();
- enterpriseConfig.setPassword("*");
- enterpriseConfig.setEapMethod(Eap.TTLS);
- enterpriseConfig.setPhase2Method(Phase2.GTC);
- mEnterpriseConfig = new WifiEnterpriseConfig(enterpriseConfig);
- assertEquals("TTLS", getSupplicantEapMethod());
- assertEquals("\"autheap=GTC\"", getSupplicantPhase2Method());
- assertEquals("*", mEnterpriseConfig.getPassword());
- }
-
- /**
- * Verifies that the copy from external ignores masked passwords and preserves the
- * inner method information.
- */
- @Test
- public void copyFromExternal() {
- WifiEnterpriseConfig enterpriseConfig = new WifiEnterpriseConfig();
- enterpriseConfig.setPassword("*");
- enterpriseConfig.setEapMethod(Eap.TTLS);
- enterpriseConfig.setPhase2Method(Phase2.GTC);
- enterpriseConfig.setOcsp(WifiEnterpriseConfig.OCSP_REQUIRE_CERT_STATUS);
- mEnterpriseConfig = new WifiEnterpriseConfig();
- mEnterpriseConfig.copyFromExternal(enterpriseConfig, "*");
- assertEquals("TTLS", getSupplicantEapMethod());
- assertEquals("\"autheap=GTC\"", getSupplicantPhase2Method());
- assertNotEquals("*", mEnterpriseConfig.getPassword());
- assertEquals(enterpriseConfig.getOcsp(), mEnterpriseConfig.getOcsp());
- }
-
- /** Verfies that parceling a WifiEnterpriseConfig preseves method information. */
- @Test
- public void parcelConstructor() {
- WifiEnterpriseConfig enterpriseConfig = new WifiEnterpriseConfig();
- enterpriseConfig.setEapMethod(Eap.TTLS);
- enterpriseConfig.setPhase2Method(Phase2.GTC);
- Parcel parcel = Parcel.obtain();
- enterpriseConfig.writeToParcel(parcel, 0);
- parcel.setDataPosition(0); // Allow parcel to be read from the beginning.
- mEnterpriseConfig = WifiEnterpriseConfig.CREATOR.createFromParcel(parcel);
- assertEquals("TTLS", getSupplicantEapMethod());
- assertEquals("\"autheap=GTC\"", getSupplicantPhase2Method());
- }
-
- /**
- * Verifies that parceling a WifiEnterpriseConfig preserves the key
- * and certificates information.
- */
- @Test
- public void parcelConfigWithKeyAndCerts() throws Exception {
- WifiEnterpriseConfig enterpriseConfig = new WifiEnterpriseConfig();
- PrivateKey clientKey = FakeKeys.RSA_KEY1;
- X509Certificate clientCert = FakeKeys.CLIENT_CERT;
- X509Certificate[] caCerts = new X509Certificate[] {FakeKeys.CA_CERT0, FakeKeys.CA_CERT1};
- enterpriseConfig.setClientKeyEntry(clientKey, clientCert);
- enterpriseConfig.setCaCertificates(caCerts);
- Parcel parcel = Parcel.obtain();
- enterpriseConfig.writeToParcel(parcel, 0);
-
- parcel.setDataPosition(0); // Allow parcel to be read from the beginning.
- mEnterpriseConfig = WifiEnterpriseConfig.CREATOR.createFromParcel(parcel);
- PrivateKey actualClientKey = mEnterpriseConfig.getClientPrivateKey();
- X509Certificate actualClientCert = mEnterpriseConfig.getClientCertificate();
- X509Certificate[] actualCaCerts = mEnterpriseConfig.getCaCertificates();
-
- /* Verify client private key. */
- assertNotNull(actualClientKey);
- assertEquals(clientKey.getAlgorithm(), actualClientKey.getAlgorithm());
- assertArrayEquals(clientKey.getEncoded(), actualClientKey.getEncoded());
-
- /* Verify client certificate. */
- assertNotNull(actualClientCert);
- assertArrayEquals(clientCert.getEncoded(), actualClientCert.getEncoded());
-
- /* Verify CA certificates. */
- assertNotNull(actualCaCerts);
- assertEquals(caCerts.length, actualCaCerts.length);
- for (int i = 0; i < caCerts.length; i++) {
- assertNotNull(actualCaCerts[i]);
- assertArrayEquals(caCerts[i].getEncoded(), actualCaCerts[i].getEncoded());
- }
- }
-
- /** Verifies proper operation of the getKeyId() method. */
- @Test
- public void getKeyId() {
- assertEquals("NULL", mEnterpriseConfig.getKeyId(null));
- WifiEnterpriseConfig enterpriseConfig = new WifiEnterpriseConfig();
- enterpriseConfig.setEapMethod(Eap.TTLS);
- enterpriseConfig.setPhase2Method(Phase2.GTC);
- assertEquals("TTLS_GTC", mEnterpriseConfig.getKeyId(enterpriseConfig));
- mEnterpriseConfig.setEapMethod(Eap.PEAP);
- mEnterpriseConfig.setPhase2Method(Phase2.MSCHAPV2);
- assertEquals("PEAP_MSCHAPV2", mEnterpriseConfig.getKeyId(enterpriseConfig));
- }
-
- /** Verifies that passwords are not displayed in toString. */
- @Test
- public void passwordNotInToString() {
- String password = "supersecret";
- mEnterpriseConfig.setPassword(password);
- assertFalse(mEnterpriseConfig.toString().contains(password));
- }
-
- /** Verifies that certificate ownership flag is set correctly */
- @Test
- public void testIsAppInstalledDeviceKeyAndCert() {
- // First make sure that app didn't install anything
- assertFalse(mEnterpriseConfig.isAppInstalledDeviceKeyAndCert());
- assertFalse(mEnterpriseConfig.isAppInstalledCaCert());
-
- // Then app loads keys via the enterprise config API
- PrivateKey clientKey = FakeKeys.RSA_KEY1;
- X509Certificate cert0 = FakeKeys.CLIENT_CERT;
- X509Certificate cert1 = FakeKeys.CA_CERT1;
- X509Certificate[] clientChain = new X509Certificate[] {cert0, cert1};
- mEnterpriseConfig.setClientKeyEntryWithCertificateChain(clientKey, clientChain);
- X509Certificate[] result = mEnterpriseConfig.getClientCertificateChain();
- assertEquals(result.length, 2);
- assertTrue(result[0] == cert0 && result[1] == cert1);
- assertTrue(mEnterpriseConfig.getClientCertificate() == cert0);
-
- // Make sure it is the owner now
- assertTrue(mEnterpriseConfig.isAppInstalledDeviceKeyAndCert());
- assertFalse(mEnterpriseConfig.isAppInstalledCaCert());
- }
-
- /** Verifies that certificate ownership flag is set correctly */
- @Test
- public void testIsAppInstalledCaCert() {
- // First make sure that app didn't install anything
- assertFalse(mEnterpriseConfig.isAppInstalledDeviceKeyAndCert());
- assertFalse(mEnterpriseConfig.isAppInstalledCaCert());
-
- // Then app loads CA cert via the enterprise config API
- X509Certificate cert = FakeKeys.CA_CERT1;
- mEnterpriseConfig.setCaCertificate(cert);
- X509Certificate result = mEnterpriseConfig.getCaCertificate();
- assertTrue(result == cert);
-
- // Make sure it is the owner now
- assertFalse(mEnterpriseConfig.isAppInstalledDeviceKeyAndCert());
- assertTrue(mEnterpriseConfig.isAppInstalledCaCert());
- }
-
- /** Verifies that certificate ownership flag is set correctly */
- @Test
- public void testIsAppInstalledCaCerts() {
- // First make sure that app didn't install anything
- assertFalse(mEnterpriseConfig.isAppInstalledDeviceKeyAndCert());
- assertFalse(mEnterpriseConfig.isAppInstalledCaCert());
-
- // Then app loads CA cert via the enterprise config API
- X509Certificate cert0 = FakeKeys.CA_CERT0;
- X509Certificate cert1 = FakeKeys.CA_CERT1;
- X509Certificate[] cert = new X509Certificate[] {cert0, cert1};
-
- mEnterpriseConfig.setCaCertificates(cert);
- X509Certificate[] result = mEnterpriseConfig.getCaCertificates();
- assertEquals(result.length, 2);
- assertTrue(result[0] == cert0 && result[1] == cert1);
-// assertTrue(mEnterpriseConfig.getClientCertificate() == cert0);
-
- // Make sure it is the owner now
- assertFalse(mEnterpriseConfig.isAppInstalledDeviceKeyAndCert());
- assertTrue(mEnterpriseConfig.isAppInstalledCaCert());
- }
-
- /** Verifies that OCSP value is set correctly. */
- @Test
- public void testOcspSetGet() throws Exception {
- WifiEnterpriseConfig enterpriseConfig = new WifiEnterpriseConfig();
-
- enterpriseConfig.setOcsp(WifiEnterpriseConfig.OCSP_NONE);
- assertEquals(WifiEnterpriseConfig.OCSP_NONE, enterpriseConfig.getOcsp());
-
- enterpriseConfig.setOcsp(WifiEnterpriseConfig.OCSP_REQUIRE_CERT_STATUS);
- assertEquals(WifiEnterpriseConfig.OCSP_REQUIRE_CERT_STATUS, enterpriseConfig.getOcsp());
-
- enterpriseConfig.setOcsp(WifiEnterpriseConfig.OCSP_REQUEST_CERT_STATUS);
- assertEquals(WifiEnterpriseConfig.OCSP_REQUEST_CERT_STATUS, enterpriseConfig.getOcsp());
-
- enterpriseConfig.setOcsp(WifiEnterpriseConfig.OCSP_REQUIRE_ALL_NON_TRUSTED_CERTS_STATUS);
- assertEquals(WifiEnterpriseConfig.OCSP_REQUIRE_ALL_NON_TRUSTED_CERTS_STATUS,
- enterpriseConfig.getOcsp());
- }
-
- /** Verifies that an exception is thrown when invalid OCSP is set. */
- @Test
- public void testInvalidOcspValue() {
- WifiEnterpriseConfig enterpriseConfig = new WifiEnterpriseConfig();
- try {
- enterpriseConfig.setOcsp(-1);
- fail("Should raise an IllegalArgumentException here.");
- } catch (IllegalArgumentException e) {
- // expected exception.
- }
- }
-
- /** Verifies that the EAP inner method is reset when we switch to Unauth-TLS */
- @Test
- public void eapPhase2MethodForUnauthTls() {
- // Initially select an EAP method that supports an phase2.
- mEnterpriseConfig.setEapMethod(Eap.PEAP);
- mEnterpriseConfig.setPhase2Method(Phase2.MSCHAPV2);
- assertEquals("PEAP", getSupplicantEapMethod());
- assertEquals("\"auth=MSCHAPV2\"", getSupplicantPhase2Method());
-
- // Change the EAP method to another type which supports a phase2.
- mEnterpriseConfig.setEapMethod(Eap.TTLS);
- assertEquals("TTLS", getSupplicantEapMethod());
- assertEquals("\"auth=MSCHAPV2\"", getSupplicantPhase2Method());
-
- // Change the EAP method to Unauth-TLS which does not support a phase2.
- mEnterpriseConfig.setEapMethod(Eap.UNAUTH_TLS);
- assertEquals(null, getSupplicantPhase2Method());
- }
-
- @Test
- public void testIsEnterpriseConfigSecure() {
- WifiEnterpriseConfig baseConfig = new WifiEnterpriseConfig();
- baseConfig.setEapMethod(Eap.PEAP);
- baseConfig.setPhase2Method(Phase2.MSCHAPV2);
- assertTrue(baseConfig.isInsecure());
-
- WifiEnterpriseConfig noMatchConfig = new WifiEnterpriseConfig(baseConfig);
- noMatchConfig.setCaCertificate(FakeKeys.CA_CERT0);
- // Missing match is insecure.
- assertTrue(noMatchConfig.isInsecure());
-
- WifiEnterpriseConfig noCaConfig = new WifiEnterpriseConfig(baseConfig);
- noCaConfig.setDomainSuffixMatch(TEST_DOMAIN_SUFFIX_MATCH);
- // Missing CA certificate is insecure.
- assertTrue(noCaConfig.isInsecure());
-
- WifiEnterpriseConfig secureConfig = new WifiEnterpriseConfig();
- secureConfig.setEapMethod(Eap.PEAP);
- secureConfig.setPhase2Method(Phase2.MSCHAPV2);
- secureConfig.setCaCertificate(FakeKeys.CA_CERT0);
- secureConfig.setDomainSuffixMatch(TEST_DOMAIN_SUFFIX_MATCH);
- assertFalse(secureConfig.isInsecure());
-
- WifiEnterpriseConfig secureConfigWithCaAlias = new WifiEnterpriseConfig();
- secureConfigWithCaAlias.setEapMethod(Eap.PEAP);
- secureConfigWithCaAlias.setPhase2Method(Phase2.MSCHAPV2);
- secureConfigWithCaAlias.setCaCertificateAliases(new String[]{"alias1", "alisa2"});
- secureConfigWithCaAlias.setDomainSuffixMatch(TEST_DOMAIN_SUFFIX_MATCH);
- assertFalse(secureConfigWithCaAlias.isInsecure());
- }
-
-}