diff options
author | TreeHugger Robot <treehugger-gerrit@google.com> | 2017-04-01 06:12:15 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2017-04-01 06:12:16 +0000 |
commit | 968b1098f6389047b075abacbfa316a012c722a5 (patch) | |
tree | bf198823b88be4a924e76028a91540d25ac38325 /tests | |
parent | bfeb0f81cfc23628978146cb84626cc20ef21b11 (diff) | |
parent | f331a6bf511cc9d105a45219548d0ad3feab5a70 (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.java | 36 |
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 |