diff --git a/include/ndn-cpp/security/key-chain.hpp b/include/ndn-cpp/security/key-chain.hpp
index 97db9d8..40e24fd 100644
--- a/include/ndn-cpp/security/key-chain.hpp
+++ b/include/ndn-cpp/security/key-chain.hpp
@@ -116,7 +116,7 @@
    * @param certificate The certificate to to added.
    */
   void
-  installIdentityCertificate(const Certificate& certificate)
+  installIdentityCertificate(const IdentityCertificate& certificate)
   {
     identityManager_->addCertificate(certificate);
   }
@@ -134,7 +134,7 @@
   /**
    * Get a certificate with the specified name.
    * @param certificateName The name of the requested certificate.
-   * @return the requested certificate.
+   * @return the requested certificate which is valid.
    */
   ptr_lib::shared_ptr<Certificate>
   getCertificate(const Name& certificateName)
@@ -154,6 +154,28 @@
   }
 
   /**
+   * Get an identity certificate with the specified name.
+   * @param certificateName The name of the requested certificate.
+   * @return the requested certificate which is valid.
+   */
+  ptr_lib::shared_ptr<IdentityCertificate>
+  getIdentityCertificate(const Name& certificateName)
+  {
+    return identityManager_->getCertificate(certificateName);
+  }
+
+  /**
+   * Get an identity certificate even if the certificate is not valid anymore.
+   * @param certificateName The name of the requested certificate.
+   * @return the requested certificate.
+   */
+  ptr_lib::shared_ptr<IdentityCertificate>
+  getAnyIdentityCertificate(const Name& certificateName)
+  {
+    return identityManager_->getAnyCertificate(certificateName);
+  }
+
+  /**
    * Revoke a key
    * @param keyName the name of the key that will be revoked
    */
