• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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