update profile fetching

Change-Id: I788ece8371f7e24c87918a57062673be1d866e5b
diff --git a/src/requester.hpp b/src/requester.hpp
index ab987dd..c6510b1 100644
--- a/src/requester.hpp
+++ b/src/requester.hpp
@@ -99,31 +99,49 @@
 {
 public:
   /**
-   * Generates a INFO interest corresponds to the CA for given prefix.
-   * @param caName the name prefix of the CA.
-   * @return A shared pointer to an interest ready to be sent.
+   * Generates a CA profile discovery Interest following RDR protocol.
+   * @param caName, the name prefix of the CA.
+   * @return A shared pointer to an Interest ready to be sent.
    */
   static shared_ptr<Interest>
-  genCaProfileInterest(const Name& caName);
+  genCaProfileDiscoveryInterest(const Name& caName);
 
   /**
-   * Decodes the replied data for the configuration of the CA.
+   * Generates a CA profile fetching Interest following RDR protocol.
+   * @param reply, the Data packet replied from discovery Interest.
+   * @return A shared pointer to an Interest ready to be sent.
+   */
+  static shared_ptr<Interest>
+  genCaProfileInterestFromDiscoveryResponse(const Data& reply);
+
+  /**
+   * Decodes the CA profile from the replied CA profile Data packet.
    * Will first verify the signature of the packet using the key provided inside the profile.
    * The application should be cautious whether to add CaProfile into the RequesterCaCache.
-   * @param reply
+   * @param reply, the Data packet replied from CA profile fetching Interest.
    * @return the CaProfile if decoding is successful
    * @throw std::runtime_error if the decoding fails or receiving an error packet.
    */
   static boost::optional<CaProfile>
   onCaProfileResponse(const Data& reply);
 
+  /**
+   * Decodes the CA profile from the replied CA profile Data packet after the redirection.
+   * Will first verify the signature of the packet using the key provided inside the profile and
+   * verify the certificate's digest matches the one obtained from the original CA.
+   * The application should be cautious whether to add CaProfile into the RequesterCaCache.
+   * @param reply, the Data packet replied from CA profile fetching Interest.
+   * @param caCertFullName, the full name obtained from original CA's probe response.
+   * @return the CaProfile if decoding is successful
+   * @throw std::runtime_error if the decoding fails or receiving an error packet.
+   */
   static boost::optional<CaProfile>
   onCaProfileResponseAfterRedirection(const Data& reply, const Name& caCertFullName);
 
   /**
    * Generates a PROBE interest to the CA (for suggested name assignments).
-   * @param ca the CA that interest is send to
-   * @param probeInfo the requester information to carry to the CA
+   * @param ca, the CA that interest is send to
+   * @param probeInfo, the requester information to carry to the CA
    * @return A shared pointer of to the encoded interest, ready to be sent.
    */
   static shared_ptr<Interest>
@@ -132,10 +150,10 @@
   /**
    * Decodes the replied data for PROBE process from the CA.
    * Will first verify the signature of the packet using the key provided inside the profile.
-   * @param reply The replied data packet
-   * @param ca the profile of the CA that replies the packet
-   * @param identityNames The vector to load the decoded identity names from the data.
-   * @param otherCas The vector to load the decoded redirection CA prefixes from the data.
+   * @param reply, The replied data packet
+   * @param ca, the profile of the CA that replies the packet
+   * @param identityNames, The vector to load the decoded identity names from the data.
+   * @param otherCas, The vector to load the decoded redirection CA prefixes from the data.
    * @throw std::runtime_error if the decoding fails or receiving an error packet.
    */
   static void
@@ -145,10 +163,10 @@
   // NEW/REVOKE/RENEW related helpers
   /**
    * Generates a NEW interest to the CA.
-   * @param state The current requester state for this request. Will be modified in the function.
-   * @param identityName The identity name to be requested.
-   * @param notBefore The expected notBefore field for the certificate (starting time)
-   * @param notAfter The expected notAfter field for the certificate (expiration time)
+   * @param state, The current requester state for this request. Will be modified in the function.
+   * @param identityName, The identity name to be requested.
+   * @param notBefore, The expected notBefore field for the certificate (starting time)
+   * @param notAfter, The expected notAfter field for the certificate (expiration time)
    * @return The shared pointer to the encoded interest.
    */
   static shared_ptr<Interest>
@@ -158,8 +176,8 @@
 
   /**
    * Generates a REVOKE interest to the CA.
-   * @param state The current requester state for this request. Will be modified in the function.
-   * @param certificate the certificate to the revoked.
+   * @param state, The current requester state for this request. Will be modified in the function.
+   * @param certificate, the certificate to the revoked.
    * @return The shared pointer to the encoded interest.
    */
   static shared_ptr<Interest>
@@ -167,8 +185,8 @@
 
   /**
    * Decodes the replied data of NEW, RENEW, or REVOKE interest from the CA.
-   * @param state the current requester state for the request. Will be updated in the function.
-   * @param reply the replied data from the network
+   * @param state, the current requester state for the request. Will be updated in the function.
+   * @param reply, the replied data from the network
    * @return the list of challenge accepted by the CA, for CHALLENGE step.
    * @throw std::runtime_error if the decoding fails or receiving an error packet.
    */
@@ -178,8 +196,8 @@
   // CHALLENGE helpers
   /**
    * Generates the required parameter for the selected challenge for the request
-   * @param state The requester state of the request.Will be updated in the function.
-   * @param challengeSelected The selected challenge for the request.
+   * @param state, The requester state of the request.Will be updated in the function.
+   * @param challengeSelected, The selected challenge for the request.
    *            Can use state.m_challengeType to continue.
    * @return The requirement list for the current stage of the challenge, in name, prompt mapping.
    */
@@ -188,8 +206,8 @@
 
   /**
    * Generates the CHALLENGE interest for the request.
-   * @param state The requester state of the request.
-   * @param parameters The requirement list, in name, value mapping.
+   * @param state, The requester state of the request.
+   * @param parameters, The requirement list, in name, value mapping.
    * @return The shared pointer to the encoded interest
    */
   static shared_ptr<Interest>
@@ -197,9 +215,9 @@
                        std::vector<std::tuple<std::string, std::string>>&& parameters);
 
   /**
-   * Decodes the responsed data from the CHALLENGE interest.
-   * @param state the corresponding requester state of the request. Will be modified.
-   * @param reply the response data.
+   * Decodes the responded data from the CHALLENGE interest.
+   * @param state, the corresponding requester state of the request. Will be modified.
+   * @param reply, the response data.
    * @throw std::runtime_error if the decoding fails or receiving an error packet.
    */
   static void
@@ -207,7 +225,7 @@
 
   /**
    * Generate the interest to fetch the issued certificate
-   * @param state the state of the request.
+   * @param state, the state of the request.
    * @return The shared pointer to the encoded interest
    */
   static shared_ptr<Interest>
@@ -215,7 +233,7 @@
 
   /**
    * Decoded and installs the response certificate from the certificate fetch.
-   * @param reply the data replied from the certificate fetch interest.
+   * @param reply, the data replied from the certificate fetch interest.
    * @return The shared pointer to the certificate being fetched.
    */
   static shared_ptr<security::v2::Certificate>
@@ -223,7 +241,7 @@
 
   /**
    * End the current request session and performs cleanup if necessary.
-   * @param state the requester state for the request.
+   * @param state, the requester state for the request.
    */
   static void
   endSession(RequesterState& state);