Loading core/java/android/net/IpSecConfig.java +19 −0 Original line number Diff line number Diff line Loading @@ -218,6 +218,25 @@ public final class IpSecConfig implements Parcelable { @VisibleForTesting public IpSecConfig() {} /** Copy constructor */ @VisibleForTesting public IpSecConfig(IpSecConfig c) { mMode = c.mMode; mSourceAddress = c.mSourceAddress; mDestinationAddress = c.mDestinationAddress; mNetwork = c.mNetwork; mSpiResourceId = c.mSpiResourceId; mEncryption = c.mEncryption; mAuthentication = c.mAuthentication; mAuthenticatedEncryption = c.mAuthenticatedEncryption; mEncapType = c.mEncapType; mEncapSocketResourceId = c.mEncapSocketResourceId; mEncapRemotePort = c.mEncapRemotePort; mNattKeepaliveInterval = c.mNattKeepaliveInterval; mMarkValue = c.mMarkValue; mMarkMask = c.mMarkMask; } private IpSecConfig(Parcel in) { mMode = in.readInt(); mSourceAddress = in.readString(); Loading core/java/android/net/IpSecTransform.java +16 −2 Original line number Diff line number Diff line Loading @@ -84,9 +84,11 @@ public final class IpSecTransform implements AutoCloseable { @Retention(RetentionPolicy.SOURCE) public @interface EncapType {} private IpSecTransform(Context context, IpSecConfig config) { /** @hide */ @VisibleForTesting public IpSecTransform(Context context, IpSecConfig config) { mContext = context; mConfig = config; mConfig = new IpSecConfig(config); mResourceId = INVALID_RESOURCE_ID; } Loading Loading @@ -142,6 +144,18 @@ public final class IpSecTransform implements AutoCloseable { return this; } /** * Equals method used for testing * * @hide */ @VisibleForTesting public static boolean equals(IpSecTransform lhs, IpSecTransform rhs) { if (lhs == null || rhs == null) return (lhs == rhs); return IpSecConfig.equals(lhs.getConfig(), rhs.getConfig()) && lhs.mResourceId == rhs.mResourceId; } /** * Deactivate this {@code IpSecTransform} and free allocated resources. * Loading tests/net/java/android/net/IpSecConfigTest.java +34 −9 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ package android.net; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; Loading Loading @@ -48,18 +49,12 @@ public class IpSecConfigTest { assertEquals(IpSecManager.INVALID_RESOURCE_ID, c.getSpiResourceId()); } @Test public void testParcelUnparcel() throws Exception { assertParcelingIsLossless(new IpSecConfig()); private IpSecConfig getSampleConfig() { IpSecConfig c = new IpSecConfig(); c.setMode(IpSecTransform.MODE_TUNNEL); c.setSourceAddress("0.0.0.0"); c.setDestinationAddress("1.2.3.4"); c.setEncapType(android.system.OsConstants.UDP_ENCAP_ESPINUDP); c.setEncapSocketResourceId(7); c.setEncapRemotePort(22); c.setNattKeepaliveInterval(42); c.setSpiResourceId(1984); c.setEncryption( new IpSecAlgorithm( IpSecAlgorithm.CRYPT_AES_CBC, Loading @@ -68,7 +63,37 @@ public class IpSecConfigTest { new IpSecAlgorithm( IpSecAlgorithm.AUTH_HMAC_MD5, new byte[] {1, 2, 3, 4, 5, 6, 7, 8, 9, 0xA, 0xB, 0xC, 0xD, 0xE, 0xF, 0})); c.setSpiResourceId(1984); c.setAuthenticatedEncryption( new IpSecAlgorithm( IpSecAlgorithm.AUTH_CRYPT_AES_GCM, new byte[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0xA, 0xB, 0xC, 0xD, 0xE, 0xF, 0, 1, 2, 3, 4 }, 128)); c.setEncapType(android.system.OsConstants.UDP_ENCAP_ESPINUDP); c.setEncapSocketResourceId(7); c.setEncapRemotePort(22); c.setNattKeepaliveInterval(42); c.setMarkValue(12); c.setMarkMask(23); return c; } @Test public void testCopyConstructor() { IpSecConfig original = getSampleConfig(); IpSecConfig copy = new IpSecConfig(original); assertTrue(IpSecConfig.equals(original, copy)); assertFalse(original == copy); } @Test public void testParcelUnparcel() throws Exception { assertParcelingIsLossless(new IpSecConfig()); IpSecConfig c = getSampleConfig(); assertParcelingIsLossless(c); } Loading tests/net/java/android/net/IpSecTransformTest.java 0 → 100644 +61 −0 Original line number Diff line number Diff line /* * Copyright (C) 2017 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; import static org.junit.Assert.assertFalse; import android.support.test.filters.SmallTest; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.JUnit4; /** Unit tests for {@link IpSecTransform}. */ @SmallTest @RunWith(JUnit4.class) public class IpSecTransformTest { @Test public void testCreateTransformCopiesConfig() { // Create a config with a few parameters to make sure it's not empty IpSecConfig config = new IpSecConfig(); config.setSourceAddress("0.0.0.0"); config.setDestinationAddress("1.2.3.4"); config.setSpiResourceId(1984); IpSecTransform preModification = new IpSecTransform(null, config); config.setSpiResourceId(1985); IpSecTransform postModification = new IpSecTransform(null, config); assertFalse(IpSecTransform.equals(preModification, postModification)); } @Test public void testCreateTransformsWithSameConfigEqual() { // Create a config with a few parameters to make sure it's not empty IpSecConfig config = new IpSecConfig(); config.setSourceAddress("0.0.0.0"); config.setDestinationAddress("1.2.3.4"); config.setSpiResourceId(1984); IpSecTransform config1 = new IpSecTransform(null, config); IpSecTransform config2 = new IpSecTransform(null, config); assertFalse(IpSecTransform.equals(config1, config2)); } } Loading
core/java/android/net/IpSecConfig.java +19 −0 Original line number Diff line number Diff line Loading @@ -218,6 +218,25 @@ public final class IpSecConfig implements Parcelable { @VisibleForTesting public IpSecConfig() {} /** Copy constructor */ @VisibleForTesting public IpSecConfig(IpSecConfig c) { mMode = c.mMode; mSourceAddress = c.mSourceAddress; mDestinationAddress = c.mDestinationAddress; mNetwork = c.mNetwork; mSpiResourceId = c.mSpiResourceId; mEncryption = c.mEncryption; mAuthentication = c.mAuthentication; mAuthenticatedEncryption = c.mAuthenticatedEncryption; mEncapType = c.mEncapType; mEncapSocketResourceId = c.mEncapSocketResourceId; mEncapRemotePort = c.mEncapRemotePort; mNattKeepaliveInterval = c.mNattKeepaliveInterval; mMarkValue = c.mMarkValue; mMarkMask = c.mMarkMask; } private IpSecConfig(Parcel in) { mMode = in.readInt(); mSourceAddress = in.readString(); Loading
core/java/android/net/IpSecTransform.java +16 −2 Original line number Diff line number Diff line Loading @@ -84,9 +84,11 @@ public final class IpSecTransform implements AutoCloseable { @Retention(RetentionPolicy.SOURCE) public @interface EncapType {} private IpSecTransform(Context context, IpSecConfig config) { /** @hide */ @VisibleForTesting public IpSecTransform(Context context, IpSecConfig config) { mContext = context; mConfig = config; mConfig = new IpSecConfig(config); mResourceId = INVALID_RESOURCE_ID; } Loading Loading @@ -142,6 +144,18 @@ public final class IpSecTransform implements AutoCloseable { return this; } /** * Equals method used for testing * * @hide */ @VisibleForTesting public static boolean equals(IpSecTransform lhs, IpSecTransform rhs) { if (lhs == null || rhs == null) return (lhs == rhs); return IpSecConfig.equals(lhs.getConfig(), rhs.getConfig()) && lhs.mResourceId == rhs.mResourceId; } /** * Deactivate this {@code IpSecTransform} and free allocated resources. * Loading
tests/net/java/android/net/IpSecConfigTest.java +34 −9 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ package android.net; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; Loading Loading @@ -48,18 +49,12 @@ public class IpSecConfigTest { assertEquals(IpSecManager.INVALID_RESOURCE_ID, c.getSpiResourceId()); } @Test public void testParcelUnparcel() throws Exception { assertParcelingIsLossless(new IpSecConfig()); private IpSecConfig getSampleConfig() { IpSecConfig c = new IpSecConfig(); c.setMode(IpSecTransform.MODE_TUNNEL); c.setSourceAddress("0.0.0.0"); c.setDestinationAddress("1.2.3.4"); c.setEncapType(android.system.OsConstants.UDP_ENCAP_ESPINUDP); c.setEncapSocketResourceId(7); c.setEncapRemotePort(22); c.setNattKeepaliveInterval(42); c.setSpiResourceId(1984); c.setEncryption( new IpSecAlgorithm( IpSecAlgorithm.CRYPT_AES_CBC, Loading @@ -68,7 +63,37 @@ public class IpSecConfigTest { new IpSecAlgorithm( IpSecAlgorithm.AUTH_HMAC_MD5, new byte[] {1, 2, 3, 4, 5, 6, 7, 8, 9, 0xA, 0xB, 0xC, 0xD, 0xE, 0xF, 0})); c.setSpiResourceId(1984); c.setAuthenticatedEncryption( new IpSecAlgorithm( IpSecAlgorithm.AUTH_CRYPT_AES_GCM, new byte[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0xA, 0xB, 0xC, 0xD, 0xE, 0xF, 0, 1, 2, 3, 4 }, 128)); c.setEncapType(android.system.OsConstants.UDP_ENCAP_ESPINUDP); c.setEncapSocketResourceId(7); c.setEncapRemotePort(22); c.setNattKeepaliveInterval(42); c.setMarkValue(12); c.setMarkMask(23); return c; } @Test public void testCopyConstructor() { IpSecConfig original = getSampleConfig(); IpSecConfig copy = new IpSecConfig(original); assertTrue(IpSecConfig.equals(original, copy)); assertFalse(original == copy); } @Test public void testParcelUnparcel() throws Exception { assertParcelingIsLossless(new IpSecConfig()); IpSecConfig c = getSampleConfig(); assertParcelingIsLossless(c); } Loading
tests/net/java/android/net/IpSecTransformTest.java 0 → 100644 +61 −0 Original line number Diff line number Diff line /* * Copyright (C) 2017 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; import static org.junit.Assert.assertFalse; import android.support.test.filters.SmallTest; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.JUnit4; /** Unit tests for {@link IpSecTransform}. */ @SmallTest @RunWith(JUnit4.class) public class IpSecTransformTest { @Test public void testCreateTransformCopiesConfig() { // Create a config with a few parameters to make sure it's not empty IpSecConfig config = new IpSecConfig(); config.setSourceAddress("0.0.0.0"); config.setDestinationAddress("1.2.3.4"); config.setSpiResourceId(1984); IpSecTransform preModification = new IpSecTransform(null, config); config.setSpiResourceId(1985); IpSecTransform postModification = new IpSecTransform(null, config); assertFalse(IpSecTransform.equals(preModification, postModification)); } @Test public void testCreateTransformsWithSameConfigEqual() { // Create a config with a few parameters to make sure it's not empty IpSecConfig config = new IpSecConfig(); config.setSourceAddress("0.0.0.0"); config.setDestinationAddress("1.2.3.4"); config.setSpiResourceId(1984); IpSecTransform config1 = new IpSecTransform(null, config); IpSecTransform config2 = new IpSecTransform(null, config); assertFalse(IpSecTransform.equals(config1, config2)); } }