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