security: Separate TPM locator modification and database resetting in PIB

Change-Id: I80c2805b6e1204b95d59a090a6a04e1ee62fb6e5
Refs: #3203
diff --git a/src/security/pib/pib-memory.cpp b/src/security/pib/pib-memory.cpp
index 719d0c4..edf2ce9 100644
--- a/src/security/pib/pib-memory.cpp
+++ b/src/security/pib/pib-memory.cpp
@@ -35,14 +35,13 @@
 void
 PibMemory::setTpmLocator(const std::string& tpmLocator)
 {
-  // The locator of PibMemory is always 'tpm-memory:'
-  BOOST_THROW_EXCEPTION(Error("PibMemory does not need a locator"));
+  m_tpmLocator = tpmLocator;
 }
 
 std::string
 PibMemory::getTpmLocator() const
 {
-  return "tpm-memory:";
+  return m_tpmLocator;
 }
 
 bool
@@ -75,6 +74,18 @@
   }
 }
 
+void
+PibMemory::clearIdentities()
+{
+  m_hasDefaultIdentity = false;
+  m_defaultIdentity.clear();
+  m_identities.clear();
+  m_defaultKey.clear();
+  m_keys.clear();
+  m_defaultCert.clear();
+  m_certs.clear();
+}
+
 std::set<Name>
 PibMemory::getIdentities() const
 {