1// Signature format: 2.0 2package android.net.eap { 3 4 public final class EapAkaInfo extends android.net.eap.EapInfo { 5 method @Nullable public byte[] getReauthId(); 6 } 7 8 public static final class EapAkaInfo.Builder { 9 ctor public EapAkaInfo.Builder(); 10 method @NonNull public android.net.eap.EapAkaInfo build(); 11 method @NonNull public android.net.eap.EapAkaInfo.Builder setReauthId(@NonNull byte[]); 12 } 13 14 public abstract class EapInfo { 15 method public final int getEapMethodType(); 16 } 17 18 public final class EapSessionConfig { 19 method @Nullable public android.net.eap.EapSessionConfig.EapAkaConfig getEapAkaConfig(); 20 method @Nullable public android.net.eap.EapSessionConfig.EapAkaPrimeConfig getEapAkaPrimeConfig(); 21 method @NonNull public byte[] getEapIdentity(); 22 method @Nullable public android.net.eap.EapSessionConfig.EapMsChapV2Config getEapMsChapV2Config(); 23 method @Nullable public android.net.eap.EapSessionConfig.EapSimConfig getEapSimConfig(); 24 method @Nullable public android.net.eap.EapSessionConfig.EapTtlsConfig getEapTtlsConfig(); 25 } 26 27 public static final class EapSessionConfig.Builder { 28 ctor public EapSessionConfig.Builder(); 29 method @NonNull public android.net.eap.EapSessionConfig build(); 30 method @NonNull public android.net.eap.EapSessionConfig.Builder setEapAkaConfig(int, int); 31 method @NonNull public android.net.eap.EapSessionConfig.Builder setEapAkaConfig(int, int, @NonNull android.net.eap.EapSessionConfig.EapAkaOption); 32 method @NonNull public android.net.eap.EapSessionConfig.Builder setEapAkaPrimeConfig(int, int, @NonNull String, boolean); 33 method @NonNull public android.net.eap.EapSessionConfig.Builder setEapIdentity(@NonNull byte[]); 34 method @NonNull public android.net.eap.EapSessionConfig.Builder setEapMsChapV2Config(@NonNull String, @NonNull String); 35 method @NonNull public android.net.eap.EapSessionConfig.Builder setEapSimConfig(int, int); 36 method @NonNull public android.net.eap.EapSessionConfig.Builder setEapTtlsConfig(@Nullable java.security.cert.X509Certificate, @NonNull android.net.eap.EapSessionConfig); 37 } 38 39 public static class EapSessionConfig.EapAkaConfig extends android.net.eap.EapSessionConfig.EapMethodConfig { 40 method public int getAppType(); 41 method @NonNull public android.net.eap.EapSessionConfig.EapAkaOption getEapAkaOption(); 42 method public int getSubId(); 43 } 44 45 public static final class EapSessionConfig.EapAkaOption { 46 method @Nullable public byte[] getReauthId(); 47 } 48 49 public static final class EapSessionConfig.EapAkaOption.Builder { 50 ctor public EapSessionConfig.EapAkaOption.Builder(); 51 method @NonNull public android.net.eap.EapSessionConfig.EapAkaOption build(); 52 method @NonNull public android.net.eap.EapSessionConfig.EapAkaOption.Builder setReauthId(@NonNull byte[]); 53 } 54 55 public static class EapSessionConfig.EapAkaPrimeConfig extends android.net.eap.EapSessionConfig.EapAkaConfig { 56 method public boolean allowsMismatchedNetworkNames(); 57 method @NonNull public String getNetworkName(); 58 } 59 60 public abstract static class EapSessionConfig.EapMethodConfig { 61 method public int getMethodType(); 62 field public static final int EAP_TYPE_AKA = 23; // 0x17 63 field public static final int EAP_TYPE_AKA_PRIME = 50; // 0x32 64 field public static final int EAP_TYPE_MSCHAP_V2 = 26; // 0x1a 65 field public static final int EAP_TYPE_SIM = 18; // 0x12 66 field public static final int EAP_TYPE_TTLS = 21; // 0x15 67 } 68 69 public static class EapSessionConfig.EapMsChapV2Config extends android.net.eap.EapSessionConfig.EapMethodConfig { 70 method @NonNull public String getPassword(); 71 method @NonNull public String getUsername(); 72 } 73 74 public static class EapSessionConfig.EapSimConfig extends android.net.eap.EapSessionConfig.EapMethodConfig { 75 method public int getAppType(); 76 method public int getSubId(); 77 } 78 79 public static class EapSessionConfig.EapTtlsConfig extends android.net.eap.EapSessionConfig.EapMethodConfig { 80 method @NonNull public android.net.eap.EapSessionConfig getInnerEapSessionConfig(); 81 method @Nullable public java.security.cert.X509Certificate getServerCaCert(); 82 } 83 84} 85 86package android.net.ipsec.ike { 87 88 public final class ChildSaProposal extends android.net.ipsec.ike.SaProposal { 89 method @NonNull public static java.util.Set<java.lang.Integer> getSupportedEncryptionAlgorithms(); 90 method @NonNull public static java.util.Set<java.lang.Integer> getSupportedIntegrityAlgorithms(); 91 } 92 93 public static final class ChildSaProposal.Builder { 94 ctor public ChildSaProposal.Builder(); 95 method @NonNull public android.net.ipsec.ike.ChildSaProposal.Builder addDhGroup(int); 96 method @NonNull public android.net.ipsec.ike.ChildSaProposal.Builder addEncryptionAlgorithm(int, int); 97 method @NonNull public android.net.ipsec.ike.ChildSaProposal.Builder addIntegrityAlgorithm(int); 98 method @NonNull public android.net.ipsec.ike.ChildSaProposal build(); 99 } 100 101 public interface ChildSessionCallback { 102 method public void onClosed(); 103 method public default void onClosedWithException(@NonNull android.net.ipsec.ike.exceptions.IkeException); 104 method public void onIpSecTransformCreated(@NonNull android.net.IpSecTransform, int); 105 method public void onIpSecTransformDeleted(@NonNull android.net.IpSecTransform, int); 106 method public void onOpened(@NonNull android.net.ipsec.ike.ChildSessionConfiguration); 107 } 108 109 public final class ChildSessionConfiguration { 110 method @NonNull public java.util.List<android.net.ipsec.ike.IkeTrafficSelector> getInboundTrafficSelectors(); 111 method @NonNull public java.util.List<android.net.ipsec.ike.IkeTrafficSelector> getOutboundTrafficSelectors(); 112 } 113 114 public static final class ChildSessionConfiguration.Builder { 115 ctor public ChildSessionConfiguration.Builder(@NonNull java.util.List<android.net.ipsec.ike.IkeTrafficSelector>, @NonNull java.util.List<android.net.ipsec.ike.IkeTrafficSelector>); 116 method @NonNull public android.net.ipsec.ike.ChildSessionConfiguration build(); 117 } 118 119 public abstract class ChildSessionParams { 120 method @NonNull public java.util.List<android.net.ipsec.ike.ChildSaProposal> getChildSaProposals(); 121 method @IntRange(from=0x12c, to=0x3840) public int getHardLifetimeSeconds(); 122 method @NonNull public java.util.List<android.net.ipsec.ike.IkeTrafficSelector> getInboundTrafficSelectors(); 123 method @NonNull public java.util.List<android.net.ipsec.ike.IkeTrafficSelector> getOutboundTrafficSelectors(); 124 method @IntRange(from=0x78, to=0x3840) public int getSoftLifetimeSeconds(); 125 } 126 127 public final class IkeDerAsn1DnIdentification extends android.net.ipsec.ike.IkeIdentification { 128 ctor public IkeDerAsn1DnIdentification(@NonNull javax.security.auth.x500.X500Principal); 129 field @NonNull public final javax.security.auth.x500.X500Principal derAsn1Dn; 130 } 131 132 public class IkeFqdnIdentification extends android.net.ipsec.ike.IkeIdentification { 133 ctor public IkeFqdnIdentification(@NonNull String); 134 field @NonNull public final String fqdn; 135 } 136 137 public abstract class IkeIdentification { 138 } 139 140 public final class IkeIpv4AddrIdentification extends android.net.ipsec.ike.IkeIdentification { 141 ctor public IkeIpv4AddrIdentification(@NonNull java.net.Inet4Address); 142 field @NonNull public final java.net.Inet4Address ipv4Address; 143 } 144 145 public class IkeIpv6AddrIdentification extends android.net.ipsec.ike.IkeIdentification { 146 ctor public IkeIpv6AddrIdentification(@NonNull java.net.Inet6Address); 147 field @NonNull public final java.net.Inet6Address ipv6Address; 148 } 149 150 public final class IkeKeyIdIdentification extends android.net.ipsec.ike.IkeIdentification { 151 ctor public IkeKeyIdIdentification(@NonNull byte[]); 152 field @NonNull public final byte[] keyId; 153 } 154 155 public final class IkeRfc822AddrIdentification extends android.net.ipsec.ike.IkeIdentification { 156 ctor public IkeRfc822AddrIdentification(@NonNull String); 157 field @NonNull public final String rfc822Name; 158 } 159 160 public final class IkeSaProposal extends android.net.ipsec.ike.SaProposal { 161 method @NonNull public java.util.List<java.lang.Integer> getPseudorandomFunctions(); 162 method @NonNull public static java.util.Set<java.lang.Integer> getSupportedEncryptionAlgorithms(); 163 method @NonNull public static java.util.Set<java.lang.Integer> getSupportedIntegrityAlgorithms(); 164 method @NonNull public static java.util.Set<java.lang.Integer> getSupportedPseudorandomFunctions(); 165 } 166 167 public static final class IkeSaProposal.Builder { 168 ctor public IkeSaProposal.Builder(); 169 method @NonNull public android.net.ipsec.ike.IkeSaProposal.Builder addDhGroup(int); 170 method @NonNull public android.net.ipsec.ike.IkeSaProposal.Builder addEncryptionAlgorithm(int, int); 171 method @NonNull public android.net.ipsec.ike.IkeSaProposal.Builder addIntegrityAlgorithm(int); 172 method @NonNull public android.net.ipsec.ike.IkeSaProposal.Builder addPseudorandomFunction(int); 173 method @NonNull public android.net.ipsec.ike.IkeSaProposal build(); 174 } 175 176 public final class IkeSession implements java.lang.AutoCloseable { 177 ctor public IkeSession(@NonNull android.content.Context, @NonNull android.net.ipsec.ike.IkeSessionParams, @NonNull android.net.ipsec.ike.ChildSessionParams, @NonNull java.util.concurrent.Executor, @NonNull android.net.ipsec.ike.IkeSessionCallback, @NonNull android.net.ipsec.ike.ChildSessionCallback); 178 method public void close(); 179 method public void closeChildSession(@NonNull android.net.ipsec.ike.ChildSessionCallback); 180 method public void finalize(); 181 method public void kill(); 182 method public void openChildSession(@NonNull android.net.ipsec.ike.ChildSessionParams, @NonNull android.net.ipsec.ike.ChildSessionCallback); 183 } 184 185 public interface IkeSessionCallback { 186 method public void onClosed(); 187 method public default void onClosedWithException(@NonNull android.net.ipsec.ike.exceptions.IkeException); 188 method public default void onError(@NonNull android.net.ipsec.ike.exceptions.IkeException); 189 method public void onOpened(@NonNull android.net.ipsec.ike.IkeSessionConfiguration); 190 } 191 192 public final class IkeSessionConfiguration { 193 method @Nullable public android.net.eap.EapInfo getEapInfo(); 194 method @NonNull public android.net.ipsec.ike.IkeSessionConnectionInfo getIkeSessionConnectionInfo(); 195 method @NonNull public String getRemoteApplicationVersion(); 196 method @NonNull public java.util.List<byte[]> getRemoteVendorIds(); 197 method public boolean isIkeExtensionEnabled(int); 198 field public static final int EXTENSION_TYPE_FRAGMENTATION = 1; // 0x1 199 field public static final int EXTENSION_TYPE_MOBIKE = 2; // 0x2 200 } 201 202 public static final class IkeSessionConfiguration.Builder { 203 ctor public IkeSessionConfiguration.Builder(@NonNull android.net.ipsec.ike.IkeSessionConnectionInfo); 204 method @NonNull public android.net.ipsec.ike.IkeSessionConfiguration.Builder addIkeExtension(int); 205 method @NonNull public android.net.ipsec.ike.IkeSessionConfiguration.Builder addRemoteVendorId(@NonNull byte[]); 206 method @NonNull public android.net.ipsec.ike.IkeSessionConfiguration build(); 207 method @NonNull public android.net.ipsec.ike.IkeSessionConfiguration.Builder clearIkeExtensions(); 208 method @NonNull public android.net.ipsec.ike.IkeSessionConfiguration.Builder clearRemoteApplicationVersion(); 209 method @NonNull public android.net.ipsec.ike.IkeSessionConfiguration.Builder clearRemoteVendorIds(); 210 method @NonNull public android.net.ipsec.ike.IkeSessionConfiguration.Builder setEapInfo(@Nullable android.net.eap.EapInfo); 211 method @NonNull public android.net.ipsec.ike.IkeSessionConfiguration.Builder setRemoteApplicationVersion(@NonNull String); 212 } 213 214 public final class IkeSessionConnectionInfo { 215 ctor public IkeSessionConnectionInfo(@NonNull java.net.InetAddress, @NonNull java.net.InetAddress, @NonNull android.net.Network); 216 method @NonNull public java.net.InetAddress getLocalAddress(); 217 method @NonNull public android.net.Network getNetwork(); 218 method @NonNull public java.net.InetAddress getRemoteAddress(); 219 } 220 221 public final class IkeSessionParams { 222 method @IntRange(from=0x14, to=0x708) public int getDpdDelaySeconds(); 223 method @IntRange(from=0x12c, to=0x15180) public int getHardLifetimeSeconds(); 224 method @NonNull public java.util.List<android.net.ipsec.ike.IkeSaProposal> getIkeSaProposals(); 225 method @NonNull public android.net.ipsec.ike.IkeSessionParams.IkeAuthConfig getLocalAuthConfig(); 226 method @NonNull public android.net.ipsec.ike.IkeIdentification getLocalIdentification(); 227 method @IntRange(from=0xa, to=0xe10) public int getNattKeepAliveDelaySeconds(); 228 method @Nullable public android.net.Network getNetwork(); 229 method @NonNull public android.net.ipsec.ike.IkeSessionParams.IkeAuthConfig getRemoteAuthConfig(); 230 method @NonNull public android.net.ipsec.ike.IkeIdentification getRemoteIdentification(); 231 method @NonNull public int[] getRetransmissionTimeoutsMillis(); 232 method @NonNull public String getServerHostname(); 233 method @IntRange(from=0x78, to=0x15180) public int getSoftLifetimeSeconds(); 234 method public boolean hasIkeOption(int); 235 field public static final int IKE_OPTION_ACCEPT_ANY_REMOTE_ID = 0; // 0x0 236 field public static final int IKE_OPTION_EAP_ONLY_AUTH = 1; // 0x1 237 field public static final int IKE_OPTION_FORCE_PORT_4500 = 3; // 0x3 238 field public static final int IKE_OPTION_INITIAL_CONTACT = 4; // 0x4 239 field public static final int IKE_OPTION_MOBIKE = 2; // 0x2 240 } 241 242 public static final class IkeSessionParams.Builder { 243 ctor public IkeSessionParams.Builder(); 244 ctor public IkeSessionParams.Builder(@NonNull android.net.ipsec.ike.IkeSessionParams); 245 method @NonNull public android.net.ipsec.ike.IkeSessionParams.Builder addIkeOption(int); 246 method @NonNull public android.net.ipsec.ike.IkeSessionParams.Builder addIkeSaProposal(@NonNull android.net.ipsec.ike.IkeSaProposal); 247 method @NonNull public android.net.ipsec.ike.IkeSessionParams build(); 248 method @NonNull public android.net.ipsec.ike.IkeSessionParams.Builder removeIkeOption(int); 249 method @NonNull public android.net.ipsec.ike.IkeSessionParams.Builder setAuthDigitalSignature(@Nullable java.security.cert.X509Certificate, @NonNull java.security.cert.X509Certificate, @NonNull java.security.PrivateKey); 250 method @NonNull public android.net.ipsec.ike.IkeSessionParams.Builder setAuthDigitalSignature(@Nullable java.security.cert.X509Certificate, @NonNull java.security.cert.X509Certificate, @NonNull java.util.List<java.security.cert.X509Certificate>, @NonNull java.security.PrivateKey); 251 method @NonNull public android.net.ipsec.ike.IkeSessionParams.Builder setAuthEap(@Nullable java.security.cert.X509Certificate, @NonNull android.net.eap.EapSessionConfig); 252 method @NonNull public android.net.ipsec.ike.IkeSessionParams.Builder setAuthPsk(@NonNull byte[]); 253 method @NonNull public android.net.ipsec.ike.IkeSessionParams.Builder setDpdDelaySeconds(@IntRange(from=0x14, to=0x708) int); 254 method @NonNull public android.net.ipsec.ike.IkeSessionParams.Builder setLifetimeSeconds(@IntRange(from=0x12c, to=0x15180) int, @IntRange(from=0x78, to=0x15180) int); 255 method @NonNull public android.net.ipsec.ike.IkeSessionParams.Builder setLocalIdentification(@NonNull android.net.ipsec.ike.IkeIdentification); 256 method @NonNull public android.net.ipsec.ike.IkeSessionParams.Builder setNattKeepAliveDelaySeconds(@IntRange(from=0xa, to=0xe10) int); 257 method @NonNull public android.net.ipsec.ike.IkeSessionParams.Builder setNetwork(@Nullable android.net.Network); 258 method @NonNull public android.net.ipsec.ike.IkeSessionParams.Builder setRemoteIdentification(@NonNull android.net.ipsec.ike.IkeIdentification); 259 method @NonNull public android.net.ipsec.ike.IkeSessionParams.Builder setRetransmissionTimeoutsMillis(@NonNull int[]); 260 method @NonNull public android.net.ipsec.ike.IkeSessionParams.Builder setServerHostname(@NonNull String); 261 } 262 263 public abstract static class IkeSessionParams.IkeAuthConfig { 264 } 265 266 public static class IkeSessionParams.IkeAuthDigitalSignLocalConfig extends android.net.ipsec.ike.IkeSessionParams.IkeAuthConfig { 267 method @NonNull public java.security.cert.X509Certificate getClientEndCertificate(); 268 method @NonNull public java.util.List<java.security.cert.X509Certificate> getIntermediateCertificates(); 269 method @NonNull public java.security.PrivateKey getPrivateKey(); 270 } 271 272 public static class IkeSessionParams.IkeAuthDigitalSignRemoteConfig extends android.net.ipsec.ike.IkeSessionParams.IkeAuthConfig { 273 method @Nullable public java.security.cert.X509Certificate getRemoteCaCert(); 274 } 275 276 public static class IkeSessionParams.IkeAuthEapConfig extends android.net.ipsec.ike.IkeSessionParams.IkeAuthConfig { 277 method @NonNull public android.net.eap.EapSessionConfig getEapConfig(); 278 } 279 280 public static class IkeSessionParams.IkeAuthPskConfig extends android.net.ipsec.ike.IkeSessionParams.IkeAuthConfig { 281 method @NonNull public byte[] getPsk(); 282 } 283 284 public final class IkeTrafficSelector { 285 ctor public IkeTrafficSelector(int, int, @NonNull java.net.InetAddress, @NonNull java.net.InetAddress); 286 field public final int endPort; 287 field @NonNull public final java.net.InetAddress endingAddress; 288 field public final int startPort; 289 field @NonNull public final java.net.InetAddress startingAddress; 290 } 291 292 public final class IkeTunnelConnectionParams { 293 ctor public IkeTunnelConnectionParams(@NonNull android.net.ipsec.ike.IkeSessionParams, @NonNull android.net.ipsec.ike.TunnelModeChildSessionParams); 294 method @NonNull public android.net.ipsec.ike.IkeSessionParams getIkeSessionParams(); 295 method @NonNull public android.net.ipsec.ike.TunnelModeChildSessionParams getTunnelModeChildSessionParams(); 296 } 297 298 public abstract class SaProposal { 299 method @NonNull public java.util.List<java.lang.Integer> getDhGroups(); 300 method @NonNull public java.util.List<android.util.Pair<java.lang.Integer,java.lang.Integer>> getEncryptionAlgorithms(); 301 method @NonNull public java.util.List<java.lang.Integer> getIntegrityAlgorithms(); 302 method @NonNull public static java.util.Set<java.lang.Integer> getSupportedDhGroups(); 303 field public static final int DH_GROUP_1024_BIT_MODP = 2; // 0x2 304 field public static final int DH_GROUP_1536_BIT_MODP = 5; // 0x5 305 field public static final int DH_GROUP_2048_BIT_MODP = 14; // 0xe 306 field public static final int DH_GROUP_3072_BIT_MODP = 15; // 0xf 307 field public static final int DH_GROUP_4096_BIT_MODP = 16; // 0x10 308 field public static final int DH_GROUP_CURVE_25519 = 31; // 0x1f 309 field public static final int DH_GROUP_NONE = 0; // 0x0 310 field public static final int ENCRYPTION_ALGORITHM_3DES = 3; // 0x3 311 field public static final int ENCRYPTION_ALGORITHM_AES_CBC = 12; // 0xc 312 field public static final int ENCRYPTION_ALGORITHM_AES_CTR = 13; // 0xd 313 field public static final int ENCRYPTION_ALGORITHM_AES_GCM_12 = 19; // 0x13 314 field public static final int ENCRYPTION_ALGORITHM_AES_GCM_16 = 20; // 0x14 315 field public static final int ENCRYPTION_ALGORITHM_AES_GCM_8 = 18; // 0x12 316 field public static final int ENCRYPTION_ALGORITHM_CHACHA20_POLY1305 = 28; // 0x1c 317 field public static final int INTEGRITY_ALGORITHM_AES_CMAC_96 = 8; // 0x8 318 field public static final int INTEGRITY_ALGORITHM_AES_XCBC_96 = 5; // 0x5 319 field public static final int INTEGRITY_ALGORITHM_HMAC_SHA1_96 = 2; // 0x2 320 field public static final int INTEGRITY_ALGORITHM_HMAC_SHA2_256_128 = 12; // 0xc 321 field public static final int INTEGRITY_ALGORITHM_HMAC_SHA2_384_192 = 13; // 0xd 322 field public static final int INTEGRITY_ALGORITHM_HMAC_SHA2_512_256 = 14; // 0xe 323 field public static final int INTEGRITY_ALGORITHM_NONE = 0; // 0x0 324 field public static final int KEY_LEN_AES_128 = 128; // 0x80 325 field public static final int KEY_LEN_AES_192 = 192; // 0xc0 326 field public static final int KEY_LEN_AES_256 = 256; // 0x100 327 field public static final int KEY_LEN_UNUSED = 0; // 0x0 328 field public static final int PSEUDORANDOM_FUNCTION_AES128_CMAC = 8; // 0x8 329 field public static final int PSEUDORANDOM_FUNCTION_AES128_XCBC = 4; // 0x4 330 field public static final int PSEUDORANDOM_FUNCTION_HMAC_SHA1 = 2; // 0x2 331 field public static final int PSEUDORANDOM_FUNCTION_SHA2_256 = 5; // 0x5 332 field public static final int PSEUDORANDOM_FUNCTION_SHA2_384 = 6; // 0x6 333 field public static final int PSEUDORANDOM_FUNCTION_SHA2_512 = 7; // 0x7 334 } 335 336 public final class TransportModeChildSessionParams extends android.net.ipsec.ike.ChildSessionParams { 337 } 338 339 public static final class TransportModeChildSessionParams.Builder { 340 ctor public TransportModeChildSessionParams.Builder(); 341 ctor public TransportModeChildSessionParams.Builder(@NonNull android.net.ipsec.ike.TransportModeChildSessionParams); 342 method @NonNull public android.net.ipsec.ike.TransportModeChildSessionParams.Builder addChildSaProposal(@NonNull android.net.ipsec.ike.ChildSaProposal); 343 method @NonNull public android.net.ipsec.ike.TransportModeChildSessionParams.Builder addInboundTrafficSelectors(@NonNull android.net.ipsec.ike.IkeTrafficSelector); 344 method @NonNull public android.net.ipsec.ike.TransportModeChildSessionParams.Builder addOutboundTrafficSelectors(@NonNull android.net.ipsec.ike.IkeTrafficSelector); 345 method @NonNull public android.net.ipsec.ike.TransportModeChildSessionParams build(); 346 method @NonNull public android.net.ipsec.ike.TransportModeChildSessionParams.Builder setLifetimeSeconds(@IntRange(from=0x12c, to=0x3840) int, @IntRange(from=0x78, to=0x3840) int); 347 } 348 349 public final class TunnelModeChildSessionParams extends android.net.ipsec.ike.ChildSessionParams { 350 method @NonNull public java.util.List<android.net.ipsec.ike.TunnelModeChildSessionParams.TunnelModeChildConfigRequest> getConfigurationRequests(); 351 } 352 353 public static final class TunnelModeChildSessionParams.Builder { 354 ctor public TunnelModeChildSessionParams.Builder(); 355 ctor public TunnelModeChildSessionParams.Builder(@NonNull android.net.ipsec.ike.TunnelModeChildSessionParams); 356 method @NonNull public android.net.ipsec.ike.TunnelModeChildSessionParams.Builder addChildSaProposal(@NonNull android.net.ipsec.ike.ChildSaProposal); 357 method @NonNull public android.net.ipsec.ike.TunnelModeChildSessionParams.Builder addInboundTrafficSelectors(@NonNull android.net.ipsec.ike.IkeTrafficSelector); 358 method @NonNull public android.net.ipsec.ike.TunnelModeChildSessionParams.Builder addInternalAddressRequest(int); 359 method @NonNull public android.net.ipsec.ike.TunnelModeChildSessionParams.Builder addInternalAddressRequest(@NonNull java.net.Inet4Address); 360 method @NonNull public android.net.ipsec.ike.TunnelModeChildSessionParams.Builder addInternalAddressRequest(@NonNull java.net.Inet6Address, int); 361 method @NonNull public android.net.ipsec.ike.TunnelModeChildSessionParams.Builder addInternalDhcpServerRequest(int); 362 method @NonNull public android.net.ipsec.ike.TunnelModeChildSessionParams.Builder addInternalDnsServerRequest(int); 363 method @NonNull public android.net.ipsec.ike.TunnelModeChildSessionParams.Builder addOutboundTrafficSelectors(@NonNull android.net.ipsec.ike.IkeTrafficSelector); 364 method @NonNull public android.net.ipsec.ike.TunnelModeChildSessionParams build(); 365 method @NonNull public android.net.ipsec.ike.TunnelModeChildSessionParams.Builder setLifetimeSeconds(@IntRange(from=0x12c, to=0x3840) int, @IntRange(from=0x78, to=0x3840) int); 366 } 367 368 public static interface TunnelModeChildSessionParams.ConfigRequestIpv4Address extends android.net.ipsec.ike.TunnelModeChildSessionParams.TunnelModeChildConfigRequest { 369 method @Nullable public java.net.Inet4Address getAddress(); 370 } 371 372 public static interface TunnelModeChildSessionParams.ConfigRequestIpv4DhcpServer extends android.net.ipsec.ike.TunnelModeChildSessionParams.TunnelModeChildConfigRequest { 373 } 374 375 public static interface TunnelModeChildSessionParams.ConfigRequestIpv4DnsServer extends android.net.ipsec.ike.TunnelModeChildSessionParams.TunnelModeChildConfigRequest { 376 } 377 378 public static interface TunnelModeChildSessionParams.ConfigRequestIpv4Netmask extends android.net.ipsec.ike.TunnelModeChildSessionParams.TunnelModeChildConfigRequest { 379 } 380 381 public static interface TunnelModeChildSessionParams.ConfigRequestIpv6Address extends android.net.ipsec.ike.TunnelModeChildSessionParams.TunnelModeChildConfigRequest { 382 method @Nullable public java.net.Inet6Address getAddress(); 383 method public int getPrefixLength(); 384 } 385 386 public static interface TunnelModeChildSessionParams.ConfigRequestIpv6DnsServer extends android.net.ipsec.ike.TunnelModeChildSessionParams.TunnelModeChildConfigRequest { 387 } 388 389 public static interface TunnelModeChildSessionParams.TunnelModeChildConfigRequest { 390 } 391 392} 393 394package android.net.ipsec.ike.exceptions { 395 396 public abstract class IkeException extends java.lang.Exception { 397 } 398 399 public final class IkeIOException extends android.net.ipsec.ike.exceptions.IkeNonProtocolException { 400 ctor public IkeIOException(@NonNull java.io.IOException); 401 method @NonNull public java.io.IOException getCause(); 402 } 403 404 public final class IkeInternalException extends android.net.ipsec.ike.exceptions.IkeNonProtocolException { 405 ctor public IkeInternalException(@NonNull Throwable); 406 ctor public IkeInternalException(@NonNull String, @NonNull Throwable); 407 } 408 409 public final class IkeNetworkLostException extends android.net.ipsec.ike.exceptions.IkeNonProtocolException { 410 ctor public IkeNetworkLostException(@NonNull android.net.Network); 411 method @NonNull public android.net.Network getNetwork(); 412 } 413 414 public abstract class IkeNonProtocolException extends android.net.ipsec.ike.exceptions.IkeException { 415 } 416 417 public abstract class IkeProtocolException extends android.net.ipsec.ike.exceptions.IkeException { 418 method public int getErrorType(); 419 field public static final int ERROR_TYPE_AUTHENTICATION_FAILED = 24; // 0x18 420 field public static final int ERROR_TYPE_CHILD_SA_NOT_FOUND = 44; // 0x2c 421 field public static final int ERROR_TYPE_FAILED_CP_REQUIRED = 37; // 0x25 422 field public static final int ERROR_TYPE_INTERNAL_ADDRESS_FAILURE = 36; // 0x24 423 field public static final int ERROR_TYPE_INVALID_IKE_SPI = 4; // 0x4 424 field public static final int ERROR_TYPE_INVALID_KE_PAYLOAD = 17; // 0x11 425 field public static final int ERROR_TYPE_INVALID_MAJOR_VERSION = 5; // 0x5 426 field public static final int ERROR_TYPE_INVALID_MESSAGE_ID = 9; // 0x9 427 field public static final int ERROR_TYPE_INVALID_SELECTORS = 39; // 0x27 428 field public static final int ERROR_TYPE_INVALID_SYNTAX = 7; // 0x7 429 field public static final int ERROR_TYPE_NO_ADDITIONAL_SAS = 35; // 0x23 430 field public static final int ERROR_TYPE_NO_PROPOSAL_CHOSEN = 14; // 0xe 431 field public static final int ERROR_TYPE_SINGLE_PAIR_REQUIRED = 34; // 0x22 432 field public static final int ERROR_TYPE_TEMPORARY_FAILURE = 43; // 0x2b 433 field public static final int ERROR_TYPE_TS_UNACCEPTABLE = 38; // 0x26 434 field public static final int ERROR_TYPE_UNSUPPORTED_CRITICAL_PAYLOAD = 1; // 0x1 435 } 436 437 public final class IkeTimeoutException extends java.io.IOException { 438 ctor public IkeTimeoutException(@NonNull String); 439 } 440 441 public final class InvalidKeException extends android.net.ipsec.ike.exceptions.IkeProtocolException { 442 ctor public InvalidKeException(int); 443 method public int getDhGroup(); 444 } 445 446 public final class InvalidMajorVersionException extends android.net.ipsec.ike.exceptions.IkeProtocolException { 447 ctor public InvalidMajorVersionException(byte); 448 method public byte getMajorVersion(); 449 } 450 451 public final class InvalidSelectorsException extends android.net.ipsec.ike.exceptions.IkeProtocolException { 452 ctor public InvalidSelectorsException(int, @NonNull byte[]); 453 method @NonNull public byte[] getIpSecPacketInfo(); 454 method public int getIpSecSpi(); 455 } 456 457} 458 459