diff options
author | Cody Kesting <ckesting@google.com> | 2019-10-14 18:55:39 -0700 |
---|---|---|
committer | Cody Kesting <ckesting@google.com> | 2019-10-19 15:15:48 -0700 |
commit | e3b80f61c6576c4d9468aa1ba1d8a73af30fbc41 (patch) | |
tree | 840d44b46db7be96a997e86058f57551a0bab3be /tests/iketests | |
parent | 18c38919407daad2df547918ebe4fddd3934a121 (diff) | |
download | ike-e3b80f61c6576c4d9468aa1ba1d8a73af30fbc41.tar.gz |
Define EAP_AT_KDF attribute for EAP-AKA'.
Bug: 142663198
Test: added AtKdfTest.
Test: atest FrameworksIkeTests
Change-Id: I6b9f6e1fe98c10f4a20f1525409a8340ccfaebdf
Diffstat (limited to 'tests/iketests')
2 files changed, 81 insertions, 0 deletions
diff --git a/tests/iketests/src/java/com/android/ike/eap/message/simaka/attributes/AtKdfTest.java b/tests/iketests/src/java/com/android/ike/eap/message/simaka/attributes/AtKdfTest.java new file mode 100644 index 00000000..0a1209c8 --- /dev/null +++ b/tests/iketests/src/java/com/android/ike/eap/message/simaka/attributes/AtKdfTest.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; +import static com.android.ike.eap.message.simaka.attributes.EapTestAttributeDefinitions.AT_KDF; +import static com.android.ike.eap.message.simaka.attributes.EapTestAttributeDefinitions.AT_KDF_INVALID_LENGTH; +import static com.android.ike.eap.message.simaka.attributes.EapTestAttributeDefinitions.KDF_VERSION; + +import static org.junit.Assert.assertArrayEquals; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.fail; + +import com.android.ike.eap.exceptions.simaka.EapSimAkaInvalidAttributeException; +import com.android.ike.eap.message.simaka.EapAkaPrimeAttributeFactory; +import com.android.ike.eap.message.simaka.EapSimAkaAttribute; +import com.android.ike.eap.message.simaka.EapSimAkaAttribute.AtKdf; + +import org.junit.Before; +import org.junit.Test; + +import java.nio.ByteBuffer; + +public class AtKdfTest { + private EapAkaPrimeAttributeFactory mAttributeFactory; + + @Before + public void setUp() { + mAttributeFactory = EapAkaPrimeAttributeFactory.getInstance(); + } + + @Test + public void testDecode() throws Exception { + ByteBuffer input = ByteBuffer.wrap(AT_KDF); + EapSimAkaAttribute result = mAttributeFactory.getAttribute(input); + + assertFalse(input.hasRemaining()); + AtKdf atKdf = (AtKdf) result; + assertEquals(EAP_AT_KDF, atKdf.attributeType); + assertEquals(AT_KDF.length, atKdf.lengthInBytes); + assertEquals(KDF_VERSION, atKdf.kdf); + } + + @Test + public void testDecodeInvalidLength() throws Exception { + ByteBuffer input = ByteBuffer.wrap(AT_KDF_INVALID_LENGTH); + try { + mAttributeFactory.getAttribute(input); + fail("Expected EapSimAkaInvalidAttributeException for invalid length"); + } catch (EapSimAkaInvalidAttributeException expected) { + } + } + + @Test + public void testEncode() throws Exception { + AtKdf atKdf = new AtKdf(KDF_VERSION); + ByteBuffer result = ByteBuffer.allocate(AT_KDF.length); + + atKdf.encode(result); + assertArrayEquals(AT_KDF, 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 ba30724c..b9007131 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 @@ -80,6 +80,8 @@ public class EapTestAttributeDefinitions { 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 int KDF_VERSION = 1; + public static final byte[] AT_KDF = hexStringToByteArray("18010001"); public static final byte[] AT_VERSION_LIST_INVALID_LENGTH = hexStringToByteArray("0F020003"); public static final byte[] AT_SELECTED_VERSION_INVALID_LENGTH = @@ -110,4 +112,5 @@ public class EapTestAttributeDefinitions { public static final byte[] AT_RES_LONG_RES = hexStringToByteArray("0306008800112233445566778899AABBCCDDEEFF11000000"); public static final byte[] AT_AUTS_INVALID_LENGTH = hexStringToByteArray("03010000"); + public static final byte[] AT_KDF_INVALID_LENGTH = hexStringToByteArray("18020001"); } |