Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f2074ea6 authored by nharold's avatar nharold Committed by android-build-merger
Browse files

Merge changes from topic "ipsec-oneway-transform"

am: 809bcfc4

Change-Id: If98285e2bd41e2eedaf81f1ff0e5f2b2d3827f91
parents f4fc2714 809bcfc4
Loading
Loading
Loading
Loading
+6 −3
Original line number Diff line number Diff line
@@ -56,10 +56,11 @@ public class IpSecServiceParameterizedTest {
    private static final int TEST_SPI = 0xD1201D;

    private final String mDestinationAddr;
    private final String mSourceAddr;

    @Parameterized.Parameters
    public static Collection ipSecConfigs() {
        return Arrays.asList(new Object[][] {{"8.8.4.4"}, {"2601::10"}});
        return Arrays.asList(new Object[][] {{"1.2.3.4", "8.8.4.4"}, {"2601::2", "2601::10"}});
    }

    private static final byte[] AEAD_KEY = {
@@ -94,8 +95,9 @@ public class IpSecServiceParameterizedTest {
    private static final IpSecAlgorithm AEAD_ALGO =
            new IpSecAlgorithm(IpSecAlgorithm.AUTH_CRYPT_AES_GCM, AEAD_KEY, 128);

    public IpSecServiceParameterizedTest(String remoteAddr) {
        mDestinationAddr = remoteAddr;
    public IpSecServiceParameterizedTest(String sourceAddr, String destAddr) {
        mSourceAddr = sourceAddr;
        mDestinationAddr = destAddr;
    }

    @Before
@@ -192,6 +194,7 @@ public class IpSecServiceParameterizedTest {

    private void addDefaultSpisAndRemoteAddrToIpSecConfig(IpSecConfig config) throws Exception {
        config.setSpiResourceId(getNewSpiResourceId(mDestinationAddr, TEST_SPI));
        config.setSourceAddress(mSourceAddr);
        config.setDestinationAddress(mDestinationAddr);
    }

+55 −66
Original line number Diff line number Diff line
@@ -105,9 +105,6 @@ public class IpSecServiceTest {
    private static final IpSecAlgorithm AEAD_ALGO =
            new IpSecAlgorithm(IpSecAlgorithm.AUTH_CRYPT_AES_GCM, AEAD_KEY, 128);

    private static final int[] DIRECTIONS =
            new int[] {IpSecTransform.DIRECTION_IN, IpSecTransform.DIRECTION_OUT};

    static {
        try {
            INADDR_ANY = InetAddress.getByAddress(new byte[] {0, 0, 0, 0});
@@ -303,83 +300,75 @@ public class IpSecServiceTest {

    @Test
    public void testValidateAlgorithmsAuth() {
        for (int direction : DIRECTIONS) {
        // Validate that correct algorithm type succeeds
        IpSecConfig config = new IpSecConfig();
            config.setAuthentication(direction, AUTH_ALGO);
            mIpSecService.validateAlgorithms(config, direction);
        config.setAuthentication(AUTH_ALGO);
        mIpSecService.validateAlgorithms(config);

        // Validate that incorrect algorithm types fails
        for (IpSecAlgorithm algo : new IpSecAlgorithm[] {CRYPT_ALGO, AEAD_ALGO}) {
            try {
                config = new IpSecConfig();
                    config.setAuthentication(direction, algo);
                    mIpSecService.validateAlgorithms(config, direction);
                config.setAuthentication(algo);
                mIpSecService.validateAlgorithms(config);
                fail("Did not throw exception on invalid algorithm type");
            } catch (IllegalArgumentException expected) {
            }
        }
    }
    }

    @Test
    public void testValidateAlgorithmsCrypt() {
        for (int direction : DIRECTIONS) {
        // Validate that correct algorithm type succeeds
        IpSecConfig config = new IpSecConfig();
            config.setEncryption(direction, CRYPT_ALGO);
            mIpSecService.validateAlgorithms(config, direction);
        config.setEncryption(CRYPT_ALGO);
        mIpSecService.validateAlgorithms(config);

        // Validate that incorrect algorithm types fails
        for (IpSecAlgorithm algo : new IpSecAlgorithm[] {AUTH_ALGO, AEAD_ALGO}) {
            try {
                config = new IpSecConfig();
                    config.setEncryption(direction, algo);
                    mIpSecService.validateAlgorithms(config, direction);
                config.setEncryption(algo);
                mIpSecService.validateAlgorithms(config);
                fail("Did not throw exception on invalid algorithm type");
            } catch (IllegalArgumentException expected) {
            }
        }
    }
    }

    @Test
    public void testValidateAlgorithmsAead() {
        for (int direction : DIRECTIONS) {
        // Validate that correct algorithm type succeeds
        IpSecConfig config = new IpSecConfig();
            config.setAuthenticatedEncryption(direction, AEAD_ALGO);
            mIpSecService.validateAlgorithms(config, direction);
        config.setAuthenticatedEncryption(AEAD_ALGO);
        mIpSecService.validateAlgorithms(config);

        // Validate that incorrect algorithm types fails
        for (IpSecAlgorithm algo : new IpSecAlgorithm[] {AUTH_ALGO, CRYPT_ALGO}) {
            try {
                config = new IpSecConfig();
                    config.setAuthenticatedEncryption(direction, algo);
                    mIpSecService.validateAlgorithms(config, direction);
                config.setAuthenticatedEncryption(algo);
                mIpSecService.validateAlgorithms(config);
                fail("Did not throw exception on invalid algorithm type");
            } catch (IllegalArgumentException expected) {
            }
        }
    }
    }

    @Test
    public void testValidateAlgorithmsAuthCrypt() {
        for (int direction : DIRECTIONS) {
        // Validate that correct algorithm type succeeds
        IpSecConfig config = new IpSecConfig();
            config.setAuthentication(direction, AUTH_ALGO);
            config.setEncryption(direction, CRYPT_ALGO);
            mIpSecService.validateAlgorithms(config, direction);
        }
        config.setAuthentication(AUTH_ALGO);
        config.setEncryption(CRYPT_ALGO);
        mIpSecService.validateAlgorithms(config);
    }

    @Test
    public void testValidateAlgorithmsNoAlgorithms() {
        IpSecConfig config = new IpSecConfig();
        try {
            mIpSecService.validateAlgorithms(config, IpSecTransform.DIRECTION_IN);
            mIpSecService.validateAlgorithms(config);
            fail("Expected exception; no algorithms specified");
        } catch (IllegalArgumentException expected) {
        }
@@ -388,10 +377,10 @@ public class IpSecServiceTest {
    @Test
    public void testValidateAlgorithmsAeadWithAuth() {
        IpSecConfig config = new IpSecConfig();
        config.setAuthenticatedEncryption(IpSecTransform.DIRECTION_IN, AEAD_ALGO);
        config.setAuthentication(IpSecTransform.DIRECTION_IN, AUTH_ALGO);
        config.setAuthenticatedEncryption(AEAD_ALGO);
        config.setAuthentication(AUTH_ALGO);
        try {
            mIpSecService.validateAlgorithms(config, IpSecTransform.DIRECTION_IN);
            mIpSecService.validateAlgorithms(config);
            fail("Expected exception; both AEAD and auth algorithm specified");
        } catch (IllegalArgumentException expected) {
        }
@@ -400,10 +389,10 @@ public class IpSecServiceTest {
    @Test
    public void testValidateAlgorithmsAeadWithCrypt() {
        IpSecConfig config = new IpSecConfig();
        config.setAuthenticatedEncryption(IpSecTransform.DIRECTION_IN, AEAD_ALGO);
        config.setEncryption(IpSecTransform.DIRECTION_IN, CRYPT_ALGO);
        config.setAuthenticatedEncryption(AEAD_ALGO);
        config.setEncryption(CRYPT_ALGO);
        try {
            mIpSecService.validateAlgorithms(config, IpSecTransform.DIRECTION_IN);
            mIpSecService.validateAlgorithms(config);
            fail("Expected exception; both AEAD and crypt algorithm specified");
        } catch (IllegalArgumentException expected) {
        }
@@ -412,11 +401,11 @@ public class IpSecServiceTest {
    @Test
    public void testValidateAlgorithmsAeadWithAuthAndCrypt() {
        IpSecConfig config = new IpSecConfig();
        config.setAuthenticatedEncryption(IpSecTransform.DIRECTION_IN, AEAD_ALGO);
        config.setAuthentication(IpSecTransform.DIRECTION_IN, AUTH_ALGO);
        config.setEncryption(IpSecTransform.DIRECTION_IN, CRYPT_ALGO);
        config.setAuthenticatedEncryption(AEAD_ALGO);
        config.setAuthentication(AUTH_ALGO);
        config.setEncryption(CRYPT_ALGO);
        try {
            mIpSecService.validateAlgorithms(config, IpSecTransform.DIRECTION_IN);
            mIpSecService.validateAlgorithms(config);
            fail("Expected exception; AEAD, auth and crypt algorithm specified");
        } catch (IllegalArgumentException expected) {
        }