diff --git a/tools/ndns-create-zone.cpp b/tools/ndns-create-zone.cpp
index eaea7ee..e20b200 100644
--- a/tools/ndns-create-zone.cpp
+++ b/tools/ndns-create-zone.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
- * Copyright (c) 2014-2019, Regents of the University of California.
+ * Copyright (c) 2014-2020, Regents of the University of California.
  *
  * This file is part of NDNS (Named Data Networking Domain Name Service).
  * See AUTHORS.md for complete list of NDNS authors and contributors.
@@ -130,7 +130,7 @@
     KeyChain keyChain;
     ndn::ndns::ManagementTool tool(db, keyChain);
     ndn::ndns::Zone createdZone = tool.createZone(zone, parent, cacheTtl, certTtl, ksk, dsk, dkey);
-    ndn::security::v2::Certificate dkeyCert = tool.getZoneDkey(createdZone);
+    ndn::security::Certificate dkeyCert = tool.getZoneDkey(createdZone);
     NDNS_LOG_INFO("Generated DKEY " << dkeyCert.getName());
     ndn::io::save(dkeyCert, std::cout);
   }
diff --git a/tools/ndns-daemon.cpp b/tools/ndns-daemon.cpp
index 0414e1f..2f71a45 100644
--- a/tools/ndns-daemon.cpp
+++ b/tools/ndns-daemon.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
- * Copyright (c) 2014-2019, Regents of the University of California.
+ * Copyright (c) 2014-2020, Regents of the University of California.
  *
  * This file is part of NDNS (Named Data Networking Domain Name Service).
  * See AUTHORS.md for complete list of NDNS authors and contributors.
@@ -124,7 +124,7 @@
 private:
   Face& m_face;
   Face& m_validatorFace;
-  unique_ptr<security::v2::Validator> m_validator;
+  unique_ptr<security::Validator> m_validator;
   unique_ptr<DbMgr> m_dbMgr;
   std::vector<shared_ptr<NameServer>> m_servers;
   KeyChain m_keyChain;
diff --git a/tools/ndns-dig.cpp b/tools/ndns-dig.cpp
index 3f533a7..5cb6a40 100644
--- a/tools/ndns-dig.cpp
+++ b/tools/ndns-dig.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
- * Copyright (c) 2014-2018, Regents of the University of California.
+ * Copyright (c) 2014-2020, Regents of the University of California.
  *
  * This file is part of NDNS (Named Data Networking Domain Name Service).
  * See AUTHORS.md for complete list of NDNS authors and contributors.
@@ -170,7 +170,7 @@
   }
 
   void
-  onDataValidationFailed(const Data& data, const security::v2::ValidationError& err)
+  onDataValidationFailed(const Data& data, const security::ValidationError& err)
   {
     NDNS_LOG_INFO("final data does not pass verification");
     m_hasError = true;
@@ -205,7 +205,7 @@
 
   Face m_face;
 
-  unique_ptr<security::v2::Validator> m_validator;
+  unique_ptr<security::Validator> m_validator;
   bool m_shouldValidateIntermediate;
   std::unique_ptr<QueryController> m_ctr;
 
diff --git a/tools/ndns-update.cpp b/tools/ndns-update.cpp
index 91c3ea1..b810109 100644
--- a/tools/ndns-update.cpp
+++ b/tools/ndns-update.cpp
@@ -161,7 +161,7 @@
   }
 
   void
-  onDataValidationFailed(const Data&, const security::v2::ValidationError&)
+  onDataValidationFailed(const Data&, const security::ValidationError&)
   {
     NDNS_LOG_INFO("data does not pass verification");
     m_hasError = true;
@@ -187,7 +187,7 @@
   time::milliseconds m_interestLifetime;
 
   Face& m_face;
-  unique_ptr<security::v2::Validator> m_validator;
+  unique_ptr<security::Validator> m_validator;
   KeyChain m_keyChain;
 
   shared_ptr<Data> m_update;
