diff --git a/tests/test-encode-decode-data.cpp b/tests/test-encode-decode-data.cpp
index ef1432e..952e850 100644
--- a/tests/test-encode-decode-data.cpp
+++ b/tests/test-encode-decode-data.cpp
@@ -71,30 +71,6 @@
 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
@@ -272,9 +248,6 @@
     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 4b18f20..21f48fc 100644
--- a/tests/test-publish-async.cpp
+++ b/tests/test-publish-async.cpp
@@ -65,30 +65,6 @@
 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)
@@ -143,9 +119,6 @@
     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));
    
