diff --git a/tests/unit/decryptor.t.cpp b/tests/unit/decryptor.t.cpp
index 14ebedf..8766907 100644
--- a/tests/unit/decryptor.t.cpp
+++ b/tests/unit/decryptor.t.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
- * Copyright (c) 2014-2023, Regents of the University of California
+ * Copyright (c) 2014-2024, Regents of the University of California
  *
  * NAC library is free software: you can redistribute it and/or modify it under the
  * terms of the GNU Lesser General Public License as published by the Free Software
@@ -41,10 +41,10 @@
   {
     StaticData data;
     for (const auto& block : data.managerPackets) {
-      m_ims.insert(*make_shared<Data>(block));
+      m_ims.insert(*std::make_shared<Data>(block));
     }
     for (const auto& block : data.encryptorPackets) {
-      m_ims.insert(*make_shared<Data>(block));
+      m_ims.insert(*std::make_shared<Data>(block));
     }
 
     auto serveFromIms = [this] (const Name&, const Interest& interest) {
diff --git a/tests/unit/encrypted-content.t.cpp b/tests/unit/encrypted-content.t.cpp
index 9c1f631..e14da41 100644
--- a/tests/unit/encrypted-content.t.cpp
+++ b/tests/unit/encrypted-content.t.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
- * Copyright (c) 2014-2023, Regents of the University of California
+ * Copyright (c) 2014-2024, Regents of the University of California
  *
  * This file is part of NAC (Name-Based Access Control for NDN).
  * See AUTHORS.md for complete list of NAC authors and contributors.
@@ -35,7 +35,7 @@
 public:
   EncryptedContent content;
   Block randomBlock = "01 03 000000"_block;
-  ConstBufferPtr randomBuffer = make_shared<const Buffer>(10);
+  ConstBufferPtr randomBuffer = std::make_shared<const Buffer>(10);
 };
 
 BOOST_FIXTURE_TEST_SUITE(TestEncryptedContent, EncryptedContentFixture)
diff --git a/tests/unit/encryptor.t.cpp b/tests/unit/encryptor.t.cpp
index 4a2e0a9..5c486f7 100644
--- a/tests/unit/encryptor.t.cpp
+++ b/tests/unit/encryptor.t.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
- * Copyright (c) 2014-2023, Regents of the University of California
+ * Copyright (c) 2014-2024, Regents of the University of California
  *
  * NAC library is free software: you can redistribute it and/or modify it under the
  * terms of the GNU Lesser General Public License as published by the Free Software
@@ -59,7 +59,7 @@
   {
     StaticData data;
     for (const auto& block : data.managerPackets) {
-      m_ims.insert(*make_shared<Data>(block));
+      m_ims.insert(*std::make_shared<Data>(block));
     }
     advanceClocks(1_ms, 10);
   }
