Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e613fccb authored by Paul Stewart's avatar Paul Stewart
Browse files

Allow EAP-SIM authentication methods under PEAP

Extend the PEAP outer method to contain EAP-SIM innner methods
so these transactions can be encrypted.

Cherry-pick of 68c63024

Bug: 34835771
Test: Unit tests

Change-Id: I4931ed43e396c93bad0bfce1750291982f8cd146
parent c6c11723
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -24737,11 +24737,14 @@ package android.net.wifi {
  }
  public static final class WifiEnterpriseConfig.Phase2 {
    field public static final int AKA = 6; // 0x6
    field public static final int AKA_PRIME = 7; // 0x7
    field public static final int GTC = 4; // 0x4
    field public static final int MSCHAP = 2; // 0x2
    field public static final int MSCHAPV2 = 3; // 0x3
    field public static final int NONE = 0; // 0x0
    field public static final int PAP = 1; // 0x1
    field public static final int SIM = 5; // 0x5
  }
  public class WifiInfo implements android.os.Parcelable {
+3 −0
Original line number Diff line number Diff line
@@ -27110,11 +27110,14 @@ package android.net.wifi {
  }
  public static final class WifiEnterpriseConfig.Phase2 {
    field public static final int AKA = 6; // 0x6
    field public static final int AKA_PRIME = 7; // 0x7
    field public static final int GTC = 4; // 0x4
    field public static final int MSCHAP = 2; // 0x2
    field public static final int MSCHAPV2 = 3; // 0x3
    field public static final int NONE = 0; // 0x0
    field public static final int PAP = 1; // 0x1
    field public static final int SIM = 5; // 0x5
  }
  public class WifiInfo implements android.os.Parcelable {
+3 −0
Original line number Diff line number Diff line
@@ -24810,11 +24810,14 @@ package android.net.wifi {
  }
  public static final class WifiEnterpriseConfig.Phase2 {
    field public static final int AKA = 6; // 0x6
    field public static final int AKA_PRIME = 7; // 0x7
    field public static final int GTC = 4; // 0x4
    field public static final int MSCHAP = 2; // 0x2
    field public static final int MSCHAPV2 = 3; // 0x3
    field public static final int NONE = 0; // 0x0
    field public static final int PAP = 1; // 0x1
    field public static final int SIM = 5; // 0x5
  }
  public class WifiInfo implements android.os.Parcelable {
+10 −1
Original line number Diff line number Diff line
@@ -263,11 +263,17 @@ public class WifiEnterpriseConfig implements Parcelable {
        public static final int MSCHAPV2    = 3;
        /** Generic Token Card */
        public static final int GTC         = 4;
        /** EAP-Subscriber Identity Module */
        public static final int SIM         = 5;
        /** EAP-Authentication and Key Agreement */
        public static final int AKA         = 6;
        /** EAP-Authentication and Key Agreement Prime */
        public static final int AKA_PRIME   = 7;
        private static final String AUTH_PREFIX = "auth=";
        private static final String AUTHEAP_PREFIX = "autheap=";
        /** @hide */
        public static final String[] strings = {EMPTY_VALUE, "PAP", "MSCHAP",
                "MSCHAPV2", "GTC" };
                "MSCHAPV2", "GTC", "SIM", "AKA", "AKA'" };

        /** Prevent initialization */
        private Phase2() {}
@@ -426,6 +432,9 @@ public class WifiEnterpriseConfig implements Parcelable {
            case Phase2.MSCHAP:
            case Phase2.MSCHAPV2:
            case Phase2.GTC:
            case Phase2.SIM:
            case Phase2.AKA:
            case Phase2.AKA_PRIME:
                mPhase2Method = phase2Method;
                break;
            default:
+15 −0
Original line number Diff line number Diff line
@@ -283,6 +283,21 @@ public class WifiEnterpriseConfigTest {
        assertEquals("\"auth=GTC\"", getSupplicantPhase2Method());
    }

    /** Verfies PEAP/SIM, PEAP/AKA, PEAP/AKA'. */
    @Test
    public void peapSimAkaAkaPrime() {
        mEnterpriseConfig.setEapMethod(Eap.PEAP);
        mEnterpriseConfig.setPhase2Method(Phase2.SIM);
        assertEquals("PEAP", getSupplicantEapMethod());
        assertEquals("\"auth=SIM\"", getSupplicantPhase2Method());

        mEnterpriseConfig.setPhase2Method(Phase2.AKA);
        assertEquals("\"auth=AKA\"", getSupplicantPhase2Method());

        mEnterpriseConfig.setPhase2Method(Phase2.AKA_PRIME);
        assertEquals("\"auth=AKA'\"", getSupplicantPhase2Method());
    }

    /** Verfies that the copy constructor preseves the inner method information. */
    @Test
    public void copyConstructor() {