aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCody Kesting <ckesting@google.com>2019-10-31 10:09:30 -0700
committerandroid-build-merger <android-build-merger@google.com>2019-10-31 10:09:30 -0700
commitc11729c1dc27454356498dce24d8588fcd7f8680 (patch)
tree70f55edba5168aa8fb71282c1602e1583898cdbf
parent7f4312effd41457d542dd6a888c0011cf94ece88 (diff)
parentec24f3aa36139ef2fe7838583c898e50010b670d (diff)
downloadike-c11729c1dc27454356498dce24d8588fcd7f8680.tar.gz
Make key lengths overridable for EAP-SIM/AKA. am: b666ea3b9c
am: ec24f3aa36 Change-Id: If7a78ca6127dba4e7c3520ae8a1c6564db95c40e
-rw-r--r--src/java/com/android/ike/eap/statemachine/EapSimAkaMethodStateMachine.java24
-rw-r--r--tests/iketests/src/java/com/android/ike/eap/statemachine/EapSimAkaMethodStateMachineTest.java9
2 files changed, 29 insertions, 4 deletions
diff --git a/src/java/com/android/ike/eap/statemachine/EapSimAkaMethodStateMachine.java b/src/java/com/android/ike/eap/statemachine/EapSimAkaMethodStateMachine.java
index 38bd31a2..2b4cf7e1 100644
--- a/src/java/com/android/ike/eap/statemachine/EapSimAkaMethodStateMachine.java
+++ b/src/java/com/android/ike/eap/statemachine/EapSimAkaMethodStateMachine.java
@@ -73,10 +73,10 @@ public abstract class EapSimAkaMethodStateMachine extends EapMethodStateMachine
// Session Key lengths are 64 bytes (RFC 4186#7, RFC 4187#7)
public static final int SESSION_KEY_LENGTH = 64;
- public final byte[] mKEncr = new byte[KEY_LEN];
- public final byte[] mKAut = new byte[KEY_LEN];
- public final byte[] mMsk = new byte[SESSION_KEY_LENGTH];
- public final byte[] mEmsk = new byte[SESSION_KEY_LENGTH];
+ public final byte[] mKEncr = new byte[getKEncrLength()];
+ public final byte[] mKAut = new byte[getKAutLength()];
+ public final byte[] mMsk = new byte[getMskLength()];
+ public final byte[] mEmsk = new byte[getEmskLength()];
@VisibleForTesting boolean mHasReceivedSimAkaNotification = false;
@@ -106,6 +106,22 @@ public abstract class EapSimAkaMethodStateMachine extends EapMethodStateMachine
+ " apptype=" + mEapUiccConfig.apptype);
}
+ protected int getKEncrLength() {
+ return KEY_LEN;
+ }
+
+ protected int getKAutLength() {
+ return KEY_LEN;
+ }
+
+ protected int getMskLength() {
+ return SESSION_KEY_LENGTH;
+ }
+
+ protected int getEmskLength() {
+ return SESSION_KEY_LENGTH;
+ }
+
@Override
EapResult handleEapNotification(String tag, EapMessage message) {
return EapStateMachine.handleNotification(tag, message);
diff --git a/tests/iketests/src/java/com/android/ike/eap/statemachine/EapSimAkaMethodStateMachineTest.java b/tests/iketests/src/java/com/android/ike/eap/statemachine/EapSimAkaMethodStateMachineTest.java
index f3cc5a03..47721da7 100644
--- a/tests/iketests/src/java/com/android/ike/eap/statemachine/EapSimAkaMethodStateMachineTest.java
+++ b/tests/iketests/src/java/com/android/ike/eap/statemachine/EapSimAkaMethodStateMachineTest.java
@@ -65,6 +65,7 @@ import static com.android.ike.eap.statemachine.EapSimAkaMethodStateMachine.MASTE
import static com.android.ike.eap.statemachine.EapSimAkaMethodStateMachine.SESSION_KEY_LENGTH;
import static org.junit.Assert.assertArrayEquals;
+import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
@@ -463,4 +464,12 @@ public class EapSimAkaMethodStateMachineTest {
assertArrayEquals(EAP_SIM_CLIENT_ERROR_UNABLE_TO_PROCESS, eapResponse.packet);
verify(mStateMachine, never()).transitionTo(any(EapMethodState.class));
}
+
+ @Test
+ public void testKeyLengths() {
+ assertEquals(KEY_LEN, mStateMachine.getKEncrLength());
+ assertEquals(KEY_LEN, mStateMachine.getKAutLength());
+ assertEquals(SESSION_KEY_LENGTH, mStateMachine.getMskLength());
+ assertEquals(SESSION_KEY_LENGTH, mStateMachine.getEmskLength());
+ }
}