Update the NDNCERT library to version NDNCERT v2
spec:[https://github.com/named-data/ndncert/wiki/NDNCERT-Protocol-new]
Change-Id: Ia480a8e70c4b38ca170dfe2fcf50d1265ab65f46
diff --git a/tests/unit-tests/client-module.t.cpp b/tests/unit-tests/client-module.t.cpp
index b65b09b..da08d9b 100644
--- a/tests/unit-tests/client-module.t.cpp
+++ b/tests/unit-tests/client-module.t.cpp
@@ -1,6 +1,6 @@
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
/**
- * Copyright (c) 2017-2018, Regents of the University of California.
+ * Copyright (c) 2017-2019, Regents of the University of California.
*
* This file is part of ndncert, a certificate management system based on NDN.
*
@@ -21,6 +21,7 @@
#include "client-module.hpp"
#include "identity-management-fixture.hpp"
#include "challenge-module.hpp"
+#include "ca-module.hpp"
#include <ndn-cxx/util/dummy-client-face.hpp>
#include <ndn-cxx/security/signing-helpers.hpp>
#include <ndn-cxx/security/transform/public-key.hpp>
@@ -30,20 +31,18 @@
namespace ndncert {
namespace tests {
-BOOST_FIXTURE_TEST_SUITE(TestClientModule, IdentityManagementV2TimeFixture)
+BOOST_FIXTURE_TEST_SUITE(TestClientModule, IdentityManagementTimeFixture)
BOOST_AUTO_TEST_CASE(ClientModuleInitialize)
{
- util::DummyClientFace face(m_io, {true, true});
- ClientModule client(face, m_keyChain);
+ ClientModule client(m_keyChain);
client.getClientConf().load("tests/unit-tests/client.conf.test");
BOOST_CHECK_EQUAL(client.getClientConf().m_caItems.size(), 2);
}
-BOOST_AUTO_TEST_CASE(ProbeAndNew)
+BOOST_AUTO_TEST_CASE(Probe)
{
- util::DummyClientFace face(m_io, {true, true});
- ClientModule client(face, m_keyChain);
+ ClientModule client(m_keyChain);
client.getClientConf().load("tests/unit-tests/client.conf.test");
auto identity = addIdentity(Name("/site"));
@@ -51,71 +50,14 @@
auto cert = key.getDefaultCertificate();
ClientCaItem item;
- item.m_caName = Name("/site/CA");
+ item.m_caName = Name("/site");
item.m_anchor = cert;
client.getClientConf().m_caItems.push_back(item);
- int nInterest = 0;
- auto processInterest = [&] (const Interest& interest) {
- nInterest++;
- if (nInterest == 1) {
- // PROBE interest and return identifier
- BOOST_CHECK_EQUAL(interest.getName().toUri(), "/site/CA/_PROBE/zhiyi%40cs.ucla.edu");
- BOOST_CHECK_EQUAL(interest.getMustBeFresh(), 1);
-
- auto data = make_shared<Data>();
- data->setName(interest.getName());
- JsonSection json = genResponseProbeJson(Name("/site/ucla-cs-zhiyi"), Name(""));
- std::stringstream ss;
- boost::property_tree::write_json(ss, json);
- Block dataContent = makeStringBlock(ndn::tlv::Content, ss.str());
- data->setContent(dataContent);
- m_keyChain.sign(*data, signingByCertificate(cert));
- face.receive(*data);
- }
- else {
- // NEW interest and return challenge list, request ID
- BOOST_CHECK_EQUAL(interest.getName().getPrefix(3).toUri(), "/site/CA/_NEW");
- BOOST_CHECK_EQUAL(interest.getName().size(), 6);
-
- auto data = make_shared<Data>();
- data->setName(interest.getName());
- std::list<std::string> challenges;
- challenges.push_back("EMAIL");
- challenges.push_back("PIN");
- JsonSection json = genResponseNewJson("1234", ChallengeModule::WAIT_SELECTION, challenges);
- std::stringstream ss;
- boost::property_tree::write_json(ss, json);
- Block dataContent = makeStringBlock(ndn::tlv::Content, ss.str());
- data->setContent(dataContent);
- m_keyChain.sign(*data, signingByCertificate(cert));
-
- face.receive(*data);
- }
- };
- face.onSendInterest.connect([=] (const Interest& interest) { m_io.post([=] { processInterest(interest); }); });
-
- int nCallback = 0;
- shared_ptr<RequestState> requestState = nullptr;
- ClientModule::RequestCallback requestCallback = [&] (shared_ptr<RequestState> state) {
- nCallback++;
- BOOST_CHECK_EQUAL(state->m_requestId, "1234");
- BOOST_CHECK_EQUAL(state->m_challengeList.size(), 2);
- requestState = state;
- };
- client.sendProbe(item, "zhiyi@cs.ucla.edu", requestCallback, ClientModule::ErrorCallback());
-
- advanceClocks(time::milliseconds(200), 20);
-
- BOOST_CHECK_EQUAL(nInterest, 2);
- BOOST_CHECK_EQUAL(nCallback, 1);
- BOOST_CHECK_EQUAL(requestState->m_ca.m_caName.toUri(), "/site/CA");
- BOOST_CHECK_EQUAL(requestState->m_key.getName().getPrefix(3).toUri(), "/site/ucla-cs-zhiyi/KEY");
-
- // make sure the client did not generate duplicated new keys
- auto clientIdentity = m_keyChain.getPib().getIdentity(Name("/site/ucla-cs-zhiyi"));
- const auto& clientKeys = clientIdentity.getKeys();
- BOOST_CHECK_EQUAL(clientKeys.size(), 1);
+ auto firstInterest = client.generateProbeInterest(item, "zhiyi@cs.ucla.edu");
+ BOOST_CHECK_EQUAL(firstInterest->getName().toUri(), "/site/CA/_PROBE");
+ BOOST_CHECK_EQUAL(CaModule::jsonFromBlock(firstInterest->getApplicationParameters()).get<std::string>(JSON_CLIENT_PROBE_INFO),
+ "zhiyi@cs.ucla.edu");
}
BOOST_AUTO_TEST_SUITE_END() // TestClientModule