diff --git a/telephony/java/android/telephony/TelephonyManager.java b/telephony/java/android/telephony/TelephonyManager.java index 652be616f9d78..c079dd189a378 100644 --- a/telephony/java/android/telephony/TelephonyManager.java +++ b/telephony/java/android/telephony/TelephonyManager.java @@ -8244,6 +8244,30 @@ public class TelephonyManager { public static final int AUTHTYPE_EAP_SIM = PhoneConstants.AUTH_CONTEXT_EAP_SIM; /** Authentication type for UICC challenge is EAP AKA. See RFC 4187 for details. */ public static final int AUTHTYPE_EAP_AKA = PhoneConstants.AUTH_CONTEXT_EAP_AKA; + /** + * Authentication type for GBA Bootstrap Challenge is GBA_BOOTSTRAP. + * See 3GPP 33.220 Section 5.3.2. + * @hide + */ + public static final int AUTHTYPE_GBA_BOOTSTRAP = PhoneConstants.AUTH_CONTEXT_GBA_BOOTSTRAP; + /** + * Authentication type for GBA Network Application Functions (NAF) key + * External Challenge is AUTHTYPE_GBA_NAF_KEY_EXTERNAL. + * See 3GPP 33.220 Section 5.3.2. + * @hide + */ + public static final int AUTHTYPE_GBA_NAF_KEY_EXTERNAL = + PhoneConstants.AUTHTYPE_GBA_NAF_KEY_EXTERNAL; + + /** @hide */ + @Retention(RetentionPolicy.SOURCE) + @IntDef({ + AUTHTYPE_EAP_SIM, + AUTHTYPE_EAP_AKA, + AUTHTYPE_GBA_BOOTSTRAP, + AUTHTYPE_GBA_NAF_KEY_EXTERNAL + }) + public @interface AuthType {} /** * Returns the response of authentication for the default subscription. @@ -8258,7 +8282,7 @@ public class TelephonyManager { * * * @param appType the icc application type, like {@link #APPTYPE_USIM} - * @param authType the authentication type, {@link #AUTHTYPE_EAP_AKA} or + * @param authType the authentication type, any one of {@link #AUTHTYPE_EAP_AKA} or * {@link #AUTHTYPE_EAP_SIM} * @param data authentication challenge data, base64 encoded. * See 3GPP TS 31.102 7.1.2 for more details. @@ -8273,7 +8297,7 @@ public class TelephonyManager { // READ_PRIVILEGED_PHONE_STATE. It certainly shouldn't reference the permission in Javadoc since // it's not public API. @RequiresFeature(PackageManager.FEATURE_TELEPHONY_SUBSCRIPTION) - public String getIccAuthentication(int appType, int authType, String data) { + public String getIccAuthentication(int appType,@AuthType int authType, String data) { return getIccAuthentication(getSubId(), appType, authType, data); } @@ -8286,7 +8310,7 @@ public class TelephonyManager { * * @param subId subscription ID used for authentication * @param appType the icc application type, like {@link #APPTYPE_USIM} - * @param authType the authentication type, {@link #AUTHTYPE_EAP_AKA} or + * @param authType the authentication type, any one of {@link #AUTHTYPE_EAP_AKA} or * {@link #AUTHTYPE_EAP_SIM} * @param data authentication challenge data, base64 encoded. * See 3GPP TS 31.102 7.1.2 for more details. @@ -8300,7 +8324,7 @@ public class TelephonyManager { * @hide */ @UnsupportedAppUsage - public String getIccAuthentication(int subId, int appType, int authType, String data) { + public String getIccAuthentication(int subId, int appType,@AuthType int authType, String data) { try { IPhoneSubInfo info = getSubscriberInfoService(); if (info == null) diff --git a/telephony/java/com/android/internal/telephony/PhoneConstants.java b/telephony/java/com/android/internal/telephony/PhoneConstants.java index 813e80e6f355d..b2f7be677458b 100644 --- a/telephony/java/com/android/internal/telephony/PhoneConstants.java +++ b/telephony/java/com/android/internal/telephony/PhoneConstants.java @@ -226,6 +226,8 @@ public class PhoneConstants { // per 3GPP TS 31.102 (Section 7.1.2) public static final int AUTH_CONTEXT_EAP_SIM = 128; public static final int AUTH_CONTEXT_EAP_AKA = 129; + public static final int AUTH_CONTEXT_GBA_BOOTSTRAP = 132; + public static final int AUTHTYPE_GBA_NAF_KEY_EXTERNAL = 133; public static final int AUTH_CONTEXT_UNDEFINED = -1; /**