diff --git a/src/mgmt/management-tool.cpp b/src/mgmt/management-tool.cpp
index 3119840..9f363dc 100644
--- a/src/mgmt/management-tool.cpp
+++ b/src/mgmt/management-tool.cpp
@@ -47,7 +47,7 @@
 using security::transform::base64Encode;
 using security::transform::streamSink;
 using security::transform::bufferSource;
-using security::v2::Certificate;
+using security::Certificate;
 using security::Identity;
 using security::Key;
 
@@ -213,7 +213,7 @@
 ManagementTool::exportCertificate(const Name& certName, const std::string& outFile)
 {
   // only search in local NDNS database
-  security::v2::Certificate cert;
+  security::Certificate cert;
   shared_ptr<Regex> regex = make_shared<Regex>("(<>*)<NDNS>(<>+)<CERT><>");
   if (!regex->match(certName)) {
     BOOST_THROW_EXCEPTION(Error("Certificate name is illegal"));
@@ -229,7 +229,7 @@
   rrset.setLabel(label);
   rrset.setType(label::CERT_RR_TYPE);
   if (m_dbMgr.find(rrset)) {
-    cert = security::v2::Certificate(rrset.getData());
+    cert = security::Certificate(rrset.getData());
   }
   else {
     BOOST_THROW_EXCEPTION(Error("Cannot find the cert: " + certName.toUri()));
@@ -390,11 +390,11 @@
   generateDoe(*rrset.getZone());
 }
 
-security::v2::Certificate
+security::Certificate
 ManagementTool::getZoneDkey(Zone& zone)
 {
   std::map<std::string, Block> zoneInfo = m_dbMgr.getZoneInfo(zone);
-  return security::v2::Certificate(zoneInfo["dkey"]);
+  return security::Certificate(zoneInfo["dkey"]);
 }
 
 void
@@ -502,7 +502,7 @@
         ndn::util::IndentedStream istream(os, "; ");
 
         if (re.getRrType() == label::CERT_RR_TYPE) {
-          security::v2::Certificate cert(rrset.getData());
+          security::Certificate cert(rrset.getData());
           os << cert;
           // cert.printCertificate(istream);
         }
diff --git a/src/mgmt/management-tool.hpp b/src/mgmt/management-tool.hpp
index 64d2904..5b9b51e 100644
--- a/src/mgmt/management-tool.hpp
+++ b/src/mgmt/management-tool.hpp
@@ -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.
@@ -203,7 +203,7 @@
            const name::Component& type,
            std::ostream& os);
 
-  security::v2::Certificate
+  security::Certificate
   getZoneDkey(Zone& zone);
 
   /** @brief generates an output like DNS zone file. Reference:
@@ -228,9 +228,9 @@
   /** @brief add CERT to the NDNS local database
    */
   void
-  addIdCert(Zone& zone, const ndn::security::v2::Certificate& cert,
+  addIdCert(Zone& zone, const ndn::security::Certificate& cert,
             const time::seconds& ttl,
-            const ndn::security::v2::Certificate& dskCertName);
+            const ndn::security::Certificate& dskCertName);
 
   /** @brief add zone to the NDNS local database
    */
