Loading api/current.txt +13 −0 Original line number Diff line number Diff line Loading @@ -30046,6 +30046,7 @@ package android.net.wifi { @Deprecated public static class WifiConfiguration.GroupCipher { field @Deprecated public static final int CCMP = 3; // 0x3 field @Deprecated public static final int GCMP_256 = 5; // 0x5 field @Deprecated public static final int SMS4 = 6; // 0x6 field @Deprecated public static final int TKIP = 2; // 0x2 field @Deprecated public static final int WEP104 = 1; // 0x1 field @Deprecated public static final int WEP40 = 0; // 0x0 Loading Loading @@ -30075,6 +30076,7 @@ package android.net.wifi { field @Deprecated public static final int CCMP = 2; // 0x2 field @Deprecated public static final int GCMP_256 = 3; // 0x3 field @Deprecated public static final int NONE = 0; // 0x0 field @Deprecated public static final int SMS4 = 4; // 0x4 field @Deprecated public static final int TKIP = 1; // 0x1 field @Deprecated public static final String[] strings; field @Deprecated public static final String varName = "pairwise"; Loading @@ -30082,6 +30084,7 @@ package android.net.wifi { @Deprecated public static class WifiConfiguration.Protocol { field @Deprecated public static final int RSN = 1; // 0x1 field @Deprecated public static final int WAPI = 3; // 0x3 field @Deprecated public static final int WPA = 0; // 0x0 field @Deprecated public static final String[] strings; field @Deprecated public static final String varName = "proto"; Loading Loading @@ -30128,6 +30131,12 @@ package android.net.wifi { method @Deprecated public void setSubjectMatch(String); method public void writeToParcel(android.os.Parcel, int); field @NonNull public static final android.os.Parcelable.Creator<android.net.wifi.WifiEnterpriseConfig> CREATOR; field public static final String EXTRA_WAPI_AS_CERTIFICATE_DATA = "android.net.wifi.extra.WAPI_AS_CERTIFICATE_DATA"; field public static final String EXTRA_WAPI_AS_CERTIFICATE_NAME = "android.net.wifi.extra.WAPI_AS_CERTIFICATE_NAME"; field public static final String EXTRA_WAPI_USER_CERTIFICATE_DATA = "android.net.wifi.extra.WAPI_USER_CERTIFICATE_DATA"; field public static final String EXTRA_WAPI_USER_CERTIFICATE_NAME = "android.net.wifi.extra.WAPI_USER_CERTIFICATE_NAME"; field public static final String WAPI_AS_CERTIFICATE = "WAPIAS_"; field public static final String WAPI_USER_CERTIFICATE = "WAPIUSR_"; } public static final class WifiEnterpriseConfig.Eap { Loading @@ -30140,6 +30149,7 @@ package android.net.wifi { field public static final int TLS = 1; // 0x1 field public static final int TTLS = 2; // 0x2 field public static final int UNAUTH_TLS = 7; // 0x7 field public static final int WAPI_CERT = 8; // 0x8 } public static final class WifiEnterpriseConfig.Phase2 { Loading Loading @@ -30211,6 +30221,7 @@ package android.net.wifi { method public boolean isPreferredNetworkOffloadSupported(); method @Deprecated public boolean isScanAlwaysAvailable(); method public boolean isTdlsSupported(); method public boolean isWapiSupported(); method public boolean isWifiEnabled(); method public boolean isWpa3SaeSupported(); method public boolean isWpa3SuiteBSupported(); Loading Loading @@ -30367,6 +30378,8 @@ package android.net.wifi { method @NonNull public android.net.wifi.WifiNetworkSuggestion.Builder setPasspointConfig(@NonNull android.net.wifi.hotspot2.PasspointConfiguration); method @NonNull public android.net.wifi.WifiNetworkSuggestion.Builder setPriority(@IntRange(from=0) int); method @NonNull public android.net.wifi.WifiNetworkSuggestion.Builder setSsid(@NonNull String); method @NonNull public android.net.wifi.WifiNetworkSuggestion.Builder setWapiEnterpriseConfig(@NonNull android.net.wifi.WifiEnterpriseConfig); method @NonNull public android.net.wifi.WifiNetworkSuggestion.Builder setWapiPassphrase(@NonNull String); method @NonNull public android.net.wifi.WifiNetworkSuggestion.Builder setWpa2EnterpriseConfig(@NonNull android.net.wifi.WifiEnterpriseConfig); method @NonNull public android.net.wifi.WifiNetworkSuggestion.Builder setWpa2Passphrase(@NonNull String); method @NonNull public android.net.wifi.WifiNetworkSuggestion.Builder setWpa3EnterpriseConfig(@NonNull android.net.wifi.WifiEnterpriseConfig); api/system-current.txt +9 −0 Original line number Diff line number Diff line Loading @@ -5550,6 +5550,11 @@ package android.net.wifi { field @Deprecated public byte id; } public class ScanResult implements android.os.Parcelable { field public static final int KEY_MGMT_WAPI_CERT = 14; // 0xe field public static final int KEY_MGMT_WAPI_PSK = 13; // 0xd } public final class SoftApConfiguration implements android.os.Parcelable { method public int describeContents(); method public int getBand(); Loading Loading @@ -5648,6 +5653,8 @@ package android.net.wifi { } @Deprecated public static class WifiConfiguration.KeyMgmt { field @Deprecated public static final int WAPI_CERT = 14; // 0xe field @Deprecated public static final int WAPI_PSK = 13; // 0xd field @Deprecated public static final int WPA2_PSK = 4; // 0x4 } Loading Loading @@ -5684,10 +5691,12 @@ package android.net.wifi { method @NonNull public String getCaPath(); method @NonNull public String getClientCertificateAlias(); method public int getOcsp(); method @Nullable public String getWapiCertSuite(); method public void setCaCertificateAliases(@Nullable String[]); method public void setCaPath(@Nullable String); method public void setClientCertificateAlias(@Nullable String); method public void setOcsp(int); method public void setWapiCertSuite(@Nullable String); field public static final int OCSP_NONE = 0; // 0x0 field public static final int OCSP_REQUEST_CERT_STATUS = 1; // 0x1 field public static final int OCSP_REQUIRE_ALL_NON_TRUSTED_CERTS_STATUS = 3; // 0x3 Loading wifi/java/android/net/wifi/ScanResult.java +23 −0 Original line number Diff line number Diff line Loading @@ -101,6 +101,12 @@ public class ScanResult implements Parcelable { */ public static final int PROTOCOL_OSEN = 3; /** * @hide * Security protocol type: WAPI. */ public static final int PROTOCOL_WAPI = 4; /** * @hide * No security key management scheme. Loading Loading @@ -167,6 +173,18 @@ public class ScanResult implements Parcelable { * Security key management scheme: OWE in transition mode. */ public static final int KEY_MGMT_OWE_TRANSITION = 12; /** * @hide * Security key management scheme: WAPI_PSK. */ @SystemApi public static final int KEY_MGMT_WAPI_PSK = 13; /** * @hide * Security key management scheme: WAPI_CERT. */ @SystemApi public static final int KEY_MGMT_WAPI_CERT = 14; /** * @hide * No cipher suite. Loading @@ -192,6 +210,11 @@ public class ScanResult implements Parcelable { * Cipher suite: GCMP */ public static final int CIPHER_GCMP_256 = 4; /** * @hide * Cipher suite: SMS4 */ public static final int CIPHER_SMS4 = 5; /** * The detected signal level in dBm, also known as the RSSI. Loading wifi/java/android/net/wifi/WifiConfiguration.java +63 −6 Original line number Diff line number Diff line Loading @@ -118,7 +118,9 @@ public class WifiConfiguration implements Parcelable { OWE, SUITE_B_192, WPA_PSK_SHA256, WPA_EAP_SHA256}) WPA_EAP_SHA256, WAPI_PSK, WAPI_CERT}) public @interface KeyMgmtScheme {} /** WPA is not used; plaintext or static WEP could be used. */ Loading Loading @@ -185,11 +187,26 @@ public class WifiConfiguration implements Parcelable { */ public static final int WPA_EAP_SHA256 = 12; /** * WAPI pre-shared key (requires {@code preSharedKey} to be specified). * @hide */ @SystemApi public static final int WAPI_PSK = 13; /** * WAPI certificate to be specified. * @hide */ @SystemApi public static final int WAPI_CERT = 14; public static final String varName = "key_mgmt"; public static final String[] strings = { "NONE", "WPA_PSK", "WPA_EAP", "IEEE8021X", "WPA2_PSK", "OSEN", "FT_PSK", "FT_EAP", "SAE", "OWE", "SUITE_B_192", "WPA_PSK_SHA256", "WPA_EAP_SHA256" }; "SAE", "OWE", "SUITE_B_192", "WPA_PSK_SHA256", "WPA_EAP_SHA256", "WAPI_PSK", "WAPI_CERT" }; } /** Loading @@ -210,9 +227,14 @@ public class WifiConfiguration implements Parcelable { */ public static final int OSEN = 2; /** * WAPI Protocol */ public static final int WAPI = 3; public static final String varName = "proto"; public static final String[] strings = { "WPA", "RSN", "OSEN" }; public static final String[] strings = { "WPA", "RSN", "OSEN", "WAPI" }; } /** Loading Loading @@ -255,10 +277,14 @@ public class WifiConfiguration implements Parcelable { * AES in Galois/Counter Mode */ public static final int GCMP_256 = 3; /** * SMS4 cipher for WAPI */ public static final int SMS4 = 4; public static final String varName = "pairwise"; public static final String[] strings = { "NONE", "TKIP", "CCMP", "GCMP_256" }; public static final String[] strings = { "NONE", "TKIP", "CCMP", "GCMP_256", "SMS4" }; } /** Loading Loading @@ -296,12 +322,17 @@ public class WifiConfiguration implements Parcelable { * AES in Galois/Counter Mode */ public static final int GCMP_256 = 5; /** * SMS4 cipher for WAPI */ public static final int SMS4 = 6; public static final String varName = "group"; public static final String[] strings = { /* deprecated */ "WEP40", /* deprecated */ "WEP104", "TKIP", "CCMP", "GTK_NOT_USED", "GCMP_256" }; "TKIP", "CCMP", "GTK_NOT_USED", "GCMP_256", "SMS4" }; } /** Loading Loading @@ -383,6 +414,10 @@ public class WifiConfiguration implements Parcelable { public static final int SECURITY_TYPE_EAP_SUITE_B = 5; /** @hide */ public static final int SECURITY_TYPE_OWE = 6; /** @hide */ public static final int SECURITY_TYPE_WAPI_PSK = 7; /** @hide */ public static final int SECURITY_TYPE_WAPI_CERT = 8; /** @hide */ @Retention(RetentionPolicy.SOURCE) Loading @@ -393,7 +428,9 @@ public class WifiConfiguration implements Parcelable { SECURITY_TYPE_EAP, SECURITY_TYPE_SAE, SECURITY_TYPE_EAP_SUITE_B, SECURITY_TYPE_OWE SECURITY_TYPE_OWE, SECURITY_TYPE_WAPI_PSK, SECURITY_TYPE_WAPI_CERT }) public @interface SecurityType {} Loading Loading @@ -445,6 +482,18 @@ public class WifiConfiguration implements Parcelable { allowedKeyManagement.set(WifiConfiguration.KeyMgmt.OWE); requirePMF = true; break; case SECURITY_TYPE_WAPI_PSK: allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WAPI_PSK); allowedProtocols.set(WifiConfiguration.Protocol.WAPI); allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.SMS4); allowedGroupCiphers.set(WifiConfiguration.GroupCipher.SMS4); break; case SECURITY_TYPE_WAPI_CERT: allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WAPI_CERT); allowedProtocols.set(WifiConfiguration.Protocol.WAPI); allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.SMS4); allowedGroupCiphers.set(WifiConfiguration.GroupCipher.SMS4); break; default: throw new IllegalArgumentException("unknown security type " + securityType); } Loading Loading @@ -2345,6 +2394,10 @@ public class WifiConfiguration implements Parcelable { return KeyMgmt.OWE; } else if (allowedKeyManagement.get(KeyMgmt.SUITE_B_192)) { return KeyMgmt.SUITE_B_192; } else if (allowedKeyManagement.get(KeyMgmt.WAPI_PSK)) { return KeyMgmt.WAPI_PSK; } else if (allowedKeyManagement.get(KeyMgmt.WAPI_CERT)) { return KeyMgmt.WAPI_CERT; } return KeyMgmt.NONE; } Loading Loading @@ -2383,6 +2436,10 @@ public class WifiConfiguration implements Parcelable { key = SSID + KeyMgmt.strings[KeyMgmt.SAE]; } else if (allowedKeyManagement.get(KeyMgmt.SUITE_B_192)) { key = SSID + KeyMgmt.strings[KeyMgmt.SUITE_B_192]; } else if (allowedKeyManagement.get(KeyMgmt.WAPI_PSK)) { key = SSID + KeyMgmt.strings[KeyMgmt.WAPI_PSK]; } else if (allowedKeyManagement.get(KeyMgmt.WAPI_CERT)) { key = SSID + KeyMgmt.strings[KeyMgmt.WAPI_CERT]; } else { key = SSID + KeyMgmt.strings[KeyMgmt.NONE]; } Loading wifi/java/android/net/wifi/WifiEnterpriseConfig.java +66 −1 Original line number Diff line number Diff line Loading @@ -41,6 +41,36 @@ import java.util.Map; */ public class WifiEnterpriseConfig implements Parcelable { /** Key prefix for WAPI AS certificates. */ public static final String WAPI_AS_CERTIFICATE = "WAPIAS_"; /** Key prefix for WAPI user certificates. */ public static final String WAPI_USER_CERTIFICATE = "WAPIUSR_"; /** * Intent extra: name for WAPI AS certificates */ public static final String EXTRA_WAPI_AS_CERTIFICATE_NAME = "android.net.wifi.extra.WAPI_AS_CERTIFICATE_NAME"; /** * Intent extra: data for WAPI AS certificates */ public static final String EXTRA_WAPI_AS_CERTIFICATE_DATA = "android.net.wifi.extra.WAPI_AS_CERTIFICATE_DATA"; /** * Intent extra: name for WAPI AS certificates */ public static final String EXTRA_WAPI_USER_CERTIFICATE_NAME = "android.net.wifi.extra.WAPI_USER_CERTIFICATE_NAME"; /** * Intent extra: data for WAPI AS certificates */ public static final String EXTRA_WAPI_USER_CERTIFICATE_DATA = "android.net.wifi.extra.WAPI_USER_CERTIFICATE_DATA"; /** @hide */ public static final String EMPTY_VALUE = "NULL"; /** @hide */ Loading @@ -61,6 +91,7 @@ public class WifiEnterpriseConfig implements Parcelable { public static final String DOM_SUFFIX_MATCH_KEY = "domain_suffix_match"; /** @hide */ public static final String OPP_KEY_CACHING = "proactive_key_caching"; /** * String representing the keystore OpenSSL ENGINE's ID. * @hide Loading Loading @@ -130,6 +161,8 @@ public class WifiEnterpriseConfig implements Parcelable { public static final String PLMN_KEY = "plmn"; /** @hide */ public static final String CA_CERT_ALIAS_DELIMITER = " "; /** @hide */ public static final String WAPI_CERT_SUITE_KEY = "wapi_cert_suite"; /** * Do not use OCSP stapling (TLS certificate status extension) Loading Loading @@ -348,9 +381,12 @@ public class WifiEnterpriseConfig implements Parcelable { public static final int AKA_PRIME = 6; /** Hotspot 2.0 r2 OSEN */ public static final int UNAUTH_TLS = 7; /** WAPI Certificate */ public static final int WAPI_CERT = 8; /** @hide */ public static final String[] strings = { "PEAP", "TLS", "TTLS", "PWD", "SIM", "AKA", "AKA'", "WFA-UNAUTH-TLS" }; { "PEAP", "TLS", "TTLS", "PWD", "SIM", "AKA", "AKA'", "WFA-UNAUTH-TLS", "WAPI_CERT" }; /** Prevent initialization */ private Eap() {} Loading Loading @@ -494,6 +530,10 @@ public class WifiEnterpriseConfig implements Parcelable { public void setEapMethod(int eapMethod) { switch (eapMethod) { /** Valid methods */ case Eap.WAPI_CERT: mEapMethod = eapMethod; setPhase2Method(Phase2.NONE); break; case Eap.TLS: case Eap.UNAUTH_TLS: setPhase2Method(Phase2.NONE); Loading Loading @@ -1313,4 +1353,29 @@ public class WifiEnterpriseConfig implements Parcelable { } return false; } /** * Set the WAPI certificate suite name on wpa_supplicant. * * If this field is not specified, WAPI-CERT uses ASU ID from WAI packet * as the certificate suite name automatically. * * @param wapiCertSuite The name for WAPI certificate suite, or null/empty string to clear. * @hide */ @SystemApi public void setWapiCertSuite(@Nullable String wapiCertSuite) { setFieldValue(WAPI_CERT_SUITE_KEY, wapiCertSuite); } /** * Get the WAPI certificate suite name * @return the certificate suite name * @hide */ @Nullable @SystemApi public String getWapiCertSuite() { return getFieldValue(WAPI_CERT_SUITE_KEY); } } Loading
api/current.txt +13 −0 Original line number Diff line number Diff line Loading @@ -30046,6 +30046,7 @@ package android.net.wifi { @Deprecated public static class WifiConfiguration.GroupCipher { field @Deprecated public static final int CCMP = 3; // 0x3 field @Deprecated public static final int GCMP_256 = 5; // 0x5 field @Deprecated public static final int SMS4 = 6; // 0x6 field @Deprecated public static final int TKIP = 2; // 0x2 field @Deprecated public static final int WEP104 = 1; // 0x1 field @Deprecated public static final int WEP40 = 0; // 0x0 Loading Loading @@ -30075,6 +30076,7 @@ package android.net.wifi { field @Deprecated public static final int CCMP = 2; // 0x2 field @Deprecated public static final int GCMP_256 = 3; // 0x3 field @Deprecated public static final int NONE = 0; // 0x0 field @Deprecated public static final int SMS4 = 4; // 0x4 field @Deprecated public static final int TKIP = 1; // 0x1 field @Deprecated public static final String[] strings; field @Deprecated public static final String varName = "pairwise"; Loading @@ -30082,6 +30084,7 @@ package android.net.wifi { @Deprecated public static class WifiConfiguration.Protocol { field @Deprecated public static final int RSN = 1; // 0x1 field @Deprecated public static final int WAPI = 3; // 0x3 field @Deprecated public static final int WPA = 0; // 0x0 field @Deprecated public static final String[] strings; field @Deprecated public static final String varName = "proto"; Loading Loading @@ -30128,6 +30131,12 @@ package android.net.wifi { method @Deprecated public void setSubjectMatch(String); method public void writeToParcel(android.os.Parcel, int); field @NonNull public static final android.os.Parcelable.Creator<android.net.wifi.WifiEnterpriseConfig> CREATOR; field public static final String EXTRA_WAPI_AS_CERTIFICATE_DATA = "android.net.wifi.extra.WAPI_AS_CERTIFICATE_DATA"; field public static final String EXTRA_WAPI_AS_CERTIFICATE_NAME = "android.net.wifi.extra.WAPI_AS_CERTIFICATE_NAME"; field public static final String EXTRA_WAPI_USER_CERTIFICATE_DATA = "android.net.wifi.extra.WAPI_USER_CERTIFICATE_DATA"; field public static final String EXTRA_WAPI_USER_CERTIFICATE_NAME = "android.net.wifi.extra.WAPI_USER_CERTIFICATE_NAME"; field public static final String WAPI_AS_CERTIFICATE = "WAPIAS_"; field public static final String WAPI_USER_CERTIFICATE = "WAPIUSR_"; } public static final class WifiEnterpriseConfig.Eap { Loading @@ -30140,6 +30149,7 @@ package android.net.wifi { field public static final int TLS = 1; // 0x1 field public static final int TTLS = 2; // 0x2 field public static final int UNAUTH_TLS = 7; // 0x7 field public static final int WAPI_CERT = 8; // 0x8 } public static final class WifiEnterpriseConfig.Phase2 { Loading Loading @@ -30211,6 +30221,7 @@ package android.net.wifi { method public boolean isPreferredNetworkOffloadSupported(); method @Deprecated public boolean isScanAlwaysAvailable(); method public boolean isTdlsSupported(); method public boolean isWapiSupported(); method public boolean isWifiEnabled(); method public boolean isWpa3SaeSupported(); method public boolean isWpa3SuiteBSupported(); Loading Loading @@ -30367,6 +30378,8 @@ package android.net.wifi { method @NonNull public android.net.wifi.WifiNetworkSuggestion.Builder setPasspointConfig(@NonNull android.net.wifi.hotspot2.PasspointConfiguration); method @NonNull public android.net.wifi.WifiNetworkSuggestion.Builder setPriority(@IntRange(from=0) int); method @NonNull public android.net.wifi.WifiNetworkSuggestion.Builder setSsid(@NonNull String); method @NonNull public android.net.wifi.WifiNetworkSuggestion.Builder setWapiEnterpriseConfig(@NonNull android.net.wifi.WifiEnterpriseConfig); method @NonNull public android.net.wifi.WifiNetworkSuggestion.Builder setWapiPassphrase(@NonNull String); method @NonNull public android.net.wifi.WifiNetworkSuggestion.Builder setWpa2EnterpriseConfig(@NonNull android.net.wifi.WifiEnterpriseConfig); method @NonNull public android.net.wifi.WifiNetworkSuggestion.Builder setWpa2Passphrase(@NonNull String); method @NonNull public android.net.wifi.WifiNetworkSuggestion.Builder setWpa3EnterpriseConfig(@NonNull android.net.wifi.WifiEnterpriseConfig);
api/system-current.txt +9 −0 Original line number Diff line number Diff line Loading @@ -5550,6 +5550,11 @@ package android.net.wifi { field @Deprecated public byte id; } public class ScanResult implements android.os.Parcelable { field public static final int KEY_MGMT_WAPI_CERT = 14; // 0xe field public static final int KEY_MGMT_WAPI_PSK = 13; // 0xd } public final class SoftApConfiguration implements android.os.Parcelable { method public int describeContents(); method public int getBand(); Loading Loading @@ -5648,6 +5653,8 @@ package android.net.wifi { } @Deprecated public static class WifiConfiguration.KeyMgmt { field @Deprecated public static final int WAPI_CERT = 14; // 0xe field @Deprecated public static final int WAPI_PSK = 13; // 0xd field @Deprecated public static final int WPA2_PSK = 4; // 0x4 } Loading Loading @@ -5684,10 +5691,12 @@ package android.net.wifi { method @NonNull public String getCaPath(); method @NonNull public String getClientCertificateAlias(); method public int getOcsp(); method @Nullable public String getWapiCertSuite(); method public void setCaCertificateAliases(@Nullable String[]); method public void setCaPath(@Nullable String); method public void setClientCertificateAlias(@Nullable String); method public void setOcsp(int); method public void setWapiCertSuite(@Nullable String); field public static final int OCSP_NONE = 0; // 0x0 field public static final int OCSP_REQUEST_CERT_STATUS = 1; // 0x1 field public static final int OCSP_REQUIRE_ALL_NON_TRUSTED_CERTS_STATUS = 3; // 0x3 Loading
wifi/java/android/net/wifi/ScanResult.java +23 −0 Original line number Diff line number Diff line Loading @@ -101,6 +101,12 @@ public class ScanResult implements Parcelable { */ public static final int PROTOCOL_OSEN = 3; /** * @hide * Security protocol type: WAPI. */ public static final int PROTOCOL_WAPI = 4; /** * @hide * No security key management scheme. Loading Loading @@ -167,6 +173,18 @@ public class ScanResult implements Parcelable { * Security key management scheme: OWE in transition mode. */ public static final int KEY_MGMT_OWE_TRANSITION = 12; /** * @hide * Security key management scheme: WAPI_PSK. */ @SystemApi public static final int KEY_MGMT_WAPI_PSK = 13; /** * @hide * Security key management scheme: WAPI_CERT. */ @SystemApi public static final int KEY_MGMT_WAPI_CERT = 14; /** * @hide * No cipher suite. Loading @@ -192,6 +210,11 @@ public class ScanResult implements Parcelable { * Cipher suite: GCMP */ public static final int CIPHER_GCMP_256 = 4; /** * @hide * Cipher suite: SMS4 */ public static final int CIPHER_SMS4 = 5; /** * The detected signal level in dBm, also known as the RSSI. Loading
wifi/java/android/net/wifi/WifiConfiguration.java +63 −6 Original line number Diff line number Diff line Loading @@ -118,7 +118,9 @@ public class WifiConfiguration implements Parcelable { OWE, SUITE_B_192, WPA_PSK_SHA256, WPA_EAP_SHA256}) WPA_EAP_SHA256, WAPI_PSK, WAPI_CERT}) public @interface KeyMgmtScheme {} /** WPA is not used; plaintext or static WEP could be used. */ Loading Loading @@ -185,11 +187,26 @@ public class WifiConfiguration implements Parcelable { */ public static final int WPA_EAP_SHA256 = 12; /** * WAPI pre-shared key (requires {@code preSharedKey} to be specified). * @hide */ @SystemApi public static final int WAPI_PSK = 13; /** * WAPI certificate to be specified. * @hide */ @SystemApi public static final int WAPI_CERT = 14; public static final String varName = "key_mgmt"; public static final String[] strings = { "NONE", "WPA_PSK", "WPA_EAP", "IEEE8021X", "WPA2_PSK", "OSEN", "FT_PSK", "FT_EAP", "SAE", "OWE", "SUITE_B_192", "WPA_PSK_SHA256", "WPA_EAP_SHA256" }; "SAE", "OWE", "SUITE_B_192", "WPA_PSK_SHA256", "WPA_EAP_SHA256", "WAPI_PSK", "WAPI_CERT" }; } /** Loading @@ -210,9 +227,14 @@ public class WifiConfiguration implements Parcelable { */ public static final int OSEN = 2; /** * WAPI Protocol */ public static final int WAPI = 3; public static final String varName = "proto"; public static final String[] strings = { "WPA", "RSN", "OSEN" }; public static final String[] strings = { "WPA", "RSN", "OSEN", "WAPI" }; } /** Loading Loading @@ -255,10 +277,14 @@ public class WifiConfiguration implements Parcelable { * AES in Galois/Counter Mode */ public static final int GCMP_256 = 3; /** * SMS4 cipher for WAPI */ public static final int SMS4 = 4; public static final String varName = "pairwise"; public static final String[] strings = { "NONE", "TKIP", "CCMP", "GCMP_256" }; public static final String[] strings = { "NONE", "TKIP", "CCMP", "GCMP_256", "SMS4" }; } /** Loading Loading @@ -296,12 +322,17 @@ public class WifiConfiguration implements Parcelable { * AES in Galois/Counter Mode */ public static final int GCMP_256 = 5; /** * SMS4 cipher for WAPI */ public static final int SMS4 = 6; public static final String varName = "group"; public static final String[] strings = { /* deprecated */ "WEP40", /* deprecated */ "WEP104", "TKIP", "CCMP", "GTK_NOT_USED", "GCMP_256" }; "TKIP", "CCMP", "GTK_NOT_USED", "GCMP_256", "SMS4" }; } /** Loading Loading @@ -383,6 +414,10 @@ public class WifiConfiguration implements Parcelable { public static final int SECURITY_TYPE_EAP_SUITE_B = 5; /** @hide */ public static final int SECURITY_TYPE_OWE = 6; /** @hide */ public static final int SECURITY_TYPE_WAPI_PSK = 7; /** @hide */ public static final int SECURITY_TYPE_WAPI_CERT = 8; /** @hide */ @Retention(RetentionPolicy.SOURCE) Loading @@ -393,7 +428,9 @@ public class WifiConfiguration implements Parcelable { SECURITY_TYPE_EAP, SECURITY_TYPE_SAE, SECURITY_TYPE_EAP_SUITE_B, SECURITY_TYPE_OWE SECURITY_TYPE_OWE, SECURITY_TYPE_WAPI_PSK, SECURITY_TYPE_WAPI_CERT }) public @interface SecurityType {} Loading Loading @@ -445,6 +482,18 @@ public class WifiConfiguration implements Parcelable { allowedKeyManagement.set(WifiConfiguration.KeyMgmt.OWE); requirePMF = true; break; case SECURITY_TYPE_WAPI_PSK: allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WAPI_PSK); allowedProtocols.set(WifiConfiguration.Protocol.WAPI); allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.SMS4); allowedGroupCiphers.set(WifiConfiguration.GroupCipher.SMS4); break; case SECURITY_TYPE_WAPI_CERT: allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WAPI_CERT); allowedProtocols.set(WifiConfiguration.Protocol.WAPI); allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.SMS4); allowedGroupCiphers.set(WifiConfiguration.GroupCipher.SMS4); break; default: throw new IllegalArgumentException("unknown security type " + securityType); } Loading Loading @@ -2345,6 +2394,10 @@ public class WifiConfiguration implements Parcelable { return KeyMgmt.OWE; } else if (allowedKeyManagement.get(KeyMgmt.SUITE_B_192)) { return KeyMgmt.SUITE_B_192; } else if (allowedKeyManagement.get(KeyMgmt.WAPI_PSK)) { return KeyMgmt.WAPI_PSK; } else if (allowedKeyManagement.get(KeyMgmt.WAPI_CERT)) { return KeyMgmt.WAPI_CERT; } return KeyMgmt.NONE; } Loading Loading @@ -2383,6 +2436,10 @@ public class WifiConfiguration implements Parcelable { key = SSID + KeyMgmt.strings[KeyMgmt.SAE]; } else if (allowedKeyManagement.get(KeyMgmt.SUITE_B_192)) { key = SSID + KeyMgmt.strings[KeyMgmt.SUITE_B_192]; } else if (allowedKeyManagement.get(KeyMgmt.WAPI_PSK)) { key = SSID + KeyMgmt.strings[KeyMgmt.WAPI_PSK]; } else if (allowedKeyManagement.get(KeyMgmt.WAPI_CERT)) { key = SSID + KeyMgmt.strings[KeyMgmt.WAPI_CERT]; } else { key = SSID + KeyMgmt.strings[KeyMgmt.NONE]; } Loading
wifi/java/android/net/wifi/WifiEnterpriseConfig.java +66 −1 Original line number Diff line number Diff line Loading @@ -41,6 +41,36 @@ import java.util.Map; */ public class WifiEnterpriseConfig implements Parcelable { /** Key prefix for WAPI AS certificates. */ public static final String WAPI_AS_CERTIFICATE = "WAPIAS_"; /** Key prefix for WAPI user certificates. */ public static final String WAPI_USER_CERTIFICATE = "WAPIUSR_"; /** * Intent extra: name for WAPI AS certificates */ public static final String EXTRA_WAPI_AS_CERTIFICATE_NAME = "android.net.wifi.extra.WAPI_AS_CERTIFICATE_NAME"; /** * Intent extra: data for WAPI AS certificates */ public static final String EXTRA_WAPI_AS_CERTIFICATE_DATA = "android.net.wifi.extra.WAPI_AS_CERTIFICATE_DATA"; /** * Intent extra: name for WAPI AS certificates */ public static final String EXTRA_WAPI_USER_CERTIFICATE_NAME = "android.net.wifi.extra.WAPI_USER_CERTIFICATE_NAME"; /** * Intent extra: data for WAPI AS certificates */ public static final String EXTRA_WAPI_USER_CERTIFICATE_DATA = "android.net.wifi.extra.WAPI_USER_CERTIFICATE_DATA"; /** @hide */ public static final String EMPTY_VALUE = "NULL"; /** @hide */ Loading @@ -61,6 +91,7 @@ public class WifiEnterpriseConfig implements Parcelable { public static final String DOM_SUFFIX_MATCH_KEY = "domain_suffix_match"; /** @hide */ public static final String OPP_KEY_CACHING = "proactive_key_caching"; /** * String representing the keystore OpenSSL ENGINE's ID. * @hide Loading Loading @@ -130,6 +161,8 @@ public class WifiEnterpriseConfig implements Parcelable { public static final String PLMN_KEY = "plmn"; /** @hide */ public static final String CA_CERT_ALIAS_DELIMITER = " "; /** @hide */ public static final String WAPI_CERT_SUITE_KEY = "wapi_cert_suite"; /** * Do not use OCSP stapling (TLS certificate status extension) Loading Loading @@ -348,9 +381,12 @@ public class WifiEnterpriseConfig implements Parcelable { public static final int AKA_PRIME = 6; /** Hotspot 2.0 r2 OSEN */ public static final int UNAUTH_TLS = 7; /** WAPI Certificate */ public static final int WAPI_CERT = 8; /** @hide */ public static final String[] strings = { "PEAP", "TLS", "TTLS", "PWD", "SIM", "AKA", "AKA'", "WFA-UNAUTH-TLS" }; { "PEAP", "TLS", "TTLS", "PWD", "SIM", "AKA", "AKA'", "WFA-UNAUTH-TLS", "WAPI_CERT" }; /** Prevent initialization */ private Eap() {} Loading Loading @@ -494,6 +530,10 @@ public class WifiEnterpriseConfig implements Parcelable { public void setEapMethod(int eapMethod) { switch (eapMethod) { /** Valid methods */ case Eap.WAPI_CERT: mEapMethod = eapMethod; setPhase2Method(Phase2.NONE); break; case Eap.TLS: case Eap.UNAUTH_TLS: setPhase2Method(Phase2.NONE); Loading Loading @@ -1313,4 +1353,29 @@ public class WifiEnterpriseConfig implements Parcelable { } return false; } /** * Set the WAPI certificate suite name on wpa_supplicant. * * If this field is not specified, WAPI-CERT uses ASU ID from WAI packet * as the certificate suite name automatically. * * @param wapiCertSuite The name for WAPI certificate suite, or null/empty string to clear. * @hide */ @SystemApi public void setWapiCertSuite(@Nullable String wapiCertSuite) { setFieldValue(WAPI_CERT_SUITE_KEY, wapiCertSuite); } /** * Get the WAPI certificate suite name * @return the certificate suite name * @hide */ @Nullable @SystemApi public String getWapiCertSuite() { return getFieldValue(WAPI_CERT_SUITE_KEY); } }