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));
    
