diff options
| -rw-r--r-- | core/api/current.txt | 1 | ||||
| -rw-r--r-- | core/java/android/net/Ikev2VpnProfile.java | 26 |
2 files changed, 22 insertions, 5 deletions
diff --git a/core/api/current.txt b/core/api/current.txt index 507919cc2bad..da0c7ed8dc70 100644 --- a/core/api/current.txt +++ b/core/api/current.txt @@ -25209,6 +25209,7 @@ package android.net { public final class Ikev2VpnProfile extends android.net.PlatformVpnProfile { method @NonNull public java.util.List<java.lang.String> getAllowedAlgorithms(); + method @Nullable public android.net.ipsec.ike.IkeTunnelConnectionParams getIkeTunnelConnectionParams(); method public int getMaxMtu(); method @Nullable public String getPassword(); method @Nullable public byte[] getPresharedKey(); diff --git a/core/java/android/net/Ikev2VpnProfile.java b/core/java/android/net/Ikev2VpnProfile.java index 0fd3e034291b..3abe83bd3373 100644 --- a/core/java/android/net/Ikev2VpnProfile.java +++ b/core/java/android/net/Ikev2VpnProfile.java @@ -142,6 +142,7 @@ public final class Ikev2VpnProfile extends PlatformVpnProfile { private final boolean mIsMetered; // Defaults in builder private final int mMaxMtu; // Defaults in builder private final boolean mIsRestrictedToTestNetworks; + @Nullable private final IkeTunnelConnectionParams mIkeTunConnParams; private Ikev2VpnProfile( int type, @@ -160,7 +161,8 @@ public final class Ikev2VpnProfile extends PlatformVpnProfile { int maxMtu, boolean restrictToTestNetworks, boolean excludeLocalRoutes, - boolean requiresInternetValidation) { + boolean requiresInternetValidation, + @Nullable IkeTunnelConnectionParams ikeTunConnParams) { super(type, excludeLocalRoutes, requiresInternetValidation); checkNotNull(serverAddr, MISSING_PARAM_MSG_TMPL, "Server address"); @@ -190,6 +192,8 @@ public final class Ikev2VpnProfile extends PlatformVpnProfile { mMaxMtu = maxMtu; mIsRestrictedToTestNetworks = restrictToTestNetworks; + mIkeTunConnParams = ikeTunConnParams; + validate(); } @@ -375,6 +379,12 @@ public final class Ikev2VpnProfile extends PlatformVpnProfile { return mMaxMtu; } + /** Retrieves the ikeTunnelConnectionParams contains IKEv2 configurations, if any was set. */ + @Nullable + public IkeTunnelConnectionParams getIkeTunnelConnectionParams() { + return mIkeTunConnParams; + } + /** * Returns whether or not this VPN profile is restricted to test networks. * @@ -403,7 +413,8 @@ public final class Ikev2VpnProfile extends PlatformVpnProfile { mMaxMtu, mIsRestrictedToTestNetworks, mExcludeLocalRoutes, - mRequiresInternetValidation); + mRequiresInternetValidation, + mIkeTunConnParams); } @Override @@ -429,7 +440,8 @@ public final class Ikev2VpnProfile extends PlatformVpnProfile { && mMaxMtu == other.mMaxMtu && mIsRestrictedToTestNetworks == other.mIsRestrictedToTestNetworks && mExcludeLocalRoutes == other.mExcludeLocalRoutes - && mRequiresInternetValidation == other.mRequiresInternetValidation; + && mRequiresInternetValidation == other.mRequiresInternetValidation + && Objects.equals(mIkeTunConnParams, other.mIkeTunConnParams); } /** @@ -504,6 +516,7 @@ public final class Ikev2VpnProfile extends PlatformVpnProfile { @NonNull public static Ikev2VpnProfile fromVpnProfile(@NonNull VpnProfile profile) throws GeneralSecurityException { + // TODO: Build the VpnProfile from mIkeTunConnParams if it exists. final Builder builder = new Builder(profile.server, profile.ipsecIdentifier); builder.setProxy(profile.proxy); builder.setAllowedAlgorithms(profile.getAllowedAlgorithms()); @@ -788,7 +801,7 @@ public final class Ikev2VpnProfile extends PlatformVpnProfile { private int mMaxMtu = PlatformVpnProfile.MAX_MTU_DEFAULT; private boolean mIsRestrictedToTestNetworks = false; private boolean mExcludeLocalRoutes = false; - @Nullable private IkeTunnelConnectionParams mIkeTunConnParams; + @Nullable private final IkeTunnelConnectionParams mIkeTunConnParams; /** * Creates a new builder with the basic parameters of an IKEv2/IPsec VPN. @@ -803,6 +816,8 @@ public final class Ikev2VpnProfile extends PlatformVpnProfile { mServerAddr = serverAddr; mUserIdentity = identity; + + mIkeTunConnParams = null; } /** @@ -1135,7 +1150,8 @@ public final class Ikev2VpnProfile extends PlatformVpnProfile { mMaxMtu, mIsRestrictedToTestNetworks, mExcludeLocalRoutes, - mRequiresInternetValidation); + mRequiresInternetValidation, + mIkeTunConnParams); } } } |