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