Move IpSec associated files to f/b/packages/ConnectivityT
IpSecService is going to be moved into Connectivity mainline module.
Move all ipsec associated files to packages/ConnectivityT so that
it can be easily migrate these files to connectivity module after
clearing the hidden API usages.
Bug: 204153604
Test: build pass
FrameworksNetTests
CtsNetTestCases
Change-Id: I562b47f18e345988a2638cf886f86818f9144b91
This commit is contained in:
parent
442f296638
commit
8f4e23616c
1 changed files with 32 additions and 7 deletions
|
|
@ -1,358 +0,0 @@
|
|||
/*
|
||||
* Copyright (C) 2017 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package android.net;
|
||||
|
||||
import android.annotation.Nullable;
|
||||
import android.os.Parcel;
|
||||
import android.os.Parcelable;
|
||||
|
||||
import com.android.internal.annotations.VisibleForTesting;
|
||||
|
||||
/**
|
||||
* This class encapsulates all the configuration parameters needed to create IPsec transforms and
|
||||
* policies.
|
||||
*
|
||||
* @hide
|
||||
*/
|
||||
public final class IpSecConfig implements Parcelable {
|
||||
private static final String TAG = "IpSecConfig";
|
||||
|
||||
// MODE_TRANSPORT or MODE_TUNNEL
|
||||
private int mMode = IpSecTransform.MODE_TRANSPORT;
|
||||
|
||||
// Preventing this from being null simplifies Java->Native binder
|
||||
private String mSourceAddress = "";
|
||||
|
||||
// Preventing this from being null simplifies Java->Native binder
|
||||
private String mDestinationAddress = "";
|
||||
|
||||
// The underlying Network that represents the "gateway" Network
|
||||
// for outbound packets. It may also be used to select packets.
|
||||
private Network mNetwork;
|
||||
|
||||
// Minimum requirements for identifying a transform
|
||||
// SPI identifying the IPsec SA in packet processing
|
||||
// and a destination IP address
|
||||
private int mSpiResourceId = IpSecManager.INVALID_RESOURCE_ID;
|
||||
|
||||
// Encryption Algorithm
|
||||
private IpSecAlgorithm mEncryption;
|
||||
|
||||
// Authentication Algorithm
|
||||
private IpSecAlgorithm mAuthentication;
|
||||
|
||||
// Authenticated Encryption Algorithm
|
||||
private IpSecAlgorithm mAuthenticatedEncryption;
|
||||
|
||||
// For tunnel mode IPv4 UDP Encapsulation
|
||||
// IpSecTransform#ENCAP_ESP_*, such as ENCAP_ESP_OVER_UDP_IKE
|
||||
private int mEncapType = IpSecTransform.ENCAP_NONE;
|
||||
private int mEncapSocketResourceId = IpSecManager.INVALID_RESOURCE_ID;
|
||||
private int mEncapRemotePort;
|
||||
|
||||
// An interval, in seconds between the NattKeepalive packets
|
||||
private int mNattKeepaliveInterval;
|
||||
|
||||
// XFRM mark and mask; defaults to 0 (no mark/mask)
|
||||
private int mMarkValue;
|
||||
private int mMarkMask;
|
||||
|
||||
// XFRM interface id
|
||||
private int mXfrmInterfaceId;
|
||||
|
||||
/** Set the mode for this IPsec transform */
|
||||
public void setMode(int mode) {
|
||||
mMode = mode;
|
||||
}
|
||||
|
||||
/** Set the source IP addres for this IPsec transform */
|
||||
public void setSourceAddress(String sourceAddress) {
|
||||
mSourceAddress = sourceAddress;
|
||||
}
|
||||
|
||||
/** Set the destination IP address for this IPsec transform */
|
||||
public void setDestinationAddress(String destinationAddress) {
|
||||
mDestinationAddress = destinationAddress;
|
||||
}
|
||||
|
||||
/** Set the SPI by resource ID */
|
||||
public void setSpiResourceId(int resourceId) {
|
||||
mSpiResourceId = resourceId;
|
||||
}
|
||||
|
||||
/** Set the encryption algorithm */
|
||||
public void setEncryption(IpSecAlgorithm encryption) {
|
||||
mEncryption = encryption;
|
||||
}
|
||||
|
||||
/** Set the authentication algorithm */
|
||||
public void setAuthentication(IpSecAlgorithm authentication) {
|
||||
mAuthentication = authentication;
|
||||
}
|
||||
|
||||
/** Set the authenticated encryption algorithm */
|
||||
public void setAuthenticatedEncryption(IpSecAlgorithm authenticatedEncryption) {
|
||||
mAuthenticatedEncryption = authenticatedEncryption;
|
||||
}
|
||||
|
||||
/** Set the underlying network that will carry traffic for this transform */
|
||||
public void setNetwork(Network network) {
|
||||
mNetwork = network;
|
||||
}
|
||||
|
||||
public void setEncapType(int encapType) {
|
||||
mEncapType = encapType;
|
||||
}
|
||||
|
||||
public void setEncapSocketResourceId(int resourceId) {
|
||||
mEncapSocketResourceId = resourceId;
|
||||
}
|
||||
|
||||
public void setEncapRemotePort(int port) {
|
||||
mEncapRemotePort = port;
|
||||
}
|
||||
|
||||
public void setNattKeepaliveInterval(int interval) {
|
||||
mNattKeepaliveInterval = interval;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the mark value
|
||||
*
|
||||
* <p>Internal (System server) use only. Marks passed in by users will be overwritten or
|
||||
* ignored.
|
||||
*/
|
||||
public void setMarkValue(int mark) {
|
||||
mMarkValue = mark;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the mark mask
|
||||
*
|
||||
* <p>Internal (System server) use only. Marks passed in by users will be overwritten or
|
||||
* ignored.
|
||||
*/
|
||||
public void setMarkMask(int mask) {
|
||||
mMarkMask = mask;
|
||||
}
|
||||
|
||||
public void setXfrmInterfaceId(int xfrmInterfaceId) {
|
||||
mXfrmInterfaceId = xfrmInterfaceId;
|
||||
}
|
||||
|
||||
// Transport or Tunnel
|
||||
public int getMode() {
|
||||
return mMode;
|
||||
}
|
||||
|
||||
public String getSourceAddress() {
|
||||
return mSourceAddress;
|
||||
}
|
||||
|
||||
public int getSpiResourceId() {
|
||||
return mSpiResourceId;
|
||||
}
|
||||
|
||||
public String getDestinationAddress() {
|
||||
return mDestinationAddress;
|
||||
}
|
||||
|
||||
public IpSecAlgorithm getEncryption() {
|
||||
return mEncryption;
|
||||
}
|
||||
|
||||
public IpSecAlgorithm getAuthentication() {
|
||||
return mAuthentication;
|
||||
}
|
||||
|
||||
public IpSecAlgorithm getAuthenticatedEncryption() {
|
||||
return mAuthenticatedEncryption;
|
||||
}
|
||||
|
||||
public Network getNetwork() {
|
||||
return mNetwork;
|
||||
}
|
||||
|
||||
public int getEncapType() {
|
||||
return mEncapType;
|
||||
}
|
||||
|
||||
public int getEncapSocketResourceId() {
|
||||
return mEncapSocketResourceId;
|
||||
}
|
||||
|
||||
public int getEncapRemotePort() {
|
||||
return mEncapRemotePort;
|
||||
}
|
||||
|
||||
public int getNattKeepaliveInterval() {
|
||||
return mNattKeepaliveInterval;
|
||||
}
|
||||
|
||||
public int getMarkValue() {
|
||||
return mMarkValue;
|
||||
}
|
||||
|
||||
public int getMarkMask() {
|
||||
return mMarkMask;
|
||||
}
|
||||
|
||||
public int getXfrmInterfaceId() {
|
||||
return mXfrmInterfaceId;
|
||||
}
|
||||
|
||||
// Parcelable Methods
|
||||
|
||||
@Override
|
||||
public int describeContents() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeToParcel(Parcel out, int flags) {
|
||||
out.writeInt(mMode);
|
||||
out.writeString(mSourceAddress);
|
||||
out.writeString(mDestinationAddress);
|
||||
out.writeParcelable(mNetwork, flags);
|
||||
out.writeInt(mSpiResourceId);
|
||||
out.writeParcelable(mEncryption, flags);
|
||||
out.writeParcelable(mAuthentication, flags);
|
||||
out.writeParcelable(mAuthenticatedEncryption, flags);
|
||||
out.writeInt(mEncapType);
|
||||
out.writeInt(mEncapSocketResourceId);
|
||||
out.writeInt(mEncapRemotePort);
|
||||
out.writeInt(mNattKeepaliveInterval);
|
||||
out.writeInt(mMarkValue);
|
||||
out.writeInt(mMarkMask);
|
||||
out.writeInt(mXfrmInterfaceId);
|
||||
}
|
||||
|
||||
@VisibleForTesting
|
||||
public IpSecConfig() {}
|
||||
|
||||
/** Copy constructor */
|
||||
@VisibleForTesting
|
||||
public IpSecConfig(IpSecConfig c) {
|
||||
mMode = c.mMode;
|
||||
mSourceAddress = c.mSourceAddress;
|
||||
mDestinationAddress = c.mDestinationAddress;
|
||||
mNetwork = c.mNetwork;
|
||||
mSpiResourceId = c.mSpiResourceId;
|
||||
mEncryption = c.mEncryption;
|
||||
mAuthentication = c.mAuthentication;
|
||||
mAuthenticatedEncryption = c.mAuthenticatedEncryption;
|
||||
mEncapType = c.mEncapType;
|
||||
mEncapSocketResourceId = c.mEncapSocketResourceId;
|
||||
mEncapRemotePort = c.mEncapRemotePort;
|
||||
mNattKeepaliveInterval = c.mNattKeepaliveInterval;
|
||||
mMarkValue = c.mMarkValue;
|
||||
mMarkMask = c.mMarkMask;
|
||||
mXfrmInterfaceId = c.mXfrmInterfaceId;
|
||||
}
|
||||
|
||||
private IpSecConfig(Parcel in) {
|
||||
mMode = in.readInt();
|
||||
mSourceAddress = in.readString();
|
||||
mDestinationAddress = in.readString();
|
||||
mNetwork = (Network) in.readParcelable(Network.class.getClassLoader());
|
||||
mSpiResourceId = in.readInt();
|
||||
mEncryption =
|
||||
(IpSecAlgorithm) in.readParcelable(IpSecAlgorithm.class.getClassLoader());
|
||||
mAuthentication =
|
||||
(IpSecAlgorithm) in.readParcelable(IpSecAlgorithm.class.getClassLoader());
|
||||
mAuthenticatedEncryption =
|
||||
(IpSecAlgorithm) in.readParcelable(IpSecAlgorithm.class.getClassLoader());
|
||||
mEncapType = in.readInt();
|
||||
mEncapSocketResourceId = in.readInt();
|
||||
mEncapRemotePort = in.readInt();
|
||||
mNattKeepaliveInterval = in.readInt();
|
||||
mMarkValue = in.readInt();
|
||||
mMarkMask = in.readInt();
|
||||
mXfrmInterfaceId = in.readInt();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
StringBuilder strBuilder = new StringBuilder();
|
||||
strBuilder
|
||||
.append("{mMode=")
|
||||
.append(mMode == IpSecTransform.MODE_TUNNEL ? "TUNNEL" : "TRANSPORT")
|
||||
.append(", mSourceAddress=")
|
||||
.append(mSourceAddress)
|
||||
.append(", mDestinationAddress=")
|
||||
.append(mDestinationAddress)
|
||||
.append(", mNetwork=")
|
||||
.append(mNetwork)
|
||||
.append(", mEncapType=")
|
||||
.append(mEncapType)
|
||||
.append(", mEncapSocketResourceId=")
|
||||
.append(mEncapSocketResourceId)
|
||||
.append(", mEncapRemotePort=")
|
||||
.append(mEncapRemotePort)
|
||||
.append(", mNattKeepaliveInterval=")
|
||||
.append(mNattKeepaliveInterval)
|
||||
.append("{mSpiResourceId=")
|
||||
.append(mSpiResourceId)
|
||||
.append(", mEncryption=")
|
||||
.append(mEncryption)
|
||||
.append(", mAuthentication=")
|
||||
.append(mAuthentication)
|
||||
.append(", mAuthenticatedEncryption=")
|
||||
.append(mAuthenticatedEncryption)
|
||||
.append(", mMarkValue=")
|
||||
.append(mMarkValue)
|
||||
.append(", mMarkMask=")
|
||||
.append(mMarkMask)
|
||||
.append(", mXfrmInterfaceId=")
|
||||
.append(mXfrmInterfaceId)
|
||||
.append("}");
|
||||
|
||||
return strBuilder.toString();
|
||||
}
|
||||
|
||||
public static final @android.annotation.NonNull Parcelable.Creator<IpSecConfig> CREATOR =
|
||||
new Parcelable.Creator<IpSecConfig>() {
|
||||
public IpSecConfig createFromParcel(Parcel in) {
|
||||
return new IpSecConfig(in);
|
||||
}
|
||||
|
||||
public IpSecConfig[] newArray(int size) {
|
||||
return new IpSecConfig[size];
|
||||
}
|
||||
};
|
||||
|
||||
@Override
|
||||
public boolean equals(@Nullable Object other) {
|
||||
if (!(other instanceof IpSecConfig)) return false;
|
||||
final IpSecConfig rhs = (IpSecConfig) other;
|
||||
return (mMode == rhs.mMode
|
||||
&& mSourceAddress.equals(rhs.mSourceAddress)
|
||||
&& mDestinationAddress.equals(rhs.mDestinationAddress)
|
||||
&& ((mNetwork != null && mNetwork.equals(rhs.mNetwork))
|
||||
|| (mNetwork == rhs.mNetwork))
|
||||
&& mEncapType == rhs.mEncapType
|
||||
&& mEncapSocketResourceId == rhs.mEncapSocketResourceId
|
||||
&& mEncapRemotePort == rhs.mEncapRemotePort
|
||||
&& mNattKeepaliveInterval == rhs.mNattKeepaliveInterval
|
||||
&& mSpiResourceId == rhs.mSpiResourceId
|
||||
&& IpSecAlgorithm.equals(mEncryption, rhs.mEncryption)
|
||||
&& IpSecAlgorithm.equals(mAuthenticatedEncryption, rhs.mAuthenticatedEncryption)
|
||||
&& IpSecAlgorithm.equals(mAuthentication, rhs.mAuthentication)
|
||||
&& mMarkValue == rhs.mMarkValue
|
||||
&& mMarkMask == rhs.mMarkMask
|
||||
&& mXfrmInterfaceId == rhs.mXfrmInterfaceId);
|
||||
}
|
||||
}
|
||||
Loading…
Reference in a new issue