fix some errors in the previous refactor
Change-Id: I6fced76ee754d93aa571313b81f3704dd50f1f35
diff --git a/src/ca-module.cpp b/src/ca-module.cpp
index d829f63..8b1c72a 100644
--- a/src/ca-module.cpp
+++ b/src/ca-module.cpp
@@ -267,7 +267,13 @@
shared_ptr<security::v2::Certificate> clientCert = nullptr;
// parse certificate request
- Block requestPayload = parameterTLV.get(tlv_cert_request);
+ Block requestPayload;
+ if (requestType == RequestType::NEW) {
+ requestPayload = parameterTLV.get(tlv_cert_request);
+ }
+ else if (requestType == RequestType::REVOKE) {
+ requestPayload = parameterTLV.get(tlv_cert_to_revoke);
+ }
requestPayload.parse();
try {
security::v2::Certificate cert = security::v2::Certificate(requestPayload.get(tlv::Data));
diff --git a/src/protocol-detail/info.cpp b/src/protocol-detail/info.cpp
index 306d060..da8b969 100644
--- a/src/protocol-detail/info.cpp
+++ b/src/protocol-detail/info.cpp
@@ -36,7 +36,6 @@
caInfo = caConfig.m_caInfo;
}
content.push_back(makeStringBlock(tlv_ca_info, caInfo));
-
for (const auto& key : caConfig.m_probeParameterKeys) {
content.push_back(makeStringBlock(tlv_parameter_key, key));
}
@@ -55,9 +54,9 @@
CaConfigItem result;
block.parse();
for (auto const& item : block.elements()) {
- item.parse();
switch (item.type()) {
case tlv_ca_prefix:
+ item.parse();
result.m_caPrefix.wireDecode(item.get(tlv::Name));
break;
case tlv_ca_info:
@@ -73,7 +72,8 @@
result.m_maxSuffixLength = readNonNegativeInteger(item);
break;
case tlv_ca_certificate:
- result.m_cert->wireDecode(item.get(tlv::Data));
+ item.parse();
+ result.m_cert = std::make_shared<security::v2::Certificate>(item.get(tlv::Data));
break;
default:
continue;
diff --git a/tests/unit-tests/bench.t.cpp b/tests/unit-tests/bench.t.cpp
index 4caed86..226f789 100644
--- a/tests/unit-tests/bench.t.cpp
+++ b/tests/unit-tests/bench.t.cpp
@@ -65,7 +65,8 @@
contentBlock.parse();
auto caItem = INFO::decodeDataContentToCaProfile(contentBlock);
BOOST_CHECK_EQUAL(caItem.m_caPrefix, "/ndn");
- BOOST_CHECK_EQUAL(caItem.m_probeParameterKeys.size(), 0);
+ BOOST_CHECK_EQUAL(caItem.m_probeParameterKeys.size(), 1);
+ BOOST_CHECK_EQUAL(caItem.m_probeParameterKeys.front(), "full name");
BOOST_CHECK_EQUAL(caItem.m_cert->wireEncode(), cert.wireEncode());
BOOST_CHECK_EQUAL(caItem.m_caInfo, "ndn testbed ca");
}
diff --git a/tests/unit-tests/ca-module.t.cpp b/tests/unit-tests/ca-module.t.cpp
index 599b6ce..22c0d56 100644
--- a/tests/unit-tests/ca-module.t.cpp
+++ b/tests/unit-tests/ca-module.t.cpp
@@ -70,7 +70,7 @@
contentBlock.parse();
auto caItem = INFO::decodeDataContentToCaProfile(contentBlock);
BOOST_CHECK_EQUAL(caItem.m_caPrefix, "/ndn");
- BOOST_CHECK_EQUAL(caItem.m_probeParameterKeys.size(), 0);
+ BOOST_CHECK_EQUAL(caItem.m_probeParameterKeys.size(), 1);
BOOST_CHECK_EQUAL(caItem.m_cert->wireEncode(), cert.wireEncode());
BOOST_CHECK_EQUAL(caItem.m_caInfo, "ndn testbed ca");
});
diff --git a/tests/unit-tests/configuration.t.cpp b/tests/unit-tests/configuration.t.cpp
index 2c0ca02..4f2f256 100644
--- a/tests/unit-tests/configuration.t.cpp
+++ b/tests/unit-tests/configuration.t.cpp
@@ -47,7 +47,7 @@
BOOST_CHECK_EQUAL(config.m_caItem.m_maxValidityPeriod, time::seconds(86400));
BOOST_CHECK(!config.m_caItem.m_maxSuffixLength);
BOOST_CHECK_EQUAL(config.m_caItem.m_probeParameterKeys.size(), 0);
- BOOST_CHECK_EQUAL(config.m_caItem.m_supportedChallenges.size(), 0);
+ BOOST_CHECK_EQUAL(config.m_caItem.m_supportedChallenges.size(), 2);
BOOST_CHECK_EQUAL(config.m_caItem.m_supportedChallenges.front(), "pin");
BOOST_CHECK_EQUAL(config.m_caItem.m_supportedChallenges.back(), "email");
}
@@ -70,7 +70,7 @@
BOOST_CHECK_EQUAL(config.m_caItems.size(), 2);
auto& config1 = config.m_caItems.front();
- BOOST_CHECK_EQUAL(config1.m_caPrefix, "/ndn");
+ BOOST_CHECK_EQUAL(config1.m_caPrefix, "/ndn/edu/ucla");
BOOST_CHECK_EQUAL(config1.m_caInfo, "ndn testbed ca");
BOOST_CHECK_EQUAL(config1.m_maxValidityPeriod, time::seconds(864000));
BOOST_CHECK_EQUAL(*config1.m_maxSuffixLength, 3);
@@ -79,9 +79,9 @@
BOOST_CHECK_EQUAL(config1.m_cert->getName(),
"/ndn/site1/KEY/%11%BC%22%F4c%15%FF%17/self/%FD%00%00%01Y%C8%14%D9%A5");
- auto& config2 = config.m_caItems.front();
- BOOST_CHECK_EQUAL(config2.m_caPrefix, "/ndn");
- BOOST_CHECK_EQUAL(config2.m_caInfo, "ndn testbed ca");
+ auto& config2 = config.m_caItems.back();
+ BOOST_CHECK_EQUAL(config2.m_caPrefix, "/ndn/edu/ucla/zhiyi");
+ BOOST_CHECK_EQUAL(config2.m_caInfo, "");
BOOST_CHECK_EQUAL(config2.m_maxValidityPeriod, time::seconds(86400));
BOOST_CHECK(!config2.m_maxSuffixLength);
BOOST_CHECK_EQUAL(config2.m_probeParameterKeys.size(), 0);