diff options
author | evitayan <evitayan@google.com> | 2018-11-29 17:49:37 -0800 |
---|---|---|
committer | evitayan <evitayan@google.com> | 2019-01-08 16:31:57 -0800 |
commit | 66ea9c9aadce8393453a64a2f5fd4100ddeea05f (patch) | |
tree | f0afeb8c9bc16076fa98e1e0aece7bb2f7fbc6d3 /tests/iketests/src/java/com | |
parent | 21610156ef21561dfa4617ff1c0ed78015c8dee0 (diff) | |
download | ike-66ea9c9aadce8393453a64a2f5fd4100ddeea05f.tar.gz |
Implement DhGroupTransform
This commit:
- Implement DhGroupTransform
- Move constants of DhGroup from IkePayload to SaProposal
- Add NONE ID for integrity algorithm and DH group
Bug: 115994442
Test: FrameworksIkeTests IkeSaPayloadTest
Change-Id: I8c1fc535a7622b518deca46adc4db43bdd79dee0
Diffstat (limited to 'tests/iketests/src/java/com')
-rw-r--r-- | tests/iketests/src/java/com/android/ike/ikev2/message/IkeKePayloadTest.java | 5 | ||||
-rw-r--r-- | tests/iketests/src/java/com/android/ike/ikev2/message/IkeSaPayloadTest.java | 41 |
2 files changed, 39 insertions, 7 deletions
diff --git a/tests/iketests/src/java/com/android/ike/ikev2/message/IkeKePayloadTest.java b/tests/iketests/src/java/com/android/ike/ikev2/message/IkeKePayloadTest.java index 7d38d5c4..4f45f26d 100644 --- a/tests/iketests/src/java/com/android/ike/ikev2/message/IkeKePayloadTest.java +++ b/tests/iketests/src/java/com/android/ike/ikev2/message/IkeKePayloadTest.java @@ -24,6 +24,7 @@ import static org.junit.Assert.fail; import android.util.Pair; import com.android.ike.ikev2.IkeDhParams; +import com.android.ike.ikev2.SaProposal; import com.android.ike.ikev2.exceptions.InvalidSyntaxException; import com.android.ike.ikev2.utils.BigIntegerUtils; @@ -50,7 +51,7 @@ public final class IkeKePayloadTest { @IkePayload.PayloadType private static final int NEXT_PAYLOAD_TYPE = IkePayload.PAYLOAD_TYPE_NONCE; - private static final int EXPECTED_DH_GROUP = IkePayload.DH_GROUP_1024_BIT_MODP; + private static final int EXPECTED_DH_GROUP = SaProposal.DH_GROUP_1024_BIT_MODP; private static final int EXPECTED_KE_DATA_LEN = 128; @@ -138,7 +139,7 @@ public final class IkeKePayloadTest { @Test public void testGetIkeKePayload() throws Exception { Pair<DHPrivateKeySpec, IkeKePayload> pair = - IkeKePayload.getKePayload(IkePayload.DH_GROUP_1024_BIT_MODP); + IkeKePayload.getKePayload(SaProposal.DH_GROUP_1024_BIT_MODP); // Test DHPrivateKeySpec DHPrivateKeySpec privateKeySpec = pair.first; diff --git a/tests/iketests/src/java/com/android/ike/ikev2/message/IkeSaPayloadTest.java b/tests/iketests/src/java/com/android/ike/ikev2/message/IkeSaPayloadTest.java index a76a89c8..47dcac89 100644 --- a/tests/iketests/src/java/com/android/ike/ikev2/message/IkeSaPayloadTest.java +++ b/tests/iketests/src/java/com/android/ike/ikev2/message/IkeSaPayloadTest.java @@ -32,6 +32,7 @@ import com.android.ike.ikev2.exceptions.IkeException; import com.android.ike.ikev2.exceptions.InvalidSyntaxException; import com.android.ike.ikev2.message.IkeSaPayload.Attribute; import com.android.ike.ikev2.message.IkeSaPayload.AttributeDecoder; +import com.android.ike.ikev2.message.IkeSaPayload.DhGroupTransform; import com.android.ike.ikev2.message.IkeSaPayload.EncryptionTransform; import com.android.ike.ikev2.message.IkeSaPayload.IntegrityTransform; import com.android.ike.ikev2.message.IkeSaPayload.KeyLengthAttribute; @@ -75,6 +76,7 @@ public final class IkeSaPayloadTest { private static final String ENCR_TRANSFORM_RAW_PACKET = "0300000c0100000c800e0080"; private static final String PRF_TRANSFORM_RAW_PACKET = "0000000802000002"; private static final String INTEG_TRANSFORM_RAW_PACKET = "0300000803000002"; + private static final String DH_GROUP_TRANSFORM_RAW_PACKET = "0300000804000002"; private static final int TRANSFORM_TYPE_POSITION = 4; private static final int TRANSFORM_ID_POSITION = 7; @@ -114,6 +116,7 @@ public final class IkeSaPayloadTest { Pair<Attribute, Integer> pair = Attribute.readFrom(inputBuffer); Attribute attribute = pair.first; + assertTrue(attribute instanceof KeyLengthAttribute); assertEquals(Attribute.ATTRIBUTE_TYPE_KEY_LENGTH, attribute.type); assertEquals(KEY_LEN, ((KeyLengthAttribute) attribute).keyLength); } @@ -128,7 +131,7 @@ public final class IkeSaPayloadTest { Transform.sAttributeDecoder = mMockedAttributeDecoder; Transform transform = Transform.readFrom(inputBuffer); - + assertTrue(transform instanceof EncryptionTransform); assertEquals(Transform.TRANSFORM_TYPE_ENCR, transform.type); assertEquals(SaProposal.ENCRYPTION_ALGORITHM_AES_CBC, transform.id); assertTrue(transform.isSupported); @@ -156,7 +159,7 @@ public final class IkeSaPayloadTest { @Test public void testConstructEncryptionTransformWithUnsupportedId() throws Exception { try { - new EncryptionTransform(SaProposal.ENCRYPTION_ALGORITHM_3DES + 1); + new EncryptionTransform(-1); fail("Expected IllegalArgumentException for unsupported Transform ID"); } catch (IllegalArgumentException expected) { } @@ -181,6 +184,7 @@ public final class IkeSaPayloadTest { Transform.sAttributeDecoder = mMockedAttributeDecoder; Transform transform = Transform.readFrom(inputBuffer); + assertTrue(transform instanceof PrfTransform); assertEquals(Transform.TRANSFORM_TYPE_PRF, transform.type); assertEquals(SaProposal.PSEUDORANDOM_FUNCTION_HMAC_SHA1, transform.id); assertTrue(transform.isSupported); @@ -189,7 +193,7 @@ public final class IkeSaPayloadTest { @Test public void testConstructPrfTransformWithUnsupportedId() throws Exception { try { - new PrfTransform(SaProposal.PSEUDORANDOM_FUNCTION_AES128_XCBC + 1); + new PrfTransform(-1); fail("Expected IllegalArgumentException for unsupported Transform ID"); } catch (IllegalArgumentException expected) { } @@ -205,6 +209,7 @@ public final class IkeSaPayloadTest { Transform.sAttributeDecoder = mMockedAttributeDecoder; Transform transform = Transform.readFrom(inputBuffer); + assertTrue(transform instanceof IntegrityTransform); assertEquals(Transform.TRANSFORM_TYPE_INTEG, transform.type); assertEquals(SaProposal.INTEGRITY_ALGORITHM_HMAC_SHA1_96, transform.id); assertTrue(transform.isSupported); @@ -220,6 +225,7 @@ public final class IkeSaPayloadTest { Transform.sAttributeDecoder = mMockedAttributeDecoder; Transform transform = Transform.readFrom(inputBuffer); + assertTrue(transform instanceof IntegrityTransform); assertEquals(Transform.TRANSFORM_TYPE_INTEG, transform.type); assertEquals(SaProposal.INTEGRITY_ALGORITHM_HMAC_SHA1_96, transform.id); assertFalse(transform.isSupported); @@ -228,7 +234,32 @@ public final class IkeSaPayloadTest { @Test public void testConstructIntegrityTransformWithUnsupportedId() throws Exception { try { - new IntegrityTransform(SaProposal.INTEGRITY_ALGORITHM_HMAC_SHA1_96 + 1); + new IntegrityTransform(-1); + fail("Expected IllegalArgumentException for unsupported Transform ID"); + } catch (IllegalArgumentException expected) { + } + } + + @Test + public void testDecodeDhGroupTransform() throws Exception { + byte[] inputPacket = TestUtils.hexStringToByteArray(DH_GROUP_TRANSFORM_RAW_PACKET); + ByteBuffer inputBuffer = ByteBuffer.wrap(inputPacket); + + when(mMockedAttributeDecoder.decodeAttributes(anyInt(), any())) + .thenReturn(new LinkedList<Attribute>()); + Transform.sAttributeDecoder = mMockedAttributeDecoder; + + Transform transform = Transform.readFrom(inputBuffer); + assertTrue(transform instanceof DhGroupTransform); + assertEquals(Transform.TRANSFORM_TYPE_DH, transform.type); + assertEquals(SaProposal.DH_GROUP_1024_BIT_MODP, transform.id); + assertTrue(transform.isSupported); + } + + @Test + public void testConstructDhGroupTransformWithUnsupportedId() throws Exception { + try { + new DhGroupTransform(-1); fail("Expected IllegalArgumentException for unsupported Transform ID"); } catch (IllegalArgumentException expected) { } @@ -246,7 +277,7 @@ public final class IkeSaPayloadTest { Transform transform = Transform.readFrom(inputBuffer); - assertEquals(UnrecognizedTransform.class, transform.getClass()); + assertTrue(transform instanceof UnrecognizedTransform); } @Test |