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