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