diff --git a/src/protocol-detail/challenge.cpp b/src/protocol-detail/challenge.cpp
index b8823e0..61a3519 100644
--- a/src/protocol-detail/challenge.cpp
+++ b/src/protocol-detail/challenge.cpp
@@ -20,13 +20,13 @@
 
 #include "challenge.hpp"
 #include "../ndncert-common.hpp"
-#include "../certificate-request.hpp"
+#include "../request-state.hpp"
 
 namespace ndn {
 namespace ndncert {
 
 Block
-CHALLENGE::encodeDataPayload(const CertificateRequest& request)
+CHALLENGE::encodeDataPayload(const RequestState& request)
 {
   Block response = makeEmptyBlock(tlv_encrypted_payload);
   response.push_back(makeNonNegativeIntegerBlock(tlv_status, static_cast<size_t>(request.m_status)));
diff --git a/src/protocol-detail/challenge.hpp b/src/protocol-detail/challenge.hpp
index 1ff74fd..aafcd42 100644
--- a/src/protocol-detail/challenge.hpp
+++ b/src/protocol-detail/challenge.hpp
@@ -21,8 +21,7 @@
 #ifndef NDNCERT_PROTOCOL_DETAIL_CHALLENGE_HPP
 #define NDNCERT_PROTOCOL_DETAIL_CHALLENGE_HPP
 
-#include "../certificate-request.hpp"
-#include <ndn-cxx/encoding/block.hpp>
+#include "../request-state.hpp"
 
 namespace ndn {
 namespace ndncert {
@@ -30,7 +29,7 @@
 class CHALLENGE {
 public:
   static Block
-  encodeDataPayload(const CertificateRequest& request);
+  encodeDataPayload(const RequestState& request);
 };
 
 }  // namespace ndncert
diff --git a/src/protocol-detail/new.cpp b/src/protocol-detail/new.cpp
index 243865a..cd7b39c 100644
--- a/src/protocol-detail/new.cpp
+++ b/src/protocol-detail/new.cpp
@@ -53,7 +53,7 @@
 
 Block
 NEW::encodeDataContent(const std::string& ecdhKey, const std::string& salt,
-                             const CertificateRequest& request,
+                             const RequestState& request,
                              const std::list<std::string>& challenges)
 {
   Block response = makeEmptyBlock(tlv::Content);
diff --git a/src/protocol-detail/new.hpp b/src/protocol-detail/new.hpp
index 63bec73..353ebc2 100644
--- a/src/protocol-detail/new.hpp
+++ b/src/protocol-detail/new.hpp
@@ -21,10 +21,7 @@
 #ifndef NDNCERT_PROTOCOL_DETAIL_NEW_HPP
 #define NDNCERT_PROTOCOL_DETAIL_NEW_HPP
 
-#include <ndn-cxx/security/v2/certificate.hpp>
-
-#include "../certificate-request.hpp"
-#include "ndn-cxx/encoding/block.hpp"
+#include "../request-state.hpp"
 
 namespace ndn {
 namespace ndncert {
@@ -44,7 +41,7 @@
    */
   static Block
   encodeDataContent(const std::string& ecdhKey, const std::string& salt,
-                    const CertificateRequest& request,
+                    const RequestState& request,
                     const std::list<std::string>& challenges);
 };
 
diff --git a/src/protocol-detail/revoke.cpp b/src/protocol-detail/revoke.cpp
index f8e3142..0123b3f 100644
--- a/src/protocol-detail/revoke.cpp
+++ b/src/protocol-detail/revoke.cpp
@@ -53,7 +53,7 @@
 
 Block
 REVOKE::encodeDataContent(const std::string& ecdhKey, const std::string& salt,
-                             const CertificateRequest& request,
+                             const RequestState& request,
                              const std::list<std::string>& challenges)
 {
   Block response = makeEmptyBlock(tlv::Content);
diff --git a/src/protocol-detail/revoke.hpp b/src/protocol-detail/revoke.hpp
index 665ed11..9f02c43 100644
--- a/src/protocol-detail/revoke.hpp
+++ b/src/protocol-detail/revoke.hpp
@@ -21,9 +21,7 @@
 #ifndef NDNCERT_PROTOCOL_DETAIL_REVOKE_HPP
 #define NDNCERT_PROTOCOL_DETAIL_REVOKE_HPP
 
-#include "../certificate-request.hpp"
-#include "ndn-cxx/encoding/block.hpp"
-#include <ndn-cxx/security/v2/certificate.hpp>
+#include "../request-state.hpp"
 
 namespace ndn {
 namespace ndncert {
@@ -35,7 +33,7 @@
 
   static Block
   encodeDataContent(const std::string& ecdhKey, const std::string& salt,
-                             const CertificateRequest& request,
+                             const RequestState& request,
                              const std::list<std::string>& challenges);
 };
 
