update ChallengeEncoder::encodeDataContent
Change-Id: I03672e22e01e60a9f34c7b8ca89a2f710016b8f5
diff --git a/src/ca-module.cpp b/src/ca-module.cpp
index 2aee91a..f591187 100644
--- a/src/ca-module.cpp
+++ b/src/ca-module.cpp
@@ -403,10 +403,7 @@
requestState->m_status = Status::SUCCESS;
m_storage->deleteRequest(requestState->m_requestId);
- payload = ChallengeEncoder::encodeDataContent(*requestState);
- payload.parse();
- payload.push_back(makeNestedBlock(tlv::IssuedCertName, issuedCert.getName()));
- payload.encode();
+ payload = ChallengeEncoder::encodeDataContent(*requestState, issuedCert.getName());
NDN_LOG_TRACE("Challenge succeeded. Certificate has been issued: " << issuedCert.getName());
}
else if (requestState->m_requestType == RequestType::REVOKE) {
diff --git a/src/detail/challenge-encoder.cpp b/src/detail/challenge-encoder.cpp
index 33559c8..f2b1933 100644
--- a/src/detail/challenge-encoder.cpp
+++ b/src/detail/challenge-encoder.cpp
@@ -24,7 +24,7 @@
namespace ndncert {
Block
-ChallengeEncoder::encodeDataContent(const ca::RequestState& request)
+ChallengeEncoder::encodeDataContent(const ca::RequestState& request, optional<Name> issuedCertName)
{
Block response = makeEmptyBlock(tlv::EncryptedPayload);
response.push_back(makeNonNegativeIntegerBlock(tlv::Status, static_cast<size_t>(request.m_status)));
@@ -35,6 +35,9 @@
response.push_back(
makeNonNegativeIntegerBlock(tlv::RemainingTime, request.m_challengeState->m_remainingTime.count()));
}
+ if (issuedCertName.has_value()) {
+ response.push_back(makeNestedBlock(tlv::IssuedCertName, *issuedCertName));
+ }
response.encode();
return response;
}
diff --git a/src/detail/challenge-encoder.hpp b/src/detail/challenge-encoder.hpp
index e499094..ab1fe8f 100644
--- a/src/detail/challenge-encoder.hpp
+++ b/src/detail/challenge-encoder.hpp
@@ -31,7 +31,7 @@
{
public:
static Block
- encodeDataContent(const ca::RequestState& request);
+ encodeDataContent(const ca::RequestState& request, optional<Name> issuedCertName = nullopt);
static void
decodeDataContent(const Block& data, requester::RequestContext& state);