summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorTreeHugger Robot <treehugger-gerrit@google.com>2017-04-01 06:12:15 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2017-04-01 06:12:16 +0000
commit968b1098f6389047b075abacbfa316a012c722a5 (patch)
treebf198823b88be4a924e76028a91540d25ac38325 /tests
parentbfeb0f81cfc23628978146cb84626cc20ef21b11 (diff)
parentf331a6bf511cc9d105a45219548d0ad3feab5a70 (diff)
Merge "hotspot2: verify CA certificate before installing Passpoint provider" into oc-dev
Diffstat (limited to 'tests')
-rw-r--r--tests/wifitests/src/com/android/server/wifi/hotspot2/PasspointManagerTest.java36
1 files changed, 36 insertions, 0 deletions
diff --git a/tests/wifitests/src/com/android/server/wifi/hotspot2/PasspointManagerTest.java b/tests/wifitests/src/com/android/server/wifi/hotspot2/PasspointManagerTest.java
index 5ac94ec78..28d7e2df0 100644
--- a/tests/wifitests/src/com/android/server/wifi/hotspot2/PasspointManagerTest.java
+++ b/tests/wifitests/src/com/android/server/wifi/hotspot2/PasspointManagerTest.java
@@ -35,6 +35,7 @@ import static org.mockito.Mockito.any;
import static org.mockito.Mockito.anyBoolean;
import static org.mockito.Mockito.anyLong;
import static org.mockito.Mockito.anyMap;
+import static org.mockito.Mockito.doThrow;
import static org.mockito.Mockito.eq;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never;
@@ -77,6 +78,8 @@ import org.mockito.ArgumentCaptor;
import org.mockito.Mock;
import java.nio.charset.StandardCharsets;
+import java.security.GeneralSecurityException;
+import java.security.cert.X509Certificate;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
@@ -113,6 +116,7 @@ public class PasspointManagerTest {
@Mock PasspointEventHandler.Callbacks mCallbacks;
@Mock AnqpCache mAnqpCache;
@Mock ANQPRequestManager mAnqpRequestManager;
+ @Mock CertificateVerifier mCertVerifier;
@Mock WifiConfigManager mWifiConfigManager;
@Mock WifiConfigStore mWifiConfigStore;
@Mock PasspointConfigStoreData.DataSource mDataSource;
@@ -125,6 +129,7 @@ public class PasspointManagerTest {
when(mObjectFactory.makeAnqpCache(mClock)).thenReturn(mAnqpCache);
when(mObjectFactory.makeANQPRequestManager(any(), eq(mClock)))
.thenReturn(mAnqpRequestManager);
+ when(mObjectFactory.makeCertificateVerifier()).thenReturn(mCertVerifier);
mManager = new PasspointManager(mContext, mWifiNative, mWifiKeyStore, mClock,
mSimAccessor, mObjectFactory, mWifiConfigManager, mWifiConfigStore);
ArgumentCaptor<PasspointEventHandler.Callbacks> callbacks =
@@ -550,6 +555,37 @@ public class PasspointManagerTest {
}
/**
+ * Verify that adding a provider with an invalid CA certificate will fail.
+ *
+ * @throws Exception
+ */
+ @Test
+ public void addProviderWithInvalidCaCert() throws Exception {
+ PasspointConfiguration config = createTestConfigWithUserCredential();
+ doThrow(new GeneralSecurityException())
+ .when(mCertVerifier).verifyCaCert(any(X509Certificate.class));
+ assertFalse(mManager.addOrUpdateProvider(config));
+ }
+
+ /**
+ * Verify that adding a provider with R2 configuration will not perform CA certificate
+ * verification.
+ *
+ * @throws Exception
+ */
+ @Test
+ public void addProviderWithR2Config() throws Exception {
+ PasspointConfiguration config = createTestConfigWithUserCredential();
+ config.setUpdateIdentifier(1);
+ PasspointProvider provider = createMockProvider(config);
+ when(mObjectFactory.makePasspointProvider(eq(config), eq(mWifiKeyStore),
+ eq(mSimAccessor), anyLong())).thenReturn(provider);
+ assertTrue(mManager.addOrUpdateProvider(config));
+ verify(mCertVerifier, never()).verifyCaCert(any(X509Certificate.class));
+ verifyInstalledConfig(config);
+ }
+
+ /**
* Verify that removing a non-existing provider will fail.
*
* @throws Exception