diff --git a/tests/chunks/consumer.t.cpp b/tests/chunks/consumer.t.cpp
index dba1c6b..a2bd683 100644
--- a/tests/chunks/consumer.t.cpp
+++ b/tests/chunks/consumer.t.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
- * Copyright (c) 2016-2019, Regents of the University of California,
+ * Copyright (c) 2016-2020, Regents of the University of California,
  *                          Colorado State University,
  *                          University Pierre & Marie Curie, Sorbonne University.
  *
@@ -66,7 +66,7 @@
 
   util::DummyClientFace face;
   output_test_stream output("");
-  Consumer cons(security::v2::getAcceptAllValidator(), output);
+  Consumer cons(security::getAcceptAllValidator(), output);
 
   auto interest = makeInterest(name, true);
 
@@ -101,7 +101,7 @@
 
   util::DummyClientFace face;
   output_test_stream output("");
-  Consumer cons(security::v2::getAcceptAllValidator(), output);
+  Consumer cons(security::getAcceptAllValidator(), output);
 
   auto interest = makeInterest(name, true);
   std::vector<shared_ptr<Data>> dataStore;
@@ -156,7 +156,7 @@
   boost::asio::io_service io;
   util::DummyClientFace face(io);
   Options options;
-  Consumer consumer(security::v2::getAcceptAllValidator());
+  Consumer consumer(security::getAcceptAllValidator());
 
   Name prefix = Name("/ndn/chunks/test").appendVersion(1);
   auto discover = make_unique<DiscoverVersion>(face, prefix, options);
diff --git a/tests/identity-management-fixture.cpp b/tests/identity-management-fixture.cpp
index 171216f..b4097d2 100644
--- a/tests/identity-management-fixture.cpp
+++ b/tests/identity-management-fixture.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
-/**
- * Copyright (c) 2014-2017,  Regents of the University of California.
+/*
+ * Copyright (c) 2014-2020,  Regents of the University of California.
  *
  * This file is part of ndn-tools (Named Data Networking Essential Tools).
  * See AUTHORS.md for complete list of ndn-tools authors and contributors.
@@ -18,11 +18,13 @@
  */
 
 #include "identity-management-fixture.hpp"
+
+#include <ndn-cxx/security/certificate.hpp>
 #include <ndn-cxx/security/pib/identity.hpp>
 #include <ndn-cxx/security/pib/key.hpp>
 #include <ndn-cxx/security/pib/pib.hpp>
-#include <ndn-cxx/security/v2/certificate.hpp>
 #include <ndn-cxx/util/io.hpp>
+
 #include <boost/filesystem.hpp>
 
 namespace ndn {
@@ -56,7 +58,7 @@
 bool
 IdentityManagementFixture::saveIdentityCertificate(const Name& identity, const std::string& filename, bool wantAdd)
 {
-  security::v2::Certificate cert;
+  security::Certificate cert;
   try {
     cert = m_keyChain.getPib().getIdentity(identity).getDefaultKey().getDefaultCertificate();
   }
