tools: Adjust ndnsec-cert-gen behaivor

Refs: #1484

Change-Id: Id33a2881cc7a4c9acdd16999e80be7d79c63d650
diff --git a/src/security/sec-public-info-sqlite3.cpp b/src/security/sec-public-info-sqlite3.cpp
index b8b5af3..8d7ccb2 100644
--- a/src/security/sec-public-info-sqlite3.cpp
+++ b/src/security/sec-public-info-sqlite3.cpp
@@ -196,6 +196,9 @@
 void
 SecPublicInfoSqlite3::addIdentity(const Name& identityName)
 {
+  if (doesIdentityExist(identityName))
+    return;
+
   sqlite3_stmt* statement;
 
   sqlite3_prepare_v2(m_database, "INSERT OR REPLACE INTO Identity (identity_name) values (?)", -1, &statement, 0);
@@ -249,6 +252,9 @@
   if (keyName.empty())
     return;
 
+  if (doesPublicKeyExist(keyName))
+    return;
+
   string keyId = keyName.get(-1).toEscapedString();
   Name identityName = keyName.getPrefix(-1);
 
@@ -387,6 +393,9 @@
 
   addPublicKey(keyName, KEY_TYPE_RSA, certificate.getPublicKeyInfo()); //HACK!!! Assume the key type is RSA, we should check more.
 
+  if (doesCertificateExist(certificateName))
+    return;
+
   string keyId = keyName.get(-1).toEscapedString();
   Name identity = keyName.getPrefix(-1);