Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5daf75d5 authored by evitayan's avatar evitayan Committed by Yan Yan
Browse files

Do not expose module IPsec(IKE) API from frameworks

Module IPsec(IKE) will not be in bootclasspath or expose API
from frameworks/base anymore. Instead it will be built as a
java_sdk_library and expose APIs under its own directory.

This commit:
- Removes API from frameworks/base
- Adds ike to FrameworksNetTests manifest so that VpnTest is
  able to load it.

Bug: 145995723
Test: build, flash, boot
Test: atest FramewokrsIkeTests (passed)
Test: m mts && mts-tradefed run mts-ipsec (passed)
Test: manually tested that FrameworksNetTests can use ike.jar
Change-Id: I37ba02eb3003ea28e66f50ca0b612597ef48f6d5
Merged-In: I37ba02eb3003ea28e66f50ca0b612597ef48f6d5
parent a975b9a9
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -49,7 +49,6 @@ stubs_defaults {
        ":opt-net-voip-srcs",
        ":core-current-stubs-source",
        ":core_public_api_files",
        ":ike-api-srcs",
    ],
    libs: ["framework-internal-utils"],
    installable: false,
+0 −331
Original line number Diff line number Diff line
@@ -5001,337 +5001,6 @@ package android.net.apf {
}
package android.net.eap {
  public final class EapSessionConfig {
  }
  public static final class EapSessionConfig.Builder {
    ctor public EapSessionConfig.Builder();
    method @NonNull public android.net.eap.EapSessionConfig build();
    method @NonNull public android.net.eap.EapSessionConfig.Builder setEapAkaConfig(int, int);
    method @NonNull public android.net.eap.EapSessionConfig.Builder setEapAkaPrimeConfig(int, int, @NonNull String, boolean);
    method @NonNull public android.net.eap.EapSessionConfig.Builder setEapIdentity(@NonNull byte[]);
    method @NonNull public android.net.eap.EapSessionConfig.Builder setEapMsChapV2Config(@NonNull String, @NonNull String);
    method @NonNull public android.net.eap.EapSessionConfig.Builder setEapSimConfig(int, int);
  }
  public static class EapSessionConfig.EapAkaConfig extends android.net.eap.EapSessionConfig.EapUiccConfig {
  }
  public static class EapSessionConfig.EapAkaPrimeConfig extends android.net.eap.EapSessionConfig.EapAkaConfig {
    method public boolean allowsMismatchedNetworkNames();
    method @NonNull public String getNetworkName();
  }
  public abstract static class EapSessionConfig.EapMethodConfig {
    method public int getMethodType();
  }
  public static class EapSessionConfig.EapMsChapV2Config extends android.net.eap.EapSessionConfig.EapMethodConfig {
    method @NonNull public String getPassword();
    method @NonNull public String getUsername();
  }
  public static class EapSessionConfig.EapSimConfig extends android.net.eap.EapSessionConfig.EapUiccConfig {
  }
  public abstract static class EapSessionConfig.EapUiccConfig extends android.net.eap.EapSessionConfig.EapMethodConfig {
    method public int getAppType();
    method public int getSubId();
  }
}
package android.net.ipsec.ike {
  public final class ChildSaProposal extends android.net.ipsec.ike.SaProposal {
  }
  public static final class ChildSaProposal.Builder {
    ctor public ChildSaProposal.Builder();
    method @NonNull public android.net.ipsec.ike.ChildSaProposal.Builder addDhGroup(int);
    method @NonNull public android.net.ipsec.ike.ChildSaProposal.Builder addEncryptionAlgorithm(int, int);
    method @NonNull public android.net.ipsec.ike.ChildSaProposal.Builder addIntegrityAlgorithm(int);
    method @NonNull public android.net.ipsec.ike.ChildSaProposal build();
  }
  public interface ChildSessionCallback {
    method public void onClosed();
    method public void onClosedExceptionally(@NonNull android.net.ipsec.ike.exceptions.IkeException);
    method public void onIpSecTransformCreated(@NonNull android.net.IpSecTransform, int);
    method public void onIpSecTransformDeleted(@NonNull android.net.IpSecTransform, int);
    method public void onOpened(@NonNull android.net.ipsec.ike.ChildSessionConfiguration);
  }
  public final class ChildSessionConfiguration {
    method @NonNull public java.util.List<android.net.ipsec.ike.IkeTrafficSelector> getInboundTrafficSelectors();
    method @NonNull public java.util.List<android.net.LinkAddress> getInternalAddresses();
    method @NonNull public java.util.List<java.net.InetAddress> getInternalDhcpServers();
    method @NonNull public java.util.List<java.net.InetAddress> getInternalDnsServers();
    method @NonNull public java.util.List<android.net.IpPrefix> getInternalSubnets();
    method @NonNull public java.util.List<android.net.ipsec.ike.IkeTrafficSelector> getOutboundTrafficSelectors();
  }
  public abstract class ChildSessionParams {
    method public long getHardLifetime();
    method @NonNull public java.util.List<android.net.ipsec.ike.IkeTrafficSelector> getLocalTrafficSelectors();
    method @NonNull public java.util.List<android.net.ipsec.ike.IkeTrafficSelector> getRemoteTrafficSelectors();
    method @NonNull public java.util.List<android.net.ipsec.ike.ChildSaProposal> getSaProposals();
    method public long getSoftLifetime();
  }
  public class IkeFqdnIdentification extends android.net.ipsec.ike.IkeIdentification {
    ctor public IkeFqdnIdentification(@NonNull String);
    field @NonNull public final String fqdn;
  }
  public abstract class IkeIdentification {
  }
  public final class IkeIpv4AddrIdentification extends android.net.ipsec.ike.IkeIdentification {
    ctor public IkeIpv4AddrIdentification(@NonNull java.net.Inet4Address);
    field @NonNull public final java.net.Inet4Address ipv4Address;
  }
  public class IkeIpv6AddrIdentification extends android.net.ipsec.ike.IkeIdentification {
    ctor public IkeIpv6AddrIdentification(@NonNull java.net.Inet6Address);
    field @NonNull public final java.net.Inet6Address ipv6Address;
  }
  public final class IkeKeyIdIdentification extends android.net.ipsec.ike.IkeIdentification {
    ctor public IkeKeyIdIdentification(@NonNull byte[]);
    field @NonNull public final byte[] keyId;
  }
  public final class IkeRfc822AddrIdentification extends android.net.ipsec.ike.IkeIdentification {
    ctor public IkeRfc822AddrIdentification(@NonNull String);
    field @NonNull public final String rfc822Name;
  }
  public final class IkeSaProposal extends android.net.ipsec.ike.SaProposal {
    method @NonNull public java.util.List<java.lang.Integer> getPseudorandomFunctions();
  }
  public static final class IkeSaProposal.Builder {
    ctor public IkeSaProposal.Builder();
    method @NonNull public android.net.ipsec.ike.IkeSaProposal.Builder addDhGroup(int);
    method @NonNull public android.net.ipsec.ike.IkeSaProposal.Builder addEncryptionAlgorithm(int, int);
    method @NonNull public android.net.ipsec.ike.IkeSaProposal.Builder addIntegrityAlgorithm(int);
    method @NonNull public android.net.ipsec.ike.IkeSaProposal.Builder addPseudorandomFunction(int);
    method @NonNull public android.net.ipsec.ike.IkeSaProposal build();
  }
  public final class IkeSession implements java.lang.AutoCloseable {
    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);
    method public void close();
    method public void closeChildSession(@NonNull android.net.ipsec.ike.ChildSessionCallback);
    method public void kill();
    method public void openChildSession(@NonNull android.net.ipsec.ike.ChildSessionParams, @NonNull android.net.ipsec.ike.ChildSessionCallback);
  }
  public interface IkeSessionCallback {
    method public void onClosed();
    method public void onClosedExceptionally(@NonNull android.net.ipsec.ike.exceptions.IkeException);
    method public void onError(@NonNull android.net.ipsec.ike.exceptions.IkeProtocolException);
    method public void onOpened(@NonNull android.net.ipsec.ike.IkeSessionConfiguration);
  }
  public final class IkeSessionConfiguration {
    method @NonNull public java.util.List<java.net.InetAddress> getPcscfServers();
    method @NonNull public String getRemoteApplicationVersion();
    method @NonNull public java.util.List<byte[]> getRemoteVendorIDs();
    method public boolean isIkeExtensionEnabled(int);
    field public static final int EXTENSION_TYPE_FRAGMENTATION = 1; // 0x1
    field public static final int EXTENSION_TYPE_MOBIKE = 2; // 0x2
  }
  public final class IkeSessionParams {
    method @NonNull public java.util.List<android.net.ipsec.ike.IkeSessionParams.IkeConfigRequest> getConfigurationRequests();
    method public long getHardLifetime();
    method @NonNull public android.net.ipsec.ike.IkeSessionParams.IkeAuthConfig getLocalAuthConfig();
    method @NonNull public android.net.ipsec.ike.IkeIdentification getLocalIdentification();
    method @NonNull public android.net.ipsec.ike.IkeSessionParams.IkeAuthConfig getRemoteAuthConfig();
    method @NonNull public android.net.ipsec.ike.IkeIdentification getRemoteIdentification();
    method @NonNull public java.util.List<android.net.ipsec.ike.IkeSaProposal> getSaProposals();
    method @NonNull public java.net.InetAddress getServerAddress();
    method public long getSoftLifetime();
    method @NonNull public android.net.IpSecManager.UdpEncapsulationSocket getUdpEncapsulationSocket();
  }
  public static final class IkeSessionParams.Builder {
    ctor public IkeSessionParams.Builder();
    method @NonNull public android.net.ipsec.ike.IkeSessionParams.Builder addPcscfServerRequest(@NonNull java.net.InetAddress);
    method @NonNull public android.net.ipsec.ike.IkeSessionParams.Builder addPcscfServerRequest(int);
    method @NonNull public android.net.ipsec.ike.IkeSessionParams.Builder addSaProposal(@NonNull android.net.ipsec.ike.IkeSaProposal);
    method @NonNull public android.net.ipsec.ike.IkeSessionParams build();
    method @NonNull public android.net.ipsec.ike.IkeSessionParams.Builder setAuthDigitalSignature(@Nullable java.security.cert.X509Certificate, @NonNull java.security.cert.X509Certificate, @NonNull java.security.PrivateKey);
    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);
    method @NonNull public android.net.ipsec.ike.IkeSessionParams.Builder setAuthEap(@Nullable java.security.cert.X509Certificate, @NonNull android.net.eap.EapSessionConfig);
    method @NonNull public android.net.ipsec.ike.IkeSessionParams.Builder setAuthPsk(@NonNull byte[]);
    method @NonNull public android.net.ipsec.ike.IkeSessionParams.Builder setLifetime(long, long);
    method @NonNull public android.net.ipsec.ike.IkeSessionParams.Builder setLocalIdentification(@NonNull android.net.ipsec.ike.IkeIdentification);
    method @NonNull public android.net.ipsec.ike.IkeSessionParams.Builder setRemoteIdentification(@NonNull android.net.ipsec.ike.IkeIdentification);
    method @NonNull public android.net.ipsec.ike.IkeSessionParams.Builder setServerAddress(@NonNull java.net.InetAddress);
    method @NonNull public android.net.ipsec.ike.IkeSessionParams.Builder setUdpEncapsulationSocket(@NonNull android.net.IpSecManager.UdpEncapsulationSocket);
  }
  public static interface IkeSessionParams.ConfigRequestIpv4PcscfServer extends android.net.ipsec.ike.IkeSessionParams.IkeConfigRequest {
    method @Nullable public java.net.Inet4Address getAddress();
  }
  public static interface IkeSessionParams.ConfigRequestIpv6PcscfServer extends android.net.ipsec.ike.IkeSessionParams.IkeConfigRequest {
    method @Nullable public java.net.Inet6Address getAddress();
  }
  public abstract static class IkeSessionParams.IkeAuthConfig {
  }
  public static class IkeSessionParams.IkeAuthDigitalSignLocalConfig extends android.net.ipsec.ike.IkeSessionParams.IkeAuthConfig {
    method @NonNull public java.security.cert.X509Certificate getClientEndCertificate();
    method @NonNull public java.util.List<java.security.cert.X509Certificate> getIntermediateCertificates();
    method @NonNull public java.security.PrivateKey getPrivateKey();
  }
  public static class IkeSessionParams.IkeAuthDigitalSignRemoteConfig extends android.net.ipsec.ike.IkeSessionParams.IkeAuthConfig {
    method @Nullable public java.security.cert.X509Certificate getRemoteCaCert();
  }
  public static class IkeSessionParams.IkeAuthEapConfig extends android.net.ipsec.ike.IkeSessionParams.IkeAuthConfig {
    method @NonNull public android.net.eap.EapSessionConfig getEapConfig();
  }
  public static class IkeSessionParams.IkeAuthPskConfig extends android.net.ipsec.ike.IkeSessionParams.IkeAuthConfig {
    method @NonNull public byte[] getPsk();
  }
  public static interface IkeSessionParams.IkeConfigRequest {
  }
  public final class IkeTrafficSelector {
    ctor public IkeTrafficSelector(int, int, @NonNull java.net.InetAddress, @NonNull java.net.InetAddress);
    field public final int endPort;
    field @NonNull public final java.net.InetAddress endingAddress;
    field public final int startPort;
    field @NonNull public final java.net.InetAddress startingAddress;
  }
  public abstract class SaProposal {
    method @NonNull public java.util.List<java.lang.Integer> getDhGroups();
    method @NonNull public java.util.List<android.util.Pair<java.lang.Integer,java.lang.Integer>> getEncryptionAlgorithms();
    method @NonNull public java.util.List<java.lang.Integer> getIntegrityAlgorithms();
    field public static final int DH_GROUP_1024_BIT_MODP = 2; // 0x2
    field public static final int DH_GROUP_2048_BIT_MODP = 14; // 0xe
    field public static final int DH_GROUP_NONE = 0; // 0x0
    field public static final int ENCRYPTION_ALGORITHM_3DES = 3; // 0x3
    field public static final int ENCRYPTION_ALGORITHM_AES_CBC = 12; // 0xc
    field public static final int ENCRYPTION_ALGORITHM_AES_GCM_12 = 19; // 0x13
    field public static final int ENCRYPTION_ALGORITHM_AES_GCM_16 = 20; // 0x14
    field public static final int ENCRYPTION_ALGORITHM_AES_GCM_8 = 18; // 0x12
    field public static final int INTEGRITY_ALGORITHM_AES_XCBC_96 = 5; // 0x5
    field public static final int INTEGRITY_ALGORITHM_HMAC_SHA1_96 = 2; // 0x2
    field public static final int INTEGRITY_ALGORITHM_HMAC_SHA2_256_128 = 12; // 0xc
    field public static final int INTEGRITY_ALGORITHM_HMAC_SHA2_384_192 = 13; // 0xd
    field public static final int INTEGRITY_ALGORITHM_HMAC_SHA2_512_256 = 14; // 0xe
    field public static final int INTEGRITY_ALGORITHM_NONE = 0; // 0x0
    field public static final int KEY_LEN_AES_128 = 128; // 0x80
    field public static final int KEY_LEN_AES_192 = 192; // 0xc0
    field public static final int KEY_LEN_AES_256 = 256; // 0x100
    field public static final int KEY_LEN_UNUSED = 0; // 0x0
    field public static final int PSEUDORANDOM_FUNCTION_AES128_XCBC = 4; // 0x4
    field public static final int PSEUDORANDOM_FUNCTION_HMAC_SHA1 = 2; // 0x2
  }
  public final class TransportModeChildSessionParams extends android.net.ipsec.ike.ChildSessionParams {
  }
  public static final class TransportModeChildSessionParams.Builder {
    ctor public TransportModeChildSessionParams.Builder();
    method @NonNull public android.net.ipsec.ike.TransportModeChildSessionParams.Builder addInboundTrafficSelectors(@NonNull android.net.ipsec.ike.IkeTrafficSelector);
    method @NonNull public android.net.ipsec.ike.TransportModeChildSessionParams.Builder addOutboundTrafficSelectors(@NonNull android.net.ipsec.ike.IkeTrafficSelector);
    method @NonNull public android.net.ipsec.ike.TransportModeChildSessionParams.Builder addSaProposal(@NonNull android.net.ipsec.ike.ChildSaProposal);
    method @NonNull public android.net.ipsec.ike.TransportModeChildSessionParams build();
    method @NonNull public android.net.ipsec.ike.TransportModeChildSessionParams.Builder setLifetime(long, long);
  }
  public final class TunnelModeChildSessionParams extends android.net.ipsec.ike.ChildSessionParams {
    method @NonNull public java.util.List<android.net.ipsec.ike.TunnelModeChildSessionParams.TunnelModeChildConfigRequest> getConfigurationRequests();
  }
  public static final class TunnelModeChildSessionParams.Builder {
    ctor public TunnelModeChildSessionParams.Builder();
    method @NonNull public android.net.ipsec.ike.TunnelModeChildSessionParams.Builder addInboundTrafficSelectors(@NonNull android.net.ipsec.ike.IkeTrafficSelector);
    method @NonNull public android.net.ipsec.ike.TunnelModeChildSessionParams.Builder addInternalAddressRequest(int);
    method @NonNull public android.net.ipsec.ike.TunnelModeChildSessionParams.Builder addInternalAddressRequest(@NonNull java.net.Inet4Address);
    method @NonNull public android.net.ipsec.ike.TunnelModeChildSessionParams.Builder addInternalAddressRequest(@NonNull java.net.Inet6Address, int);
    method @NonNull public android.net.ipsec.ike.TunnelModeChildSessionParams.Builder addInternalDhcpServerRequest(int);
    method @NonNull public android.net.ipsec.ike.TunnelModeChildSessionParams.Builder addInternalDnsServerRequest(int);
    method @NonNull public android.net.ipsec.ike.TunnelModeChildSessionParams.Builder addOutboundTrafficSelectors(@NonNull android.net.ipsec.ike.IkeTrafficSelector);
    method @NonNull public android.net.ipsec.ike.TunnelModeChildSessionParams.Builder addSaProposal(@NonNull android.net.ipsec.ike.ChildSaProposal);
    method @NonNull public android.net.ipsec.ike.TunnelModeChildSessionParams build();
    method @NonNull public android.net.ipsec.ike.TunnelModeChildSessionParams.Builder setLifetime(long, long);
  }
  public static interface TunnelModeChildSessionParams.ConfigRequestIpv4Address extends android.net.ipsec.ike.TunnelModeChildSessionParams.TunnelModeChildConfigRequest {
    method @Nullable public java.net.Inet4Address getAddress();
  }
  public static interface TunnelModeChildSessionParams.ConfigRequestIpv4DhcpServer extends android.net.ipsec.ike.TunnelModeChildSessionParams.TunnelModeChildConfigRequest {
    method @Nullable public java.net.Inet4Address getAddress();
  }
  public static interface TunnelModeChildSessionParams.ConfigRequestIpv4DnsServer extends android.net.ipsec.ike.TunnelModeChildSessionParams.TunnelModeChildConfigRequest {
    method @Nullable public java.net.Inet4Address getAddress();
  }
  public static interface TunnelModeChildSessionParams.ConfigRequestIpv4Netmask extends android.net.ipsec.ike.TunnelModeChildSessionParams.TunnelModeChildConfigRequest {
  }
  public static interface TunnelModeChildSessionParams.ConfigRequestIpv6Address extends android.net.ipsec.ike.TunnelModeChildSessionParams.TunnelModeChildConfigRequest {
    method @Nullable public java.net.Inet6Address getAddress();
    method public int getPrefixLength();
  }
  public static interface TunnelModeChildSessionParams.ConfigRequestIpv6DnsServer extends android.net.ipsec.ike.TunnelModeChildSessionParams.TunnelModeChildConfigRequest {
    method @Nullable public java.net.Inet6Address getAddress();
  }
  public static interface TunnelModeChildSessionParams.TunnelModeChildConfigRequest {
  }
}
package android.net.ipsec.ike.exceptions {
  public abstract class IkeException extends java.lang.Exception {
  }
  public final class IkeInternalException extends android.net.ipsec.ike.exceptions.IkeException {
  }
  public abstract class IkeProtocolException extends android.net.ipsec.ike.exceptions.IkeException {
    method @Nullable public byte[] getErrorData();
    method public int getErrorType();
    field public static final int ERROR_TYPE_AUTHENTICATION_FAILED = 24; // 0x18
    field public static final int ERROR_TYPE_CHILD_SA_NOT_FOUND = 44; // 0x2c
    field public static final int ERROR_TYPE_FAILED_CP_REQUIRED = 37; // 0x25
    field public static final int ERROR_TYPE_INTERNAL_ADDRESS_FAILURE = 36; // 0x24
    field public static final int ERROR_TYPE_INVALID_IKE_SPI = 4; // 0x4
    field public static final int ERROR_TYPE_INVALID_KE_PAYLOAD = 17; // 0x11
    field public static final int ERROR_TYPE_INVALID_MAJOR_VERSION = 5; // 0x5
    field public static final int ERROR_TYPE_INVALID_MESSAGE_ID = 9; // 0x9
    field public static final int ERROR_TYPE_INVALID_SELECTORS = 39; // 0x27
    field public static final int ERROR_TYPE_INVALID_SYNTAX = 7; // 0x7
    field public static final int ERROR_TYPE_NO_ADDITIONAL_SAS = 35; // 0x23
    field public static final int ERROR_TYPE_NO_PROPOSAL_CHOSEN = 14; // 0xe
    field public static final int ERROR_TYPE_SINGLE_PAIR_REQUIRED = 34; // 0x22
    field public static final int ERROR_TYPE_TEMPORARY_FAILURE = 43; // 0x2b
    field public static final int ERROR_TYPE_TS_UNACCEPTABLE = 38; // 0x26
    field public static final int ERROR_TYPE_UNSUPPORTED_CRITICAL_PAYLOAD = 1; // 0x1
  }
}
package android.net.metrics {
  public final class ApfProgramEvent implements android.net.metrics.IpConnectivityLog.Event {
+1 −0
Original line number Diff line number Diff line
@@ -50,6 +50,7 @@

    <application>
        <uses-library android:name="android.test.runner" />
        <uses-library android:name="android.net.ipsec.ike" />
    </application>

    <instrumentation