security: MemoryIdentityStorage: Implement key and certificate stores.
diff --git a/include/ndn-cpp/security/identity/memory-identity-storage.hpp b/include/ndn-cpp/security/identity/memory-identity-storage.hpp
index b86b7d9..60837ff 100644
--- a/include/ndn-cpp/security/identity/memory-identity-storage.hpp
+++ b/include/ndn-cpp/security/identity/memory-identity-storage.hpp
@@ -9,6 +9,7 @@
 #define NDN_MEMORY_IDENTITY_STORAGE_HPP
 
 #include <vector>
+#include <map>
 #include "identity-storage.hpp"
 
 namespace ndn {
@@ -164,8 +165,26 @@
   setDefaultCertificateNameForKey(const Name& keyName, const Name& certificateName);  
   
 private:
+  class KeyRecord {
+  public:
+    KeyRecord(KeyType keyType, const Blob &keyDer)
+    : keyType_(keyType), keyDer_(keyDer)
+    {
+    }
+    
+    const KeyType getKeyType() const { return keyType_; }
+    
+    const Blob& getKeyDer() { return keyDer_; }
+    
+  private:
+    KeyType keyType_;
+    Blob keyDer_;
+  };
+  
   std::vector<std::string> identityStore_; /**< A list of name URI. */
   std::string defaultIdentity_;            /**< The default identity in identityStore_, or "" if not defined. */
+  std::map<std::string, ptr_lib::shared_ptr<KeyRecord> > keyStore_; /**< The map key is the keyName.toUri() */
+  std::map<std::string, Blob> certificateStore_;                    /**< The map key is the certificateName.toUri() */
 };
 
 }