aboutsummaryrefslogtreecommitdiff
path: root/tests/iketests/src/java/com
diff options
context:
space:
mode:
authorCody Kesting <ckesting@google.com>2019-10-14 17:29:26 -0700
committerCody Kesting <ckesting@google.com>2019-10-19 15:15:48 -0700
commit18c38919407daad2df547918ebe4fddd3934a121 (patch)
tree1968409deaff225f03b718576c6e0ab13a03596f /tests/iketests/src/java/com
parente519e80734daf8c79ab79dd984720c09124416de (diff)
downloadike-18c38919407daad2df547918ebe4fddd3934a121.tar.gz
Create EAP-AKA' Attribute Factory and AT_KDF_INPUT.
EAP-AKA' needs an attribute factory to be used for decoding EAP-AKA' specific attributes. The AT_KDF_INPUT attribute is also defined per RFC 5448#3.1. Bug: 142663198 Test: added AtKdfInputTest. Test: atest FrameworksIkeTests Change-Id: I285d4151cd8b1dc3ec592b2ff14e1b0d549af8e5
Diffstat (limited to 'tests/iketests/src/java/com')
-rw-r--r--tests/iketests/src/java/com/android/ike/eap/message/simaka/attributes/AtKdfInputTest.java78
-rw-r--r--tests/iketests/src/java/com/android/ike/eap/message/simaka/attributes/EapTestAttributeDefinitions.java7
2 files changed, 85 insertions, 0 deletions
diff --git a/tests/iketests/src/java/com/android/ike/eap/message/simaka/attributes/AtKdfInputTest.java b/tests/iketests/src/java/com/android/ike/eap/message/simaka/attributes/AtKdfInputTest.java
new file mode 100644
index 00000000..dc13f087
--- /dev/null
+++ b/tests/iketests/src/java/com/android/ike/eap/message/simaka/attributes/AtKdfInputTest.java
@@ -0,0 +1,78 @@
+/*
+ * Copyright (C) 2019 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 com.android.ike.eap.message.simaka.attributes;
+
+import static com.android.ike.eap.message.simaka.EapSimAkaAttribute.EAP_AT_KDF_INPUT;
+import static com.android.ike.eap.message.simaka.attributes.EapTestAttributeDefinitions.AT_KDF_INPUT;
+import static com.android.ike.eap.message.simaka.attributes.EapTestAttributeDefinitions.AT_KDF_INPUT_EMPTY_NETWORK_NAME;
+import static com.android.ike.eap.message.simaka.attributes.EapTestAttributeDefinitions.NETWORK_NAME_BYTES;
+
+import static org.junit.Assert.assertArrayEquals;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+
+import com.android.ike.eap.message.simaka.EapAkaPrimeAttributeFactory;
+import com.android.ike.eap.message.simaka.EapSimAkaAttribute;
+import com.android.ike.eap.message.simaka.EapSimAkaAttribute.AtKdfInput;
+
+import org.junit.Before;
+import org.junit.Test;
+
+import java.nio.ByteBuffer;
+
+public class AtKdfInputTest {
+ private EapAkaPrimeAttributeFactory mAttributeFactory;
+
+ @Before
+ public void setUp() {
+ mAttributeFactory = EapAkaPrimeAttributeFactory.getInstance();
+ }
+
+ @Test
+ public void testDecode() throws Exception {
+ ByteBuffer input = ByteBuffer.wrap(AT_KDF_INPUT);
+ EapSimAkaAttribute result = mAttributeFactory.getAttribute(input);
+
+ assertFalse(input.hasRemaining());
+ AtKdfInput atKdfInput = (AtKdfInput) result;
+ assertEquals(EAP_AT_KDF_INPUT, atKdfInput.attributeType);
+ assertEquals(AT_KDF_INPUT.length, atKdfInput.lengthInBytes);
+ assertArrayEquals(NETWORK_NAME_BYTES, atKdfInput.networkName);
+ }
+
+ @Test
+ public void testDecodeEmptyNetworkName() throws Exception {
+ ByteBuffer input = ByteBuffer.wrap(AT_KDF_INPUT_EMPTY_NETWORK_NAME);
+ EapSimAkaAttribute result = mAttributeFactory.getAttribute(input);
+
+ assertFalse(input.hasRemaining());
+ AtKdfInput atKdfInput = (AtKdfInput) result;
+ assertEquals(EAP_AT_KDF_INPUT, atKdfInput.attributeType);
+ assertEquals(AT_KDF_INPUT_EMPTY_NETWORK_NAME.length, atKdfInput.lengthInBytes);
+ assertArrayEquals(new byte[0], atKdfInput.networkName);
+ }
+
+ @Test
+ public void testEncode() throws Exception {
+ AtKdfInput atKdfInput = new AtKdfInput(AT_KDF_INPUT.length, NETWORK_NAME_BYTES);
+ ByteBuffer result = ByteBuffer.allocate(AT_KDF_INPUT.length);
+
+ atKdfInput.encode(result);
+ assertArrayEquals(AT_KDF_INPUT, result.array());
+ assertFalse(result.hasRemaining());
+ }
+}
diff --git a/tests/iketests/src/java/com/android/ike/eap/message/simaka/attributes/EapTestAttributeDefinitions.java b/tests/iketests/src/java/com/android/ike/eap/message/simaka/attributes/EapTestAttributeDefinitions.java
index c17c51e8..ba30724c 100644
--- a/tests/iketests/src/java/com/android/ike/eap/message/simaka/attributes/EapTestAttributeDefinitions.java
+++ b/tests/iketests/src/java/com/android/ike/eap/message/simaka/attributes/EapTestAttributeDefinitions.java
@@ -74,6 +74,13 @@ public class EapTestAttributeDefinitions {
public static final byte[] AUTS_BYTES = hexStringToByteArray(AUTS);
public static final byte[] AT_AUTS = hexStringToByteArray("0404" + AUTS);
+ // Network Name = "android.net"
+ public static final String NETWORK_NAME_HEX = "616E64726F69642E6E6574";
+ public static final byte[] NETWORK_NAME_BYTES = hexStringToByteArray(NETWORK_NAME_HEX);
+ public static final byte[] AT_KDF_INPUT =
+ hexStringToByteArray("1704000B" + NETWORK_NAME_HEX + "00");
+ public static final byte[] AT_KDF_INPUT_EMPTY_NETWORK_NAME = hexStringToByteArray("17010000");
+
public static final byte[] AT_VERSION_LIST_INVALID_LENGTH = hexStringToByteArray("0F020003");
public static final byte[] AT_SELECTED_VERSION_INVALID_LENGTH =
hexStringToByteArray("10020001");