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