aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCody Kesting <ckesting@google.com>2019-10-31 09:54:27 -0700
committerandroid-build-merger <android-build-merger@google.com>2019-10-31 09:54:27 -0700
commitec24f3aa36139ef2fe7838583c898e50010b670d (patch)
tree70f55edba5168aa8fb71282c1602e1583898cdbf
parent4ef22ec153ab5095f94f3f6af4f25326a1e216b2 (diff)
parentb666ea3b9cba3cbedca555e6b0772440d4936108 (diff)
downloadike-ec24f3aa36139ef2fe7838583c898e50010b670d.tar.gz
Make key lengths overridable for EAP-SIM/AKA.
am: b666ea3b9c Change-Id: I7b09c21ff102b982604d400efdcc3ea56fb6d5f9
-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());
+ }
}