remove JSON parameter list from challenge module and add unified return interfaces for challenge modules
Change-Id: I0e69f7f8ef2ea36f38f11815aa980928b049cdc7
diff --git a/tools/ndncert-client.cpp b/tools/ndncert-client.cpp
index 52d0fdb..4b3b38a 100644
--- a/tools/ndncert-client.cpp
+++ b/tools/ndncert-client.cpp
@@ -43,24 +43,20 @@
int validityPeriod = -1;
ClientModule client(keyChain);
-static std::list<std::string>
-captureParams(const JsonSection& requirement)
+static void
+captureParams(std::vector<std::tuple<std::string, std::string>>& requirement)
{
std::list<std::string> results;
- for (const auto& item : requirement) {
- std::cerr << item.second.get<std::string>("") << std::endl;
- std::cerr << "Please provide the argument: " << item.first << " : " << std::endl;
- std::string tempParam;
- getline(std::cin, tempParam);
- results.push_back(tempParam);
+ for (auto& item : requirement) {
+ std::cerr << std::get<1>(item) << std::endl;
+ std::string captured;
+ getline(std::cin, captured);
+ std::get<1>(item) = captured;
}
std::cerr << "Got it. This is what you've provided:" << std::endl;
- auto it1 = results.begin();
- auto it2 = requirement.begin();
- for (; it1 != results.end() && it2 != requirement.end(); it1++, it2++) {
- std::cerr << it2->first << " : " << *it1 << std::endl;
+ for (const auto& item : requirement) {
+ std::cerr << std::get<0>(item) << " : " << std::get<1>(item) << std::endl;
}
- return results;
}
static std::list<std::string>
@@ -135,22 +131,15 @@
}
auto challenge = ChallengeModule::createChallengeModule(challengeType);
- auto requirement = challenge->getRequirementForChallenge(client.getApplicationStatus(),
- client.getChallengeStatus());
+ auto requirement = challenge->getRequestedParameterList(client.getApplicationStatus(),
+ client.getChallengeStatus());
if (requirement.size() > 0) {
std::cerr << "Step " << nStep++ << ": Please satisfy following instruction(s)\n";
- std::string redo = "";
- std::list<std::string> capturedParams;
- capturedParams = captureParams(requirement);
- auto it1 = capturedParams.begin();
- auto it2 = requirement.begin();
- for (; it1 != capturedParams.end() && it2 != requirement.end(); it1++, it2++) {
- it2->second.put("", *it1);
- }
+ captureParams(requirement);
}
face.expressInterest(*client.generateChallengeInterest(challenge->genChallengeRequestTLV(client.getApplicationStatus(),
client.getChallengeStatus(),
- requirement)),
+ std::move(requirement))),
bind(&challengeCb, _2), bind(&onNackCb), bind(&timeoutCb));
}
@@ -194,22 +183,15 @@
std::cerr << "Error. Cannot load selected Challenge Module. Exit." << std::endl;
return;
}
- auto requirement = challenge->getRequirementForChallenge(client.getApplicationStatus(),
- client.getChallengeStatus());
+ auto requirement = challenge->getRequestedParameterList(client.getApplicationStatus(),
+ client.getChallengeStatus());
if (requirement.size() > 0) {
- std::cerr << "Step " << nStep++ << ": Please satisfy following instruction(s)\n";
- std::string redo = "";
- std::list<std::string> capturedParams;
- capturedParams = captureParams(requirement);
- auto it1 = capturedParams.begin();
- auto it2 = requirement.begin();
- for (; it1 != capturedParams.end() && it2 != requirement.end(); it1++, it2++) {
- it2->second.put("", *it1);
- }
+ std::cerr << "Step " << nStep++ << ": Please provide parameters used for Identity Verification Challenge\n";
+ captureParams(requirement);
}
face.expressInterest(*client.generateChallengeInterest(challenge->genChallengeRequestTLV(client.getApplicationStatus(),
client.getChallengeStatus(),
- requirement)),
+ std::move(requirement))),
bind(&challengeCb, _2), bind(&onNackCb), bind(&timeoutCb));
}