nail down CA info (will broke some unit tests for now. Test failures will be fixed when PROBE is finished.)

Change-Id: Ie503b42d302da5d426701a36b3212d4ed063dfd5
diff --git a/src/ca-config.hpp b/src/ca-config.hpp
index 5cba37f..4855aca 100644
--- a/src/ca-config.hpp
+++ b/src/ca-config.hpp
@@ -32,13 +32,13 @@
 /**
  * @brief The name assignment function provided by the CA operator to generate available
  * namecomponents.
- * The function does not guarantee that all the returned names are available. Therefore the 
+ * The function does not guarantee that all the returned names are available. Therefore the
  * CA should further check the availability of each returned name and remove unavailable results.
  *
  * @p vector, input, a list of parameter key-value pair used for name assignment.
  * @return a vector containing the possible namespaces derived from the parameters.
  */
-using ProbeHandler = function<std::string /*identity name*/ (const Block& tlv /*requester input*/)>;
+// using ProbeHandler = function<std::string /*identity name*/ (const Block& tlv /*requester input*/)>;
 using NameAssignmentFunc = function<std::vector<std::string>(const std::vector<std::tuple<std::string, std::string>>)>;
 
 /**
@@ -99,10 +99,10 @@
   /**
    * Set the NameAssignmentFunction.
    */
-  void
-  setNameAssignmentFunc(const NameAssignmentFunc& nameAssignmentFunc) {
-    m_nameAssignmentFunc = nameAssignmentFunc;
-  }
+  // void
+  // setNameAssignmentFunc(const NameAssignmentFunc& nameAssignmentFunc) {
+  //   m_nameAssignmentFunc = nameAssignmentFunc;
+  // }
 
   /**
    * Set the StatusUpdateCallback.
@@ -152,21 +152,6 @@
    * StatusUpdate Callback function
    */
   StatusUpdateCallback m_statusUpdateCallback;
-
-  //====================old
-
-  // basic info
-  Name m_caName;
-
-  // essential config
-  time::seconds m_freshnessPeriod;
-  time::days m_validityPeriod;
-
-  // optional parameters
-  std::string m_probe;
-
-  // callbacks
-  ProbeHandler m_probeHandler;
 };
 
 }  // namespace ndncert
diff --git a/src/ca-module.cpp b/src/ca-module.cpp
index 9e9bf61..47ab755 100644
--- a/src/ca-module.cpp
+++ b/src/ca-module.cpp
@@ -111,11 +111,10 @@
   m_registeredPrefixHandles.push_back(prefixId);
 }
 
-bool
-CaModule::setProbeHandler(const ProbeHandler& handler)
+void
+CaModule::setNameAssignmentFunction(const NameAssignmentFunc& handler)
 {
-  m_config.m_probeHandler = handler;
-  return false;
+  m_config.m_nameAssignmentFunc = handler;
 }
 
 bool
@@ -187,40 +186,40 @@
   _LOG_TRACE("Received PROBE request");
 
   // process PROBE requests: find an available name
-  std::string availableId;
+  std::string availableId = "";
   const auto& parameterTLV = request.getApplicationParameters();
   parameterTLV.parse();
   if (!parameterTLV.hasValue()) {
     _LOG_ERROR("Empty TLV obtained from the Interest parameter.");
     return;
   }
-  //std::string probeInfoStr = parameterJson.get(JSON_CLIENT_PROBE_INFO, "");
-  if (m_config.m_probeHandler) {
-    try {
-      availableId = m_config.m_probeHandler(parameterTLV);
-    }
-    catch (const std::exception& e) {
-      _LOG_TRACE("Cannot find PROBE input from PROBE parameters: " << e.what());
-      return;
-    }
-  }
-  else {
-    // if there is no app-specified name lookup, use a random name id
-    availableId = std::to_string(random::generateSecureWord64());
-  }
-  Name newIdentityName = m_config.m_caPrefix;
-  newIdentityName.append(availableId);
-  _LOG_TRACE("Handle PROBE: generate an identity " << newIdentityName);
 
-  Block contentTLV = PROBE::encodeDataContent(newIdentityName.toUri(), m_config.m_probe, parameterTLV);
+  // if (m_config.m_nameAssignmentFunc) {
+  //   try {
+  //     availableId = m_config.m_nameAssignmentFunc(parameterTLV);
+  //   }
+  //   catch (const std::exception& e) {
+  //     _LOG_TRACE("Cannot find PROBE input from PROBE parameters: " << e.what());
+  //     return;
+  //   }
+  // }
+  // else {
+  //   // if there is no app-specified name lookup, use a random name id
+  //   availableId = std::to_string(random::generateSecureWord64());
+  // }
+  // Name newIdentityName = m_config.m_caPrefix;
+  // newIdentityName.append(availableId);
+  // _LOG_TRACE("Handle PROBE: generate an identity " << newIdentityName);
 
-  Data result;
-  result.setName(request.getName());
-  result.setContent(contentTLV);
-  result.setFreshnessPeriod(DEFAULT_DATA_FRESHNESS_PERIOD);
-  m_keyChain.sign(result, signingByIdentity(m_config.m_caPrefix));
-  m_face.put(result);
-  _LOG_TRACE("Handle PROBE: send out the PROBE response");
+  // Block contentTLV = PROBE::encodeDataContent(newIdentityName.toUri(), m_config.m_probe, parameterTLV);
+
+  // Data result;
+  // result.setName(request.getName());
+  // result.setContent(contentTLV);
+  // result.setFreshnessPeriod(DEFAULT_DATA_FRESHNESS_PERIOD);
+  // m_keyChain.sign(result, signingByIdentity(m_config.m_caPrefix));
+  // m_face.put(result);
+  // _LOG_TRACE("Handle PROBE: send out the PROBE response");
 }
 
 void
@@ -302,7 +301,7 @@
     // verify the self-signed certificate, the request, and the token
     if (!m_config.m_caPrefix.isPrefixOf(clientCert->getName()) // under ca prefix
         || !security::v2::Certificate::isValidName(clientCert->getName()) // is valid cert name
-        || clientCert->getName().size() < m_config.m_caName.size() + IS_SUBNAME_MIN_OFFSET) {
+        || clientCert->getName().size() < m_config.m_caPrefix.size() + IS_SUBNAME_MIN_OFFSET) {
       _LOG_ERROR("Invalid self-signed certificate name " << clientCert->getName());
       return;
     }
@@ -329,13 +328,13 @@
     }
 
     // verify the certificate
-    if (!m_config.m_caName.isPrefixOf(clientCert->getName()) // under ca prefix
+    if (!m_config.m_caPrefix.isPrefixOf(clientCert->getName()) // under ca prefix
         || !security::v2::Certificate::isValidName(clientCert->getName()) // is valid cert name
-        || clientCert->getName().size() < m_config.m_caName.size() + IS_SUBNAME_MIN_OFFSET) {
+        || clientCert->getName().size() < m_config.m_caPrefix.size() + IS_SUBNAME_MIN_OFFSET) {
       _LOG_ERROR("Invalid certificate name " << clientCert->getName());
       return;
     }
-    const auto& cert = m_keyChain.getPib().getIdentity(m_config.m_caName).getDefaultKey().getDefaultCertificate();
+    const auto& cert = m_keyChain.getPib().getIdentity(m_config.m_caPrefix).getDefaultKey().getDefaultCertificate();
     if (!security::verifySignature(*clientCert, cert)) {
       _LOG_ERROR("Cert request with bad signature.");
       return;
diff --git a/src/ca-module.hpp b/src/ca-module.hpp
index 1e17e2b..b370132 100644
--- a/src/ca-module.hpp
+++ b/src/ca-module.hpp
@@ -58,8 +58,8 @@
     return m_storage;
   }
 
-  bool
-  setProbeHandler(const ProbeHandler& handler);
+  void
+  setNameAssignmentFunction(const NameAssignmentFunc& handler);
 
   bool
   setStatusUpdateCallback(const StatusUpdateCallback& onUpdateCallback);
diff --git a/tests/unit-tests/bench.t.cpp b/tests/unit-tests/bench.t.cpp
index f21b06d..3f015b8 100644
--- a/tests/unit-tests/bench.t.cpp
+++ b/tests/unit-tests/bench.t.cpp
@@ -38,9 +38,6 @@
 
   util::DummyClientFace face(io, m_keyChain, {true, true});
   CaModule ca(face, m_keyChain, "tests/unit-tests/ca.conf.test", "ca-storage-memory");
-  ca.setProbeHandler([&](const Block& probeInfo) {
-    return "example";
-  });
   advanceClocks(time::milliseconds(20), 60);
 
   Interest interest = MetadataObject::makeDiscoveryInterest(Name("/ndn/CA/INFO"));
diff --git a/tests/unit-tests/ca-module.t.cpp b/tests/unit-tests/ca-module.t.cpp
index 64a5d7f..0bd93bf 100644
--- a/tests/unit-tests/ca-module.t.cpp
+++ b/tests/unit-tests/ca-module.t.cpp
@@ -49,46 +49,46 @@
   BOOST_CHECK_EQUAL(ca.m_interestFilterHandles.size(), 5); // onInfo, onProbe, onNew, onChallenge, onRevoke
 }
 
-BOOST_AUTO_TEST_CASE(HandleProbe)
-{
-  auto identity = addIdentity(Name("/ndn"));
-  auto key = identity.getDefaultKey();
-  auto cert = key.getDefaultCertificate();
+// BOOST_AUTO_TEST_CASE(HandleProbe)
+// {
+//   auto identity = addIdentity(Name("/ndn"));
+//   auto key = identity.getDefaultKey();
+//   auto cert = key.getDefaultCertificate();
 
-  util::DummyClientFace face(io, m_keyChain, {true, true});
-  CaModule ca(face, m_keyChain, "tests/unit-tests/ca.conf.test", "ca-storage-memory");
-  ca.setProbeHandler([&](const Block& probeInfo) {
-    return "example";
-  });
-  advanceClocks(time::milliseconds(20), 60);
+//   util::DummyClientFace face(io, m_keyChain, {true, true});
+//   CaModule ca(face, m_keyChain, "tests/unit-tests/ca.conf.test", "ca-storage-memory");
+//   ca.setProbeHandler([&](const Block& probeInfo) {
+//     return "example";
+//   });
+//   advanceClocks(time::milliseconds(20), 60);
 
-  Interest interest("/ndn/CA/PROBE");
-  interest.setCanBePrefix(false);
+//   Interest interest("/ndn/CA/PROBE");
+//   interest.setCanBePrefix(false);
 
-  Block paramTLV = makeEmptyBlock(tlv::ApplicationParameters);
-  paramTLV.push_back(makeStringBlock(tlv_parameter_key, JSON_CLIENT_PROBE_INFO));
-  paramTLV.push_back(makeStringBlock(tlv_parameter_value, "zhiyi"));
-  paramTLV.encode();
+//   Block paramTLV = makeEmptyBlock(tlv::ApplicationParameters);
+//   paramTLV.push_back(makeStringBlock(tlv_parameter_key, JSON_CLIENT_PROBE_INFO));
+//   paramTLV.push_back(makeStringBlock(tlv_parameter_value, "zhiyi"));
+//   paramTLV.encode();
 
-  interest.setApplicationParameters(paramTLV);
+//   interest.setApplicationParameters(paramTLV);
 
-  int count = 0;
-  face.onSendData.connect([&](const Data& response) {
-    count++;
-    BOOST_CHECK(security::verifySignature(response, cert));
-    Block contentBlock = response.getContent();
-    contentBlock.parse();
-    Block probeResponse = contentBlock.get(tlv_probe_response);
-    probeResponse.parse();
-    Name caName;
-    caName.wireDecode(probeResponse.get(tlv::Name));
-    BOOST_CHECK_EQUAL(caName, "/ndn/example");
-  });
-  face.receive(interest);
+//   int count = 0;
+//   face.onSendData.connect([&](const Data& response) {
+//     count++;
+//     BOOST_CHECK(security::verifySignature(response, cert));
+//     Block contentBlock = response.getContent();
+//     contentBlock.parse();
+//     Block probeResponse = contentBlock.get(tlv_probe_response);
+//     probeResponse.parse();
+//     Name caName;
+//     caName.wireDecode(probeResponse.get(tlv::Name));
+//     BOOST_CHECK_EQUAL(caName, "/ndn/example");
+//   });
+//   face.receive(interest);
 
-  advanceClocks(time::milliseconds(20), 60);
-  BOOST_CHECK_EQUAL(count, 1);
-}
+//   advanceClocks(time::milliseconds(20), 60);
+//   BOOST_CHECK_EQUAL(count, 1);
+// }
 
 BOOST_AUTO_TEST_CASE(HandleInfo)
 {
@@ -98,9 +98,6 @@
 
   util::DummyClientFace face(io, m_keyChain, {true, true});
   CaModule ca(face, m_keyChain, "tests/unit-tests/ca.conf.test", "ca-storage-memory");
-  ca.setProbeHandler([&](const Block& probeInfo) {
-    return "example";
-  });
   advanceClocks(time::milliseconds(20), 60);
 
   Interest interest("/ndn/CA/INFO");
@@ -253,7 +250,6 @@
 
   util::DummyClientFace face(io, m_keyChain, {true, true});
   CaModule ca(face, m_keyChain, "tests/unit-tests/ca.conf.test", "ca-storage-memory");
-  ca.m_config.m_probe = "email";
   advanceClocks(time::milliseconds(20), 60);
 
   ClientModule client(m_keyChain);