diff options
author | evitayan <evitayan@google.com> | 2018-12-27 16:43:05 -0800 |
---|---|---|
committer | evitayan <evitayan@google.com> | 2019-01-10 16:00:37 -0800 |
commit | f5c70b0c5b1000d6cb7cec6c72e60f2ef852c3cd (patch) | |
tree | e9d5b7449f45de2b4c29ac0f63a213ebfa2288e7 /tests/iketests/src/java/com/android | |
parent | 66ea9c9aadce8393453a64a2f5fd4100ddeea05f (diff) | |
download | ike-f5c70b0c5b1000d6cb7cec6c72e60f2ef852c3cd.tar.gz |
Construct and encode outbound ID payload
This commit:
- Add constructors for building outbound ID payload
- Implement methods for encoding payload and getting payload length
- Fix wrong param description in IkeIdPayload constructor
Bug: 122677772
Test: FrameworksIkeTests IkeIdPayloadTest
Change-Id: I36d4a94a347a9d7d735df795ec995592ef323489
Diffstat (limited to 'tests/iketests/src/java/com/android')
-rw-r--r-- | tests/iketests/src/java/com/android/ike/ikev2/message/IkeIdPayloadTest.java | 35 |
1 files changed, 28 insertions, 7 deletions
diff --git a/tests/iketests/src/java/com/android/ike/ikev2/message/IkeIdPayloadTest.java b/tests/iketests/src/java/com/android/ike/ikev2/message/IkeIdPayloadTest.java index 4b4c02b7..849393cb 100644 --- a/tests/iketests/src/java/com/android/ike/ikev2/message/IkeIdPayloadTest.java +++ b/tests/iketests/src/java/com/android/ike/ikev2/message/IkeIdPayloadTest.java @@ -16,6 +16,7 @@ package com.android.ike.ikev2.message; +import static org.junit.Assert.assertArrayEquals; import static org.junit.Assert.assertEquals; import static org.junit.Assert.fail; @@ -26,28 +27,35 @@ import com.android.ike.ikev2.exceptions.AuthenticationFailedException; import org.junit.Test; import java.net.Inet4Address; +import java.nio.ByteBuffer; public final class IkeIdPayloadTest { - private static final String ID_PAYLOAD_RESPONDER_IP4_ADDR_HEX_STRING = "010000000a505050"; - private static final String ID_PAYLOAD_INITIATOR_FQDN_HEX_STRING = "020000006576697461"; - private static final String IP4_ADDR_STRING = "10.80.80.80"; + + private static final String IPV4_ADDR_ID_PAYLOAD_RESPONDER_HEX_STRING = + "2700000c01000000c0000264"; + private static final String IPV4_ADDR_ID_PAYLOAD_RESPONDER_BODY_HEX_STRING = "01000000c0000264"; + private static final String IPV4_ADDR_STRING = "192.0.2.100"; + + private static final int ID_TYPE_OFFSET = 0; @Test - public void testDecodeIp4AddrIdPayload() throws Exception { + public void testDecodeIpv4AddrIdPayload() throws Exception { byte[] inputPacket = - TestUtils.hexStringToByteArray(ID_PAYLOAD_RESPONDER_IP4_ADDR_HEX_STRING); + TestUtils.hexStringToByteArray(IPV4_ADDR_ID_PAYLOAD_RESPONDER_BODY_HEX_STRING); IkeIdPayload payload = new IkeIdPayload(false, inputPacket, false); assertEquals(IkePayload.PAYLOAD_TYPE_ID_RESPONDER, payload.payloadType); assertEquals(IkeIdentification.ID_TYPE_IPV4_ADDR, payload.ikeId.idType); IkeIpv4AddrIdentification ikeId = (IkeIpv4AddrIdentification) payload.ikeId; - Inet4Address expectedAddr = (Inet4Address) Inet4Address.getByName(IP4_ADDR_STRING); + Inet4Address expectedAddr = (Inet4Address) Inet4Address.getByName(IPV4_ADDR_STRING); assertEquals(expectedAddr, ikeId.ipv4Address); } @Test public void testDecodeUnsupportedIdType() throws Exception { - byte[] inputPacket = TestUtils.hexStringToByteArray(ID_PAYLOAD_INITIATOR_FQDN_HEX_STRING); + byte[] inputPacket = + TestUtils.hexStringToByteArray(IPV4_ADDR_ID_PAYLOAD_RESPONDER_BODY_HEX_STRING); + inputPacket[ID_TYPE_OFFSET] = 0; try { new IkeIdPayload(false, inputPacket, true); @@ -55,4 +63,17 @@ public final class IkeIdPayloadTest { } catch (AuthenticationFailedException expected) { } } + + @Test + public void testConstructAndEncodeIpv4AddrIdPayload() throws Exception { + Inet4Address ipv4Address = (Inet4Address) Inet4Address.getByName(IPV4_ADDR_STRING); + IkeIdPayload payload = new IkeIdPayload(false, new IkeIpv4AddrIdentification(ipv4Address)); + + ByteBuffer inputBuffer = ByteBuffer.allocate(payload.getPayloadLength()); + payload.encodeToByteBuffer(IkePayload.PAYLOAD_TYPE_AUTH, inputBuffer); + + byte[] expectedBytes = + TestUtils.hexStringToByteArray(IPV4_ADDR_ID_PAYLOAD_RESPONDER_HEX_STRING); + assertArrayEquals(expectedBytes, inputBuffer.array()); + } } |