Make methods public for separating API and Impl am: e27a40124c
am: d728a81ecd

Change-Id: Ieca12c47bc520ac647c3c263f68880eb31bc9829
diff --git a/src/java/com/android/ike/eap/EapSessionConfig.java b/src/java/com/android/ike/eap/EapSessionConfig.java
index 285dc79..e3d7743 100644
--- a/src/java/com/android/ike/eap/EapSessionConfig.java
+++ b/src/java/com/android/ike/eap/EapSessionConfig.java
@@ -46,7 +46,7 @@
     public final byte[] eapIdentity;
 
     @VisibleForTesting
-    EapSessionConfig(Map<Integer, EapMethodConfig> eapConfigs, byte[] eapIdentity) {
+    public EapSessionConfig(Map<Integer, EapMethodConfig> eapConfigs, byte[] eapIdentity) {
         this.eapConfigs = Collections.unmodifiableMap(eapConfigs);
         this.eapIdentity = eapIdentity;
     }
diff --git a/src/java/com/android/ike/ikev2/ChildSaProposal.java b/src/java/com/android/ike/ikev2/ChildSaProposal.java
index 92c717e..264890f 100644
--- a/src/java/com/android/ike/ikev2/ChildSaProposal.java
+++ b/src/java/com/android/ike/ikev2/ChildSaProposal.java
@@ -59,17 +59,17 @@
         mEsns = esns;
     }
 
-    /** Package private method to get ESN policies. */
-    EsnTransform[] getEsnTransforms() {
+    /** Gets all ESN policies. */
+    public EsnTransform[] getEsnTransforms() {
         return mEsns;
     }
 
     /**
-     * Package private method to get a copy of proposal without all proposed DH groups.
+     * Gets a copy of proposal without all proposed DH groups.
      *
      * <p>This is used to avoid negotiating DH Group for negotiating first Child SA.
      */
-    ChildSaProposal getCopyWithoutDhTransform() {
+    public ChildSaProposal getCopyWithoutDhTransform() {
         return new ChildSaProposal(
                 getEncryptionTransforms(),
                 getIntegrityTransforms(),
diff --git a/src/java/com/android/ike/ikev2/ChildSessionConfiguration.java b/src/java/com/android/ike/ikev2/ChildSessionConfiguration.java
index 555feb0..b2c1c76 100644
--- a/src/java/com/android/ike/ikev2/ChildSessionConfiguration.java
+++ b/src/java/com/android/ike/ikev2/ChildSessionConfiguration.java
@@ -41,11 +41,12 @@
     private final List<LinkAddress> mInternalAddressList;
 
     /**
-     * Package private constructor for building an ChildSessionConfiguration
+     * Construct an instance of {@link ChildSessionConfiguration}.
      *
-     * <p>It is only supported to build a ChildSessionConfiguration with a Configure(Reply) Payload.
+     * <p>It is only supported to build a {@link ChildSessionConfiguration} with a Configure(Reply)
+     * Payload.
      */
-    ChildSessionConfiguration(
+    public ChildSessionConfiguration(
             List<IkeTrafficSelector> inTs,
             List<IkeTrafficSelector> outTs,
             IkeConfigPayload configPayload) {
@@ -91,8 +92,9 @@
         }
     }
 
-    /** Package private constructor for building an ChildSessionConfiguration */
-    ChildSessionConfiguration(List<IkeTrafficSelector> inTs, List<IkeTrafficSelector> outTs) {
+    /** Construct an instance of {@link ChildSessionConfiguration}. */
+    public ChildSessionConfiguration(
+            List<IkeTrafficSelector> inTs, List<IkeTrafficSelector> outTs) {
         mInboundTs = Collections.unmodifiableList(inTs);
         mOutboundTs = Collections.unmodifiableList(outTs);
         mInternalAddressList = new LinkedList<>();
diff --git a/src/java/com/android/ike/ikev2/ChildSessionOptions.java b/src/java/com/android/ike/ikev2/ChildSessionOptions.java
index 0519416..fe7a12e 100644
--- a/src/java/com/android/ike/ikev2/ChildSessionOptions.java
+++ b/src/java/com/android/ike/ikev2/ChildSessionOptions.java
@@ -53,23 +53,19 @@
         mIsTransport = isTransport;
     }
 
-    /** Package private */
-    IkeTrafficSelector[] getLocalTrafficSelectors() {
+    public IkeTrafficSelector[] getLocalTrafficSelectors() {
         return mLocalTrafficSelectors;
     }
 
-    /** Package private */
-    IkeTrafficSelector[] getRemoteTrafficSelectors() {
+    public IkeTrafficSelector[] getRemoteTrafficSelectors() {
         return mRemoteTrafficSelectors;
     }
 
-    /** Package private */
-    ChildSaProposal[] getSaProposals() {
+    public ChildSaProposal[] getSaProposals() {
         return mSaProposals;
     }
 
-    /** Package private */
-    boolean isTransportMode() {
+    public boolean isTransportMode() {
         return mIsTransport;
     }
 
diff --git a/src/java/com/android/ike/ikev2/IkeManager.java b/src/java/com/android/ike/ikev2/IkeManager.java
index 38ab15b..08b93a0 100644
--- a/src/java/com/android/ike/ikev2/IkeManager.java
+++ b/src/java/com/android/ike/ikev2/IkeManager.java
@@ -80,13 +80,15 @@
         return sIkeLog;
     }
 
+    /** Injects IKE logger for testing. */
     @VisibleForTesting
-    static void setIkeLog(Log log) {
+    public static void setIkeLog(Log log) {
         sIkeLog = log;
     }
 
+    /** Resets IKE logger. */
     @VisibleForTesting
-    static void resetIkeLog() {
+    public static void resetIkeLog() {
         sIkeLog = new Log(IKE_TAG, LOG_SENSITIVE);
     }
 }
diff --git a/src/java/com/android/ike/ikev2/IkeSaProposal.java b/src/java/com/android/ike/ikev2/IkeSaProposal.java
index 788c7f9..bb13b60 100644
--- a/src/java/com/android/ike/ikev2/IkeSaProposal.java
+++ b/src/java/com/android/ike/ikev2/IkeSaProposal.java
@@ -62,8 +62,8 @@
         mPseudorandomFunctions = prfs;
     }
 
-    /** Package private method to get all PRFs. */
-    PrfTransform[] getPrfTransforms() {
+    /** Gets all PRFs. */
+    public PrfTransform[] getPrfTransforms() {
         return mPseudorandomFunctions;
     }
 
diff --git a/src/java/com/android/ike/ikev2/IkeSessionOptions.java b/src/java/com/android/ike/ikev2/IkeSessionOptions.java
index d722225..b66630d 100644
--- a/src/java/com/android/ike/ikev2/IkeSessionOptions.java
+++ b/src/java/com/android/ike/ikev2/IkeSessionOptions.java
@@ -43,10 +43,10 @@
     @IntDef({IKE_AUTH_METHOD_PSK, IKE_AUTH_METHOD_PUB_KEY_SIGNATURE, IKE_AUTH_METHOD_EAP})
     public @interface IkeAuthMethod {}
 
-    // Package private constants to describe user configured authentication methods.
-    static final int IKE_AUTH_METHOD_PSK = 1;
-    static final int IKE_AUTH_METHOD_PUB_KEY_SIGNATURE = 2;
-    static final int IKE_AUTH_METHOD_EAP = 3;
+    // Constants to describe user configured authentication methods.
+    public static final int IKE_AUTH_METHOD_PSK = 1;
+    public static final int IKE_AUTH_METHOD_PUB_KEY_SIGNATURE = 2;
+    public static final int IKE_AUTH_METHOD_EAP = 3;
 
     private final InetAddress mServerAddress;
     private final UdpEncapsulationSocket mUdpEncapSocket;
@@ -82,44 +82,40 @@
         mIsIkeFragmentationSupported = isIkeFragmentationSupported;
     }
 
-    /** Package private */
-    InetAddress getServerAddress() {
+    public InetAddress getServerAddress() {
         return mServerAddress;
     }
-    /** Package private */
-    UdpEncapsulationSocket getUdpEncapsulationSocket() {
+
+    public UdpEncapsulationSocket getUdpEncapsulationSocket() {
         return mUdpEncapSocket;
     }
-    /** Package private */
-    IkeSaProposal[] getSaProposals() {
+
+    public IkeSaProposal[] getSaProposals() {
         return mSaProposals;
     }
-    /** Package private */
-    IkeIdentification getLocalIdentification() {
+
+    public IkeIdentification getLocalIdentification() {
         return mLocalIdentification;
     }
-    /** Package private */
-    IkeIdentification getRemoteIdentification() {
+
+    public IkeIdentification getRemoteIdentification() {
         return mRemoteIdentification;
     }
-    /** Package private */
-    IkeAuthConfig getLocalAuthConfig() {
+
+    public IkeAuthConfig getLocalAuthConfig() {
         return mLocalAuthConfig;
     }
-    /** Package private */
-    IkeAuthConfig getRemoteAuthConfig() {
+
+    public IkeAuthConfig getRemoteAuthConfig() {
         return mRemoteAuthConfig;
     }
-    /** Package private */
-    boolean isIkeFragmentationSupported() {
+
+    public boolean isIkeFragmentationSupported() {
         return mIsIkeFragmentationSupported;
     }
-    /**
-     * Package private class that contains common information of an IKEv2 authentication
-     * configuration.
-     */
-    abstract static class IkeAuthConfig {
-        @IkeAuthMethod final int mAuthMethod;
+    /** This class contains common information of an IKEv2 authentication configuration. */
+    public abstract static class IkeAuthConfig {
+        @IkeAuthMethod public final int mAuthMethod;
 
         protected IkeAuthConfig(@IkeAuthMethod int authMethod) {
             mAuthMethod = authMethod;
@@ -127,11 +123,11 @@
     }
 
     /**
-     * Package private class that contains configuration for IKEv2 pre-shared-key-based
-     * authentication of local or remote side.
+     * This class represents the configuration to support IKEv2 pre-shared-key-based authentication
+     * of local or remote side.
      */
-    static class IkeAuthPskConfig extends IkeAuthConfig {
-        final byte[] mPsk;
+    public static class IkeAuthPskConfig extends IkeAuthConfig {
+        public final byte[] mPsk;
 
         private IkeAuthPskConfig(byte[] psk) {
             super(IKE_AUTH_METHOD_PSK);
@@ -140,11 +136,11 @@
     }
 
     /**
-     * Package private class that contains configuration for IKEv2 public-key-signature-based
+     * This class represents the configuration to support IKEv2 public-key-signature-based
      * authentication of the remote side.
      */
-    static class IkeAuthDigitalSignRemoteConfig extends IkeAuthConfig {
-        final TrustAnchor mTrustAnchor;
+    public static class IkeAuthDigitalSignRemoteConfig extends IkeAuthConfig {
+        public final TrustAnchor mTrustAnchor;
 
         private IkeAuthDigitalSignRemoteConfig(TrustAnchor trustAnchor) {
             super(IKE_AUTH_METHOD_PUB_KEY_SIGNATURE);
@@ -153,13 +149,13 @@
     }
 
     /**
-     * Package private class that contains configuration to do IKEv2 public-key-signature-based
+     * This class represents the configuration to support IKEv2 public-key-signature-based
      * authentication of the local side.
      */
-    static class IkeAuthDigitalSignLocalConfig extends IkeAuthConfig {
-        final X509Certificate mEndCert;
-        final List<X509Certificate> mIntermediateCerts;
-        final PrivateKey mPrivateKey;
+    public static class IkeAuthDigitalSignLocalConfig extends IkeAuthConfig {
+        public final X509Certificate mEndCert;
+        public final List<X509Certificate> mIntermediateCerts;
+        public final PrivateKey mPrivateKey;
 
         private IkeAuthDigitalSignLocalConfig(
                 X509Certificate clientEndCert,
@@ -173,7 +169,7 @@
     }
 
     /**
-     * Package private class that contains configuration to do EAP authentication of the local side.
+     * This class represents the configuration to support EAP authentication of the local side.
      *
      * <p>EAP MUST be used with IKEv2 public-key-based authentication of the responder to the
      * initiator. Currently IKE library does not support the IKEv2 protocol extension(RFC 5998)
@@ -184,8 +180,8 @@
      * @see <a href="https://tools.ietf.org/html/rfc5998">RFC 5998, An Extension for EAP-Only
      *     Authentication in IKEv2</a>
      */
-    static class IkeAuthEapConfig extends IkeAuthConfig {
-        final EapSessionConfig mEapConfig;
+    public static class IkeAuthEapConfig extends IkeAuthConfig {
+        public final EapSessionConfig mEapConfig;
 
         private IkeAuthEapConfig(EapSessionConfig eapConfig) {
             super(IKE_AUTH_METHOD_EAP);
diff --git a/src/java/com/android/ike/ikev2/IkeSessionStateMachine.java b/src/java/com/android/ike/ikev2/IkeSessionStateMachine.java
index 3e5d979..e9b0dc8 100644
--- a/src/java/com/android/ike/ikev2/IkeSessionStateMachine.java
+++ b/src/java/com/android/ike/ikev2/IkeSessionStateMachine.java
@@ -375,9 +375,9 @@
     @VisibleForTesting final State mDeleteIkeLocalDelete = new DeleteIkeLocalDelete();
     // TODO: Add InfoLocal.
 
-    // Testing constructor
+    /** Constructor for testing. */
     @VisibleForTesting
-    IkeSessionStateMachine(
+    public IkeSessionStateMachine(
             Looper looper,
             Context context,
             IpSecManager ipSecManager,
@@ -435,8 +435,8 @@
         start();
     }
 
-    /** Package private constructor */
-    IkeSessionStateMachine(
+    /** Construct an instance of IkeSessionStateMachine. */
+    public IkeSessionStateMachine(
             Looper looper,
             Context context,
             IpSecManager ipSecManager,
@@ -498,11 +498,13 @@
         }
     }
 
-    void openSession() {
+    /** Initiates IKE setup procedure. */
+    public void openSession() {
         sendMessage(CMD_LOCAL_REQUEST_CREATE_IKE, new LocalRequest(CMD_LOCAL_REQUEST_CREATE_IKE));
     }
 
-    void openChildSession(
+    /** Schedules a Create Child procedure. */
+    public void openChildSession(
             ChildSessionOptions childSessionOptions, ChildSessionCallback childSessionCallback) {
         if (childSessionCallback == null) {
             throw new IllegalArgumentException("Child Session Callback must be provided");
@@ -520,7 +522,8 @@
                         CMD_LOCAL_REQUEST_CREATE_CHILD, childSessionCallback, childSessionOptions));
     }
 
-    void closeChildSession(ChildSessionCallback childSessionCallback) {
+    /** Schedules a Delete Child procedure. */
+    public void closeChildSession(ChildSessionCallback childSessionCallback) {
         if (childSessionCallback == null) {
             throw new IllegalArgumentException("Child Session Callback must be provided");
         }
@@ -534,11 +537,13 @@
                 new ChildLocalRequest(CMD_LOCAL_REQUEST_DELETE_CHILD, childSessionCallback, null));
     }
 
-    void closeSession() {
+    /** Initiates Delete IKE procedure. */
+    public void closeSession() {
         sendMessage(CMD_LOCAL_REQUEST_DELETE_IKE, new LocalRequest(CMD_LOCAL_REQUEST_DELETE_IKE));
     }
 
-    void killSession() {
+    /** Forcibly close IKE Session. */
+    public void killSession() {
         // TODO: b/142977160 Support closing IKE Sesison immediately.
     }
 
@@ -2308,7 +2313,8 @@
     }
 
     /** CreateIkeLocalIkeInit represents state when IKE library initiates IKE_INIT exchange. */
-    class CreateIkeLocalIkeInit extends BusyState {
+    @VisibleForTesting
+    public class CreateIkeLocalIkeInit extends BusyState {
         private IkeSecurityParameterIndex mLocalIkeSpiResource;
         private IkeSecurityParameterIndex mRemoteIkeSpiResource;
         private Retransmitter mRetransmitter;
@@ -2957,7 +2963,7 @@
                                             + " notify type: "
                                             + notifyPayload.notifyType);
                         }
-
+                        break;
                     default:
                         logw(
                                 "Received unexpected payload in IKE AUTH response. Payload"
diff --git a/src/java/com/android/ike/ikev2/SaProposal.java b/src/java/com/android/ike/ikev2/SaProposal.java
index b012ea0..6076590 100644
--- a/src/java/com/android/ike/ikev2/SaProposal.java
+++ b/src/java/com/android/ike/ikev2/SaProposal.java
@@ -192,18 +192,15 @@
         return mProtocolId;
     }
 
-    /*Package private*/
-    EncryptionTransform[] getEncryptionTransforms() {
+    public EncryptionTransform[] getEncryptionTransforms() {
         return mEncryptionAlgorithms;
     }
 
-    /*Package private*/
-    IntegrityTransform[] getIntegrityTransforms() {
+    public IntegrityTransform[] getIntegrityTransforms() {
         return mIntegrityAlgorithms;
     }
 
-    /*Package private*/
-    DhGroupTransform[] getDhGroupTransforms() {
+    public DhGroupTransform[] getDhGroupTransforms() {
         return mDhGroups;
     }
 
diff --git a/src/java/com/android/ike/ikev2/TunnelModeChildSessionOptions.java b/src/java/com/android/ike/ikev2/TunnelModeChildSessionOptions.java
index 541930e..c207acc 100644
--- a/src/java/com/android/ike/ikev2/TunnelModeChildSessionOptions.java
+++ b/src/java/com/android/ike/ikev2/TunnelModeChildSessionOptions.java
@@ -54,8 +54,7 @@
         mConfigRequests = configRequests;
     }
 
-    /** Package private */
-    ConfigAttribute[] getConfigurationRequests() {
+    public ConfigAttribute[] getConfigurationRequests() {
         return mConfigRequests;
     }
 
diff --git a/tests/iketests/src/java/com/android/ike/ikev2/IkeSessionStateMachineTest.java b/tests/iketests/src/java/com/android/ike/ikev2/IkeSessionStateMachineTest.java
index 819c328..74b4003 100644
--- a/tests/iketests/src/java/com/android/ike/ikev2/IkeSessionStateMachineTest.java
+++ b/tests/iketests/src/java/com/android/ike/ikev2/IkeSessionStateMachineTest.java
@@ -713,7 +713,7 @@
         return ikeSession;
     }
 
-    static IkeSaProposal buildSaProposal() throws Exception {
+    public static IkeSaProposal buildSaProposal() throws Exception {
         return new IkeSaProposal.Builder()
                 .addEncryptionAlgorithm(
                         SaProposal.ENCRYPTION_ALGORITHM_AES_CBC, SaProposal.KEY_LEN_AES_128)