diff --git a/tests/unit/security/certificate-bundle-fetcher.t.cpp b/tests/unit/security/certificate-bundle-fetcher.t.cpp
index 1c7b8b8..5600257 100644
--- a/tests/unit/security/certificate-bundle-fetcher.t.cpp
+++ b/tests/unit/security/certificate-bundle-fetcher.t.cpp
@@ -26,6 +26,8 @@
 #include "tests/test-common.hpp"
 #include "tests/unit/security/validator-fixture.hpp"
 
+#include <boost/mp11/list.hpp>
+
 namespace ndn::tests {
 
 using namespace ndn::security;
@@ -147,7 +149,7 @@
   face.receive(makeNack(interest, lp::NackReason::NO_ROUTE));
 }
 
-using SuccessWithBundle = boost::mpl::vector<BundleWithFinalBlockId, BundleWithoutFinalBlockId>;
+using SuccessWithBundle = boost::mp11::mp_list<BundleWithFinalBlockId, BundleWithoutFinalBlockId>;
 
 BOOST_FIXTURE_TEST_CASE_TEMPLATE(ValidateSuccessWithBundle, T, SuccessWithBundle,
                                  CertificateBundleFetcherFixture<T>)
@@ -160,7 +162,7 @@
   }
 }
 
-using SuccessWithoutBundle = boost::mpl::vector<Nack, Timeout>;
+using SuccessWithoutBundle = boost::mp11::mp_list<Nack, Timeout>;
 
 BOOST_FIXTURE_TEST_CASE_TEMPLATE(ValidateSuccessWithoutBundle, T, SuccessWithoutBundle,
                                  CertificateBundleFetcherFixture<T>)
diff --git a/tests/unit/security/certificate-fetcher-direct-fetch.t.cpp b/tests/unit/security/certificate-fetcher-direct-fetch.t.cpp
index a843ca6..ca185c6 100644
--- a/tests/unit/security/certificate-fetcher-direct-fetch.t.cpp
+++ b/tests/unit/security/certificate-fetcher-direct-fetch.t.cpp
@@ -27,6 +27,7 @@
 #include "tests/test-common.hpp"
 #include "tests/unit/security/validator-fixture.hpp"
 
+#include <boost/mp11/list.hpp>
 #include <boost/range/adaptor/sliced.hpp>
 #include <boost/range/adaptor/strided.hpp>
 
@@ -124,7 +125,7 @@
   face.receive(makeNack(interest, lp::NackReason::NO_ROUTE));
 }
 
-using Failures = boost::mpl::vector<Timeout, Nack>;
+using Failures = boost::mp11::mp_list<Timeout, Nack>;
 
 BOOST_FIXTURE_TEST_CASE(ValidateSuccessData, CertificateFetcherDirectFetchFixture<Cert>)
 {
diff --git a/tests/unit/security/certificate-fetcher-from-network.t.cpp b/tests/unit/security/certificate-fetcher-from-network.t.cpp
index 7ffc276..ee66ad5 100644
--- a/tests/unit/security/certificate-fetcher-from-network.t.cpp
+++ b/tests/unit/security/certificate-fetcher-from-network.t.cpp
@@ -27,6 +27,8 @@
 #include "tests/boost-test.hpp"
 #include "tests/unit/security/validator-fixture.hpp"
 
+#include <boost/mp11/list.hpp>
+
 namespace ndn::tests {
 
 using namespace ndn::security;
@@ -91,7 +93,7 @@
   face.receive(nack);
 }
 
-using Failures = boost::mpl::vector<Timeout, Nack>;
+using Failures = boost::mp11::mp_list<Timeout, Nack>;
 
 BOOST_FIXTURE_TEST_CASE(ValidateSuccess, CertificateFetcherFromNetworkFixture<Cert>)
 {
diff --git a/tests/unit/security/certificate-fetcher-offline.t.cpp b/tests/unit/security/certificate-fetcher-offline.t.cpp
index 147701f..978bc12 100644
--- a/tests/unit/security/certificate-fetcher-offline.t.cpp
+++ b/tests/unit/security/certificate-fetcher-offline.t.cpp
@@ -25,6 +25,8 @@
 #include "tests/boost-test.hpp"
 #include "tests/unit/security/validator-fixture.hpp"
 
+#include <boost/mp11/list.hpp>
+
 namespace ndn::tests {
 
 using namespace ndn::security;
@@ -44,7 +46,7 @@
 
 BOOST_FIXTURE_TEST_SUITE(TestCertificateFetcherOffline, CertificateFetcherOfflineFixture)
 
-using Packets = boost::mpl::vector<InterestV03Pkt, DataPkt>;
+using Packets = boost::mp11::mp_list<InterestV03Pkt, DataPkt>;
 
 BOOST_AUTO_TEST_CASE_TEMPLATE(Validate, Packet, Packets)
 {
diff --git a/tests/unit/security/key-chain.t.cpp b/tests/unit/security/key-chain.t.cpp
index 15bf4cd..ac45ee7 100644
--- a/tests/unit/security/key-chain.t.cpp
+++ b/tests/unit/security/key-chain.t.cpp
@@ -28,8 +28,7 @@
 #include "tests/unit/clock-fixture.hpp"
 #include "tests/unit/test-home-env-saver.hpp"
 
-#include <openssl/opensslv.h>
-#include <boost/mpl/vector.hpp>
+#include <boost/mp11/list.hpp>
 
 namespace ndn::tests {
 
@@ -530,7 +529,7 @@
   }
 };
 
-using SigningTests = boost::mpl::vector<
+using SigningTests = boost::mp11::mp_list<
   RsaSigning<DataPkt>,
   RsaSigning<InterestV02Pkt>,
   RsaSigning<InterestV03Pkt>,
diff --git a/tests/unit/security/pib/pib-impl.t.cpp b/tests/unit/security/pib/pib-impl.t.cpp
index b26109d..d3d73de 100644
--- a/tests/unit/security/pib/pib-impl.t.cpp
+++ b/tests/unit/security/pib/pib-impl.t.cpp
@@ -21,13 +21,12 @@
 
 #include "ndn-cxx/security/pib/impl/pib-memory.hpp"
 #include "ndn-cxx/security/pib/impl/pib-sqlite3.hpp"
-#include "ndn-cxx/security/security-common.hpp"
 
 #include "tests/boost-test.hpp"
 #include "tests/unit/security/pib/pib-data-fixture.hpp"
 
 #include <boost/filesystem.hpp>
-#include <boost/mpl/vector.hpp>
+#include <boost/mp11/list.hpp>
 
 namespace ndn::tests {
 
@@ -57,7 +56,7 @@
   PibSqlite3 pib{m_path.string()};
 };
 
-using PibImpls = boost::mpl::vector<PibMemoryFixture, PibSqlite3Fixture>;
+using PibImpls = boost::mp11::mp_list<PibMemoryFixture, PibSqlite3Fixture>;
 
 BOOST_FIXTURE_TEST_CASE_TEMPLATE(TpmLocator, T, PibImpls, T)
 {
diff --git a/tests/unit/security/signing-info.t.cpp b/tests/unit/security/signing-info.t.cpp
index 29fd8ad..cdcc0c0 100644
--- a/tests/unit/security/signing-info.t.cpp
+++ b/tests/unit/security/signing-info.t.cpp
@@ -23,7 +23,6 @@
 
 #include "tests/boost-test.hpp"
 
-#include <openssl/opensslv.h>
 #include <boost/lexical_cast.hpp>
 #include <sstream>
 
diff --git a/tests/unit/security/tpm/back-end.t.cpp b/tests/unit/security/tpm/back-end.t.cpp
index da22029..d432d73 100644
--- a/tests/unit/security/tpm/back-end.t.cpp
+++ b/tests/unit/security/tpm/back-end.t.cpp
@@ -37,9 +37,8 @@
 
 #include "tests/boost-test.hpp"
 
-#include <openssl/opensslv.h>
-#include <boost/mpl/vector.hpp>
 #include <set>
+#include <boost/mp11/list.hpp>
 
 namespace ndn::tests {
 
@@ -50,7 +49,7 @@
 BOOST_AUTO_TEST_SUITE(Security)
 BOOST_AUTO_TEST_SUITE(TestTpmBackEnd)
 
-using TestBackEnds = boost::mpl::vector<
+using TestBackEnds = boost::mp11::mp_list<
 #if defined(NDN_CXX_HAVE_OSX_FRAMEWORKS) && defined(NDN_CXX_WITH_OSX_KEYCHAIN)
   BackEndWrapperOsx,
 #endif
diff --git a/tests/unit/security/transform/private-key.t.cpp b/tests/unit/security/transform/private-key.t.cpp
index 3d77d6c..cf8dddd 100644
--- a/tests/unit/security/transform/private-key.t.cpp
+++ b/tests/unit/security/transform/private-key.t.cpp
@@ -35,7 +35,7 @@
 #include "tests/boost-test.hpp"
 
 #include <openssl/opensslv.h>
-#include <boost/mpl/vector.hpp>
+#include <boost/mp11/list.hpp>
 #include <sstream>
 
 namespace ndn::tests {
@@ -364,7 +364,7 @@
 )PEM";
 };
 
-using KeyTestDataSets = boost::mpl::vector<
+using KeyTestDataSets = boost::mp11::mp_list<
 #if OPENSSL_VERSION_NUMBER < 0x30000000L
   // DES-encrypted keys
   // .privateKeyPkcs8 uses either the PBES1 or PBES2 encryption scheme with DES-CBC-Pad (see RFC 8018)
@@ -645,7 +645,7 @@
   }
 };
 
-using KeyGenParams = boost::mpl::vector<
+using KeyGenParams = boost::mp11::mp_list<
   HmacKeyGenParams,
   RsaKeyGenParams,
   EcKeyGenParams
diff --git a/tests/unit/security/transform/public-key.t.cpp b/tests/unit/security/transform/public-key.t.cpp
index 31970c4..473ead6 100644
--- a/tests/unit/security/transform/public-key.t.cpp
+++ b/tests/unit/security/transform/public-key.t.cpp
@@ -28,7 +28,7 @@
 
 #include "tests/boost-test.hpp"
 
-#include <boost/mpl/vector.hpp>
+#include <boost/mp11/list.hpp>
 
 #include <sstream>
 
@@ -68,7 +68,7 @@
       "5EJTDxq6ls5FoYLfThp8HOjuwGSz0qw8ocMqyku1y0V5peQ4rEPd0bwcpZd9svA=\n";
 };
 
-using KeyTestDataSets = boost::mpl::vector<RsaKeyTestData, EcKeyTestData>;
+using KeyTestDataSets = boost::mp11::mp_list<RsaKeyTestData, EcKeyTestData>;
 
 BOOST_AUTO_TEST_CASE_TEMPLATE(LoadAndSave, T, KeyTestDataSets)
 {
diff --git a/tests/unit/security/transform/stream-source.t.cpp b/tests/unit/security/transform/stream-source.t.cpp
index e20ff23..1500226 100644
--- a/tests/unit/security/transform/stream-source.t.cpp
+++ b/tests/unit/security/transform/stream-source.t.cpp
@@ -24,8 +24,7 @@
 
 #include "tests/boost-test.hpp"
 
-#include <boost/mpl/integral_c.hpp>
-#include <boost/mpl/vector.hpp>
+#include <boost/mp11/list.hpp>
 
 namespace ndn::tests {
 
@@ -76,9 +75,9 @@
   BOOST_CHECK_EQUAL(os.str(), "");
 }
 
-using BadBits = boost::mpl::vector<
-  boost::mpl::integral_c<std::ios_base::iostate, std::ios_base::badbit>,
-  boost::mpl::integral_c<std::ios_base::iostate, std::ios_base::failbit>
+using BadBits = boost::mp11::mp_list_c<std::ios_base::iostate,
+  std::ios_base::badbit,
+  std::ios_base::failbit
 >;
 
 BOOST_AUTO_TEST_CASE_TEMPLATE(BadStream, BadBit, BadBits)
diff --git a/tests/unit/security/transform/verifier-filter.t.cpp b/tests/unit/security/transform/verifier-filter.t.cpp
index 4f659be..cda900e 100644
--- a/tests/unit/security/transform/verifier-filter.t.cpp
+++ b/tests/unit/security/transform/verifier-filter.t.cpp
@@ -33,8 +33,6 @@
 
 #include "tests/boost-test.hpp"
 
-#include <openssl/opensslv.h>
-
 namespace ndn::tests {
 
 using namespace ndn::security::transform;
diff --git a/tests/unit/security/validation-policy-accept-all.t.cpp b/tests/unit/security/validation-policy-accept-all.t.cpp
index ca86c86..9fe1ba3 100644
--- a/tests/unit/security/validation-policy-accept-all.t.cpp
+++ b/tests/unit/security/validation-policy-accept-all.t.cpp
@@ -24,7 +24,7 @@
 #include "tests/boost-test.hpp"
 #include "tests/unit/security/validator-fixture.hpp"
 
-#include <boost/mpl/vector.hpp>
+#include <boost/mp11/list.hpp>
 
 namespace ndn::tests {
 
@@ -45,7 +45,7 @@
 
 BOOST_FIXTURE_TEST_SUITE(TestValidationPolicyAcceptAll, ValidationPolicyAcceptAllFixture)
 
-using Packets = boost::mpl::vector<Interest, Data>;
+using Packets = boost::mp11::mp_list<Interest, Data>;
 
 BOOST_AUTO_TEST_CASE_TEMPLATE(Validate, Packet, Packets)
 {
diff --git a/tests/unit/security/validation-policy-command-interest.t.cpp b/tests/unit/security/validation-policy-command-interest.t.cpp
index ac690e7..657b830 100644
--- a/tests/unit/security/validation-policy-command-interest.t.cpp
+++ b/tests/unit/security/validation-policy-command-interest.t.cpp
@@ -28,7 +28,7 @@
 #include "tests/test-common.hpp"
 #include "tests/unit/security/validator-fixture.hpp"
 
-#include <boost/mpl/vector.hpp>
+#include <boost/mp11/list.hpp>
 
 namespace ndn::tests {
 
@@ -339,10 +339,7 @@
 
 BOOST_AUTO_TEST_SUITE(Options)
 
-using NonPositiveGracePeriods = boost::mpl::vector<
-  GracePeriodSeconds<0>,
-  GracePeriodSeconds<-1>
->;
+using NonPositiveGracePeriods = boost::mp11::mp_list<GracePeriodSeconds<0>, GracePeriodSeconds<-1>>;
 
 BOOST_FIXTURE_TEST_CASE_TEMPLATE(GraceNonPositive, GracePeriod, NonPositiveGracePeriods,
                                  ValidationPolicyCommandInterestFixture<GracePeriod>)
diff --git a/tests/unit/security/validation-policy-config.t.cpp b/tests/unit/security/validation-policy-config.t.cpp
index 07b98e9..031eff0 100644
--- a/tests/unit/security/validation-policy-config.t.cpp
+++ b/tests/unit/security/validation-policy-config.t.cpp
@@ -30,6 +30,8 @@
 #include "tests/unit/security/validator-config/common.hpp"
 #include "tests/unit/security/validator-fixture.hpp"
 
+#include <boost/mp11/list.hpp>
+
 namespace ndn::tests {
 
 using ndn::security::ValidationPolicyConfig;
@@ -341,27 +343,29 @@
   }
 };
 
-using DataPolicies = boost::mpl::vector<LoadStringWithFileAnchor<Data>,
-                                        LoadFileWithFileAnchor<Data>,
-                                        LoadFileWithMultipleFileAnchors<Data>,
-                                        LoadSectionWithFileAnchor<Data>,
-                                        LoadStringWithBase64Anchor<Data>,
-                                        LoadStringWithDirAnchor<Data>,
-                                        LoadStringWithDirAnchor<Data, Refresh1h>,
-                                        LoadStringWithDirAnchor<Data, Refresh1m>,
-                                        LoadStringWithDirAnchor<Data, Refresh1s>
-                                        >;
+using DataPolicies = boost::mp11::mp_list<
+  LoadStringWithFileAnchor<Data>,
+  LoadFileWithFileAnchor<Data>,
+  LoadFileWithMultipleFileAnchors<Data>,
+  LoadSectionWithFileAnchor<Data>,
+  LoadStringWithBase64Anchor<Data>,
+  LoadStringWithDirAnchor<Data>,
+  LoadStringWithDirAnchor<Data, Refresh1h>,
+  LoadStringWithDirAnchor<Data, Refresh1m>,
+  LoadStringWithDirAnchor<Data, Refresh1s>
+>;
 
-using InterestPolicies = boost::mpl::vector<LoadStringWithFileAnchor<Interest>,
-                                            LoadFileWithFileAnchor<Interest>,
-                                            LoadFileWithMultipleFileAnchors<Interest>,
-                                            LoadSectionWithFileAnchor<Interest>,
-                                            LoadStringWithBase64Anchor<Interest>,
-                                            LoadStringWithDirAnchor<Interest>,
-                                            LoadStringWithDirAnchor<Interest, Refresh1h>,
-                                            LoadStringWithDirAnchor<Interest, Refresh1m>,
-                                            LoadStringWithDirAnchor<Interest, Refresh1s>
-                                            >;
+using InterestPolicies = boost::mp11::mp_list<
+  LoadStringWithFileAnchor<Interest>,
+  LoadFileWithFileAnchor<Interest>,
+  LoadFileWithMultipleFileAnchors<Interest>,
+  LoadSectionWithFileAnchor<Interest>,
+  LoadStringWithBase64Anchor<Interest>,
+  LoadStringWithDirAnchor<Interest>,
+  LoadStringWithDirAnchor<Interest, Refresh1h>,
+  LoadStringWithDirAnchor<Interest, Refresh1m>,
+  LoadStringWithDirAnchor<Interest, Refresh1s>
+>;
 
 BOOST_FIXTURE_TEST_CASE_TEMPLATE(ValidateData, Policy, DataPolicies, Policy)
 {
@@ -687,7 +691,7 @@
   BOOST_CHECK_EQUAL(this->policy.m_interestRules.size(), 0);
 }
 
-using Packets = boost::mpl::vector<Interest, Data>;
+using Packets = boost::mp11::mp_list<Interest, Data>;
 
 BOOST_FIXTURE_TEST_CASE_TEMPLATE(TrustAnchorWildcard, Packet, Packets, ValidationPolicyConfigFixture<Packet>)
 {
@@ -729,7 +733,7 @@
   VALIDATE_SUCCESS(packet, "Policy should accept everything");
 }
 
-using RefreshPolicies = boost::mpl::vector<Refresh1h, Refresh1m, Refresh1s>;
+using RefreshPolicies = boost::mp11::mp_list<Refresh1h, Refresh1m, Refresh1s>;
 
 template<typename RefreshPolicy>
 class RefreshPolicyFixture : public LoadStringWithDirAnchor<Data, RefreshPolicy>
diff --git a/tests/unit/security/validation-policy-signed-interest.t.cpp b/tests/unit/security/validation-policy-signed-interest.t.cpp
index ded8825..2cd91a7 100644
--- a/tests/unit/security/validation-policy-signed-interest.t.cpp
+++ b/tests/unit/security/validation-policy-signed-interest.t.cpp
@@ -28,7 +28,7 @@
 #include "tests/test-common.hpp"
 #include "tests/unit/security/validator-fixture.hpp"
 
-#include <boost/mpl/vector.hpp>
+#include <boost/mp11/list.hpp>
 
 namespace ndn::tests {
 
@@ -322,10 +322,7 @@
   VALIDATE_SUCCESS(i4, "Should succeed");
 }
 
-using NonPositiveGracePeriods = boost::mpl::vector<
-  GracePeriodSeconds<0>,
-  GracePeriodSeconds<-1>
->;
+using NonPositiveGracePeriods = boost::mp11::mp_list<GracePeriodSeconds<0>, GracePeriodSeconds<-1>>;
 
 BOOST_FIXTURE_TEST_CASE_TEMPLATE(GraceNonPositive, GracePeriod, NonPositiveGracePeriods,
                                  ValidationPolicySignedInterestFixture<GracePeriod>)
diff --git a/tests/unit/security/validation-policy-simple-hierarchy.t.cpp b/tests/unit/security/validation-policy-simple-hierarchy.t.cpp
index 80fc58a..11e7ee1 100644
--- a/tests/unit/security/validation-policy-simple-hierarchy.t.cpp
+++ b/tests/unit/security/validation-policy-simple-hierarchy.t.cpp
@@ -24,7 +24,7 @@
 #include "tests/boost-test.hpp"
 #include "tests/unit/security/validator-fixture.hpp"
 
-#include <boost/mpl/vector.hpp>
+#include <boost/mp11/list.hpp>
 
 namespace ndn::tests {
 
@@ -32,7 +32,7 @@
 BOOST_FIXTURE_TEST_SUITE(TestValidationPolicySimpleHierarchy,
                          HierarchicalValidatorFixture<security::ValidationPolicySimpleHierarchy>)
 
-using Packets = boost::mpl::vector<InterestV03Pkt, DataPkt>;
+using Packets = boost::mp11::mp_list<InterestV03Pkt, DataPkt>;
 
 BOOST_AUTO_TEST_CASE_TEMPLATE(Validate, Packet, Packets)
 {
diff --git a/tests/unit/security/validator-config/checker.t.cpp b/tests/unit/security/validator-config/checker.t.cpp
index 6c61085..d7e2fb9 100644
--- a/tests/unit/security/validator-config/checker.t.cpp
+++ b/tests/unit/security/validator-config/checker.t.cpp
@@ -20,13 +20,13 @@
  */
 
 #include "ndn-cxx/security/validator-config/checker.hpp"
-#include "ndn-cxx/security/validation-policy.hpp"
-#include "ndn-cxx/security/validation-state.hpp"
 
 #include "tests/boost-test.hpp"
 #include "tests/unit/security/validator-fixture.hpp"
 #include "tests/unit/security/validator-config/common.hpp"
 
+#include <boost/mp11/algorithm.hpp>
+
 namespace ndn::tests {
 
 using namespace ndn::security::validator_config;
@@ -283,7 +283,7 @@
                                              {false, false, false, true}};
 };
 
-using CheckerFixtures = boost::mpl::vector<
+using CheckerFixtures = boost::mp11::mp_list<
   NameRelationEqual,
   NameRelationIsPrefixOf,
   NameRelationIsStrictPrefixOf,
@@ -300,19 +300,16 @@
 >;
 
 // Cartesian product of [DataPkt, InterestV02Pkt, InterestV03Pkt] and CheckerFixtures.
-// Each element is a boost::mpl::pair<PktType, CheckerFixture>.
-using Tests = boost::mpl::fold<
-  CheckerFixtures,
-  boost::mpl::vector<>,
-  boost::mpl::push_back<boost::mpl::push_back<boost::mpl::push_back<boost::mpl::_1,
-    boost::mpl::pair<DataPkt, boost::mpl::_2>>,
-    boost::mpl::pair<InterestV02Pkt, boost::mpl::_2>>,
-    boost::mpl::pair<InterestV03Pkt, boost::mpl::_2>>
->::type;
+// Each element is an mp_list<PktType, Fixture>.
+using Tests = boost::mp11::mp_product<
+  boost::mp11::mp_list,
+  boost::mp11::mp_list<DataPkt, InterestV02Pkt, InterestV03Pkt>,
+  CheckerFixtures
+>;
 
-BOOST_FIXTURE_TEST_CASE_TEMPLATE(Checks, T, Tests, T::second)
+BOOST_FIXTURE_TEST_CASE_TEMPLATE(Checks, T, Tests, boost::mp11::mp_second<T>)
 {
-  using PktType = typename T::first;
+  using PktType = boost::mp11::mp_first<T>;
 
   BOOST_REQUIRE_EQUAL(this->outcomes.size(), this->names.size());
   for (size_t i = 0; i < this->names.size(); ++i) {
@@ -326,7 +323,6 @@
       this->template testChecker<PktType>(this->checker, tlv::SignatureSha256WithRsa, pktName, klName, expectedOutcome);
       this->template testChecker<PktType>(this->checker, tlv::SignatureSha256WithEcdsa, pktName, klName, false);
 
-
       klName = this->makeKeyLocatorCertName(this->names[j]);
       this->template testChecker<PktType>(this->checker, tlv::SignatureSha256WithRsa, pktName, klName, expectedOutcome);
       this->template testChecker<PktType>(this->checker, tlv::SignatureSha256WithEcdsa, pktName, klName, false);
diff --git a/tests/unit/security/validator-config/rule.t.cpp b/tests/unit/security/validator-config/rule.t.cpp
index ea0b4b7..434a0c9 100644
--- a/tests/unit/security/validator-config/rule.t.cpp
+++ b/tests/unit/security/validator-config/rule.t.cpp
@@ -25,7 +25,7 @@
 #include "tests/unit/security/validator-fixture.hpp"
 #include "tests/unit/security/validator-config/common.hpp"
 
-#include <boost/mpl/vector_c.hpp>
+#include <boost/mp11/list.hpp>
 
 namespace ndn::tests {
 
@@ -52,7 +52,7 @@
   shared_ptr<security::ValidationState> state;
 };
 
-using PktTypes = boost::mpl::vector<DataPkt, InterestV02Pkt, InterestV03Pkt>;
+using PktTypes = boost::mp11::mp_list<DataPkt, InterestV02Pkt, InterestV03Pkt>;
 
 BOOST_AUTO_TEST_SUITE(TestRule)
 
diff --git a/tests/unit/security/verification-helpers.t.cpp b/tests/unit/security/verification-helpers.t.cpp
index 540a133..0e34bcd 100644
--- a/tests/unit/security/verification-helpers.t.cpp
+++ b/tests/unit/security/verification-helpers.t.cpp
@@ -26,8 +26,7 @@
 #include "tests/key-chain-fixture.hpp"
 #include "tests/test-common.hpp"
 
-#include <openssl/opensslv.h>
-#include <boost/mpl/vector.hpp>
+#include <boost/mp11/list.hpp>
 
 namespace ndn::tests {
 
@@ -536,7 +535,7 @@
 // - .badSigInterestOldFormat is a valid and signed Interest packet that cannot be verified against
 //   .cert (signed using a different private key and in the old signed Interest format)
 
-using SignatureDatasets = boost::mpl::vector<EcdsaDataset, RsaDataset>;
+using SignatureDatasets = boost::mp11::mp_list<EcdsaDataset, RsaDataset>;
 
 BOOST_AUTO_TEST_CASE_TEMPLATE(VerifySignature, Dataset, SignatureDatasets)
 {
@@ -616,7 +615,7 @@
   BOOST_CHECK(verifySignature(interestOldFormat, tpm, signingInfo.getSignerName(), DigestAlgorithm::SHA256));
 }
 
-using DigestDatasets = boost::mpl::vector<Sha256Dataset>;
+using DigestDatasets = boost::mp11::mp_list<Sha256Dataset>;
 
 BOOST_AUTO_TEST_CASE_TEMPLATE(VerifyDigest, Dataset, DigestDatasets)
 {
