diff options
author | Cody Kesting <ckesting@google.com> | 2019-10-31 09:54:27 -0700 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2019-10-31 09:54:27 -0700 |
commit | ec24f3aa36139ef2fe7838583c898e50010b670d (patch) | |
tree | 70f55edba5168aa8fb71282c1602e1583898cdbf | |
parent | 4ef22ec153ab5095f94f3f6af4f25326a1e216b2 (diff) | |
parent | b666ea3b9cba3cbedca555e6b0772440d4936108 (diff) | |
download | ike-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.java | 24 | ||||
-rw-r--r-- | tests/iketests/src/java/com/android/ike/eap/statemachine/EapSimAkaMethodStateMachineTest.java | 9 |
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()); + } } |