diff --git a/tests/test-encode-decode-data.cpp b/tests/test-encode-decode-data.cpp
index a123cd8..ef1432e 100644
--- a/tests/test-encode-decode-data.cpp
+++ b/tests/test-encode-decode-data.cpp
@@ -71,6 +71,30 @@
 0x30, 0x18, 0xeb, 0x90, 0xfb, 0x17, 0xd3, 0xce, 0xb5
 };
 
+static uint8_t DEFAULT_CERTIFICATE_DER[] = {
+0x04, 0x82, 0x02, 0xAA, 0x03, 0xB2, 0x85, 0x00, 0x00, 0xF2, 0xFA, 0xC5, 0x74, 0x65, 0x73, 0x74, 0x6E, 0x61, 0x6D, 0x65,
+0x00, 0xFA, 0x9D, 0x4B, 0x45, 0x59, 0x00, 0xFA, 0xBD, 0x44, 0x53, 0x4B, 0x2D, 0x31, 0x32, 0x33, 0x00, 0xFA, 0xBD, 0x49,
+0x44, 0x2D, 0x43, 0x45, 0x52, 0x54, 0x00, 0xFA, 0x8D, 0x30, 0x00, 0x00, 0x01, 0xA2, 0x03, 0xE2, 0x02, 0x85, 0xB5, 0x50,
+0x6B, 0x1A, 0xBA, 0x3D, 0xA7, 0x76, 0x1B, 0x0F, 0x8D, 0x61, 0xA4, 0xAA, 0x7E, 0x3B, 0x6D, 0x15, 0xB4, 0x26, 0xFE, 0xB5,
+0xBD, 0xA8, 0x23, 0x89, 0xAC, 0xA7, 0x65, 0xA3, 0xB8, 0x1C, 0x00, 0x02, 0xBA, 0x85, 0x00, 0x02, 0xC2, 0x9D, 0x28, 0x46,
+0x3F, 0x00, 0x01, 0xE2, 0x01, 0xEA, 0xF2, 0xFA, 0xC5, 0x74, 0x65, 0x73, 0x74, 0x6E, 0x61, 0x6D, 0x65, 0x00, 0xFA, 0x9D,
+0x4B, 0x45, 0x59, 0x00, 0xFA, 0xBD, 0x44, 0x53, 0x4B, 0x2D, 0x31, 0x32, 0x33, 0x00, 0xFA, 0xBD, 0x49, 0x44, 0x2D, 0x43,
+0x45, 0x52, 0x54, 0x00, 0xFA, 0x8D, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x9A, 0x0F, 0x9D, 0x30, 0x81, 0xF0, 0x30,
+0x30, 0x18, 0x16, 0x32, 0x30, 0x31, 0x33, 0x31, 0x30, 0x32, 0x33, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x2E, 0x30, 0x30,
+0x30, 0x30, 0x30, 0x30, 0x5A, 0x18, 0x16, 0x32, 0x30, 0x33, 0x33, 0x31, 0x30, 0x32, 0x33, 0x30, 0x30, 0x30, 0x30, 0x30,
+0x30, 0x2E, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x5A, 0x30, 0x1A, 0x30, 0x18, 0x06, 0x03, 0x55, 0x04, 0x29, 0x13, 0x11,
+0x2F, 0x74, 0x65, 0x73, 0x74, 0x6E, 0x61, 0x6D, 0x65, 0x2F, 0x44, 0x53, 0x4B, 0x2D, 0x31, 0x32, 0x33, 0x30, 0x81, 0x9F,
+0x30, 0x0D, 0x06, 0x09, 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x81, 0x8D, 0x00, 0x30,
+0x81, 0x89, 0x02, 0x81, 0x81, 0x00, 0xE1, 0x7D, 0x30, 0xA7, 0xD8, 0x28, 0xAB, 0x1B, 0x84, 0x0B, 0x17, 0x54, 0x2D, 0xCA,
+0xF6, 0x20, 0x7A, 0xFD, 0x22, 0x1E, 0x08, 0x6B, 0x2A, 0x60, 0xD1, 0x6C, 0xB7, 0xF5, 0x44, 0x48, 0xBA, 0x9F, 0x3F, 0x08,
+0xBC, 0xD0, 0x99, 0xDB, 0x21, 0xDD, 0x16, 0x2A, 0x77, 0x9E, 0x61, 0xAA, 0x89, 0xEE, 0xE5, 0x54, 0xD3, 0xA4, 0x7D, 0xE2,
+0x30, 0xBC, 0x7A, 0xC5, 0x90, 0xD5, 0x24, 0x06, 0x7C, 0x38, 0x98, 0xBB, 0xA6, 0xF5, 0xDC, 0x43, 0x60, 0xB8, 0x45, 0xED,
+0xA4, 0x8C, 0xBD, 0x9C, 0xF1, 0x26, 0xA7, 0x23, 0x44, 0x5F, 0x0E, 0x19, 0x52, 0xD7, 0x32, 0x5A, 0x75, 0xFA, 0xF5, 0x56,
+0x14, 0x4F, 0x9A, 0x98, 0xAF, 0x71, 0x86, 0xB0, 0x27, 0x86, 0x85, 0xB8, 0xE2, 0xC0, 0x8B, 0xEA, 0x87, 0x17, 0x1B, 0x4D,
+0xEE, 0x58, 0x5C, 0x18, 0x28, 0x29, 0x5B, 0x53, 0x95, 0xEB, 0x4A, 0x17, 0x77, 0x9F, 0x02, 0x03, 0x01, 0x00, 0x01, 0x00,
+0x00
+};
+
 uint8_t Data1[] = {
 0x04, 0x82, // NDN Data
   0x02, 0xaa, // Signature
@@ -238,14 +262,19 @@
     freshData->setContent(freshContent, sizeof(freshContent) - 1);
     freshData->getMetaInfo().setTimestampMilliseconds(time(NULL) * 1000.0);
     
+    shared_ptr<MemoryIdentityStorage> identityStorage(new MemoryIdentityStorage());
     shared_ptr<MemoryPrivateKeyStorage> privateKeyStorage(new MemoryPrivateKeyStorage());
     KeyChain keyChain
-      (make_shared<IdentityManager>(make_shared<MemoryIdentityStorage>(), privateKeyStorage), 
-       make_shared<NoVerifyPolicyManager>());
+      (make_shared<IdentityManager>(identityStorage, privateKeyStorage), make_shared<NoVerifyPolicyManager>());
     
     // Initialize the storage.
     Name keyName("/testname/DSK-123");
-    Name certificateName = Name(keyName).append(Name("ID-CERT/0"));
+    Name certificateName = keyName.getSubName(0, keyName.size() - 1).append("KEY").append
+           (keyName.get(keyName.size() - 1)).append("ID-CERT").append("0");
+    identityStorage->addKey(keyName, KEY_TYPE_RSA, Blob(DEFAULT_PUBLIC_KEY_DER, sizeof(DEFAULT_PUBLIC_KEY_DER)));
+    Data certificateData;
+    certificateData.wireDecode(DEFAULT_CERTIFICATE_DER, sizeof(DEFAULT_CERTIFICATE_DER));
+    identityStorage->addCertificate(IdentityCertificate(certificateData));
     privateKeyStorage->setKeyPairForKeyName
       (keyName, DEFAULT_PUBLIC_KEY_DER, sizeof(DEFAULT_PUBLIC_KEY_DER), DEFAULT_PRIVATE_KEY_DER, sizeof(DEFAULT_PRIVATE_KEY_DER));
     
diff --git a/tests/test-publish-async.cpp b/tests/test-publish-async.cpp
index 53163b4..e8031b0 100644
--- a/tests/test-publish-async.cpp
+++ b/tests/test-publish-async.cpp
@@ -64,6 +64,30 @@
 0x30, 0x18, 0xeb, 0x90, 0xfb, 0x17, 0xd3, 0xce, 0xb5
 };
 
+static uint8_t DEFAULT_CERTIFICATE_DER[] = {
+0x04, 0x82, 0x02, 0xAA, 0x03, 0xB2, 0x85, 0x00, 0x00, 0xF2, 0xFA, 0xC5, 0x74, 0x65, 0x73, 0x74, 0x6E, 0x61, 0x6D, 0x65,
+0x00, 0xFA, 0x9D, 0x4B, 0x45, 0x59, 0x00, 0xFA, 0xBD, 0x44, 0x53, 0x4B, 0x2D, 0x31, 0x32, 0x33, 0x00, 0xFA, 0xBD, 0x49,
+0x44, 0x2D, 0x43, 0x45, 0x52, 0x54, 0x00, 0xFA, 0x8D, 0x30, 0x00, 0x00, 0x01, 0xA2, 0x03, 0xE2, 0x02, 0x85, 0xB5, 0x50,
+0x6B, 0x1A, 0xBA, 0x3D, 0xA7, 0x76, 0x1B, 0x0F, 0x8D, 0x61, 0xA4, 0xAA, 0x7E, 0x3B, 0x6D, 0x15, 0xB4, 0x26, 0xFE, 0xB5,
+0xBD, 0xA8, 0x23, 0x89, 0xAC, 0xA7, 0x65, 0xA3, 0xB8, 0x1C, 0x00, 0x02, 0xBA, 0x85, 0x00, 0x02, 0xC2, 0x9D, 0x28, 0x46,
+0x3F, 0x00, 0x01, 0xE2, 0x01, 0xEA, 0xF2, 0xFA, 0xC5, 0x74, 0x65, 0x73, 0x74, 0x6E, 0x61, 0x6D, 0x65, 0x00, 0xFA, 0x9D,
+0x4B, 0x45, 0x59, 0x00, 0xFA, 0xBD, 0x44, 0x53, 0x4B, 0x2D, 0x31, 0x32, 0x33, 0x00, 0xFA, 0xBD, 0x49, 0x44, 0x2D, 0x43,
+0x45, 0x52, 0x54, 0x00, 0xFA, 0x8D, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x9A, 0x0F, 0x9D, 0x30, 0x81, 0xF0, 0x30,
+0x30, 0x18, 0x16, 0x32, 0x30, 0x31, 0x33, 0x31, 0x30, 0x32, 0x33, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x2E, 0x30, 0x30,
+0x30, 0x30, 0x30, 0x30, 0x5A, 0x18, 0x16, 0x32, 0x30, 0x33, 0x33, 0x31, 0x30, 0x32, 0x33, 0x30, 0x30, 0x30, 0x30, 0x30,
+0x30, 0x2E, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x5A, 0x30, 0x1A, 0x30, 0x18, 0x06, 0x03, 0x55, 0x04, 0x29, 0x13, 0x11,
+0x2F, 0x74, 0x65, 0x73, 0x74, 0x6E, 0x61, 0x6D, 0x65, 0x2F, 0x44, 0x53, 0x4B, 0x2D, 0x31, 0x32, 0x33, 0x30, 0x81, 0x9F,
+0x30, 0x0D, 0x06, 0x09, 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x81, 0x8D, 0x00, 0x30,
+0x81, 0x89, 0x02, 0x81, 0x81, 0x00, 0xE1, 0x7D, 0x30, 0xA7, 0xD8, 0x28, 0xAB, 0x1B, 0x84, 0x0B, 0x17, 0x54, 0x2D, 0xCA,
+0xF6, 0x20, 0x7A, 0xFD, 0x22, 0x1E, 0x08, 0x6B, 0x2A, 0x60, 0xD1, 0x6C, 0xB7, 0xF5, 0x44, 0x48, 0xBA, 0x9F, 0x3F, 0x08,
+0xBC, 0xD0, 0x99, 0xDB, 0x21, 0xDD, 0x16, 0x2A, 0x77, 0x9E, 0x61, 0xAA, 0x89, 0xEE, 0xE5, 0x54, 0xD3, 0xA4, 0x7D, 0xE2,
+0x30, 0xBC, 0x7A, 0xC5, 0x90, 0xD5, 0x24, 0x06, 0x7C, 0x38, 0x98, 0xBB, 0xA6, 0xF5, 0xDC, 0x43, 0x60, 0xB8, 0x45, 0xED,
+0xA4, 0x8C, 0xBD, 0x9C, 0xF1, 0x26, 0xA7, 0x23, 0x44, 0x5F, 0x0E, 0x19, 0x52, 0xD7, 0x32, 0x5A, 0x75, 0xFA, 0xF5, 0x56,
+0x14, 0x4F, 0x9A, 0x98, 0xAF, 0x71, 0x86, 0xB0, 0x27, 0x86, 0x85, 0xB8, 0xE2, 0xC0, 0x8B, 0xEA, 0x87, 0x17, 0x1B, 0x4D,
+0xEE, 0x58, 0x5C, 0x18, 0x28, 0x29, 0x5B, 0x53, 0x95, 0xEB, 0x4A, 0x17, 0x77, 0x9F, 0x02, 0x03, 0x01, 0x00, 0x01, 0x00,
+0x00
+};
+
 class Echo {
 public:
   Echo(KeyChain &keyChain, const Name& certificateName)
@@ -107,15 +131,20 @@
   try {
     Face face("localhost");
         
+    shared_ptr<MemoryIdentityStorage> identityStorage(new MemoryIdentityStorage());
     shared_ptr<MemoryPrivateKeyStorage> privateKeyStorage(new MemoryPrivateKeyStorage());
     KeyChain keyChain
-      (make_shared<IdentityManager>(make_shared<MemoryIdentityStorage>(), privateKeyStorage), 
-       make_shared<NoVerifyPolicyManager>());
+      (make_shared<IdentityManager>(identityStorage, privateKeyStorage), make_shared<NoVerifyPolicyManager>());
     keyChain.setFace(&face);
     
     // Initialize the storage.
     Name keyName("/testname/DSK-123");
-    Name certificateName = Name(keyName).append(Name("ID-CERT/0"));
+    Name certificateName = keyName.getSubName(0, keyName.size() - 1).append("KEY").append
+           (keyName.get(keyName.size() - 1)).append("ID-CERT").append("0");
+    identityStorage->addKey(keyName, KEY_TYPE_RSA, Blob(DEFAULT_PUBLIC_KEY_DER, sizeof(DEFAULT_PUBLIC_KEY_DER)));
+    Data certificateData;
+    certificateData.wireDecode(DEFAULT_CERTIFICATE_DER, sizeof(DEFAULT_CERTIFICATE_DER));
+    identityStorage->addCertificate(IdentityCertificate(certificateData));
     privateKeyStorage->setKeyPairForKeyName
       (keyName, DEFAULT_PUBLIC_KEY_DER, sizeof(DEFAULT_PUBLIC_KEY_DER), DEFAULT_PRIVATE_KEY_DER, sizeof(DEFAULT_PRIVATE_KEY_DER));
    
