security: Adding delete methods in KeyChain

Change-Id: I8e3bbbf6e911b43189c510c56118d291f8932df4
diff --git a/src/security/sec-public-info-memory.hpp b/src/security/sec-public-info-memory.hpp
index c991f1a..eb747e9 100644
--- a/src/security/sec-public-info-memory.hpp
+++ b/src/security/sec-public-info-memory.hpp
@@ -142,20 +142,20 @@
   virtual Name 
   getDefaultCertificateNameForKey(const Name& keyName);
 
-  virtual std::vector<Name>
-  getAllIdentities(bool isDefault);
+  virtual void
+  getAllIdentities(std::vector<Name> &nameList, bool isDefault);
 
-  virtual std::vector<Name>
-  getAllKeyNames(bool isDefault);
+  virtual void
+  getAllKeyNames(std::vector<Name> &nameList, bool isDefault);
 
-  virtual std::vector<Name>
-  getAllKeyNamesOfIdentity(const Name& identity, bool isDefault);
+  virtual void
+  getAllKeyNamesOfIdentity(const Name& identity, std::vector<Name> &nameList, bool isDefault);
     
-  virtual std::vector<Name>
-  getAllCertificateNames(bool isDefault);
+  virtual void
+  getAllCertificateNames(std::vector<Name> &nameList, bool isDefault);
 
-  virtual std::vector<Name>
-  getAllCertificateNamesOfKey(const Name& keyName, bool isDefault);
+  virtual void
+  getAllCertificateNamesOfKey(const Name& keyName, std::vector<Name> &nameList, bool isDefault);
 
 protected:
   /**
@@ -182,6 +182,27 @@
   virtual void 
   setDefaultCertificateNameForKeyInternal(const Name& certificateName);  
 
+  /**
+   * Delete a certificate.
+   * @param certificateName The certificate name.
+   */
+  virtual void
+  deleteCertificateInfo(const Name &certificateName);
+
+  /**
+   * Delete a public key and related certificates.
+   * @param keyName The key name.
+   */
+  virtual void
+  deletePublicKeyInfo(const Name &keyName);
+
+  /**
+   * Delete an identity and related public keys and certificates.
+   * @param identity The identity name.
+   */
+  virtual void
+  deleteIdentityInfo(const Name &identity);
+
   
 private:
   class KeyRecord {