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