diff --git a/utils/dummy-keychain.cpp b/utils/dummy-keychain.cpp
index 84d79ee..fefc86e 100644
--- a/utils/dummy-keychain.cpp
+++ b/utils/dummy-keychain.cpp
@@ -62,6 +62,17 @@
    0x81, 0x91, 0x0b, 0x91, 0x9f, 0x3a, 0x04, 0xa2, 0x44, 0x28, 0x19, 0xa1, 0x38, 0x21, 0x4f, 0x25,
    0x59, 0x8a, 0x48, 0xc2};
 
+const std::string DummyPublicInfo::SCHEME = "pib-dummy";
+const std::string DummyTpm::SCHEME = "tpm-dummy";
+
+NDN_CXX_KEYCHAIN_REGISTER_PIB(DummyPublicInfo, "pib-dummy", "dummy");
+NDN_CXX_KEYCHAIN_REGISTER_TPM(DummyTpm, "tpm-dummy", "dummy");
+
+DummyPublicInfo::DummyPublicInfo(const std::string& locator)
+  : SecPublicInfo(locator)
+{
+}
+
 bool
 DummyPublicInfo::doesIdentityExist(const Name& identityName)
 {
@@ -226,11 +237,34 @@
 {
 }
 
+void
+DummyPublicInfo::setTpmLocator(const std::string& tpmLocator)
+{
+  m_tpmLocator = tpmLocator;
+}
+
+std::string
+DummyPublicInfo::getTpmLocator()
+{
+  return m_tpmLocator;
+}
+
+std::string
+DummyPublicInfo::getScheme()
+{
+  return DummyPublicInfo::SCHEME;
+}
+
 //////////////////////////////////////////////////////////////////////////////////////////
 //////////////////////////////////////////////////////////////////////////////////////////
 //////////////////////////////////////////////////////////////////////////////////////////
 //////////////////////////////////////////////////////////////////////////////////////////
 
+DummyTpm::DummyTpm(const std::string& locator)
+  : SecTpm(locator)
+{
+}
+
 void
 DummyTpm::setTpmPassword(const uint8_t* password, size_t passwordLength)
 {
@@ -343,5 +377,11 @@
   return false;
 }
 
+std::string
+DummyTpm::getScheme()
+{
+  return DummyTpm::SCHEME;
+}
+
 } // namespace security
 } // namespace ndn
diff --git a/utils/dummy-keychain.hpp b/utils/dummy-keychain.hpp
index bef13e5..4a1c0fd 100644
--- a/utils/dummy-keychain.hpp
+++ b/utils/dummy-keychain.hpp
@@ -27,6 +27,8 @@
 
 class DummyPublicInfo : public SecPublicInfo {
 public:
+  DummyPublicInfo(const std::string& locator);
+
   virtual bool
   doesIdentityExist(const Name& identityName);
 
@@ -90,6 +92,12 @@
   virtual void
   deleteIdentityInfo(const Name& identity);
 
+  virtual void
+  setTpmLocator(const std::string& tpmLocator);
+
+  virtual std::string
+  getTpmLocator();
+
 protected:
   virtual void
   setDefaultIdentityInternal(const Name& identityName);
@@ -99,6 +107,15 @@
 
   virtual void
   setDefaultCertificateNameForKeyInternal(const Name& certificateName);
+
+  virtual std::string
+  getScheme();
+
+public:
+  static const std::string SCHEME;
+
+private:
+  std::string m_tpmLocator;
 };
 
 //////////////////////////////////////////////////////////////////////////////////////////
@@ -106,6 +123,8 @@
 
 class DummyTpm : public SecTpm {
 public:
+  DummyTpm(const std::string& locator);
+
   virtual void
   setTpmPassword(const uint8_t* password, size_t passwordLength);
 
@@ -155,6 +174,9 @@
   virtual void
   addAppToAcl(const Name& keyName, KeyClass keyClass, const std::string& appPath, AclType acl);
 
+  virtual std::string
+  getScheme();
+
 protected:
   virtual ConstBufferPtr
   exportPrivateKeyPkcs8FromTpm(const Name& keyName);
@@ -164,20 +186,12 @@
 
   virtual bool
   importPublicKeyPkcs1IntoTpm(const Name& keyName, const uint8_t* buffer, size_t bufferSize);
-};
 
-typedef KeyChainTraits<DummyPublicInfo, DummyTpm> DummyKeyChainTraits;
+public:
+  static const std::string SCHEME;
+};
 
 } // namespace security
-
-class DummyKeyChain : public KeyChain {
-public:
-  DummyKeyChain()
-    : KeyChain(security::DummyKeyChainTraits())
-  {
-  }
-};
-
 } // namespace ndn
 
 #endif // NDNSIM_UTILS_DUMMY_KEYCHAIN_HPP
