Avoid creating two new keys when using ndncert-client
Change-Id: I0d7f523532bca535ac0d5cae34f80f241d9b1db6
diff --git a/src/client-module.cpp b/src/client-module.cpp
index 0d98d90..fff47af 100644
--- a/src/client-module.cpp
+++ b/src/client-module.cpp
@@ -192,10 +192,17 @@
const RequestCallback& requestCallback,
const ErrorCallback& errorCallback)
{
- security::Identity identity = m_keyChain.createIdentity(identityName);
+ const auto& pib = m_keyChain.getPib();
auto state = make_shared<RequestState>();
- state->m_key = m_keyChain.createKey(identity);
+ try {
+ auto identity = pib.getIdentity(identityName);
+ state->m_key = m_keyChain.createKey(identity);
+ }
+ catch (const security::Pib::Error& e) {
+ auto identity = m_keyChain.createIdentity(identityName);
+ state->m_key = identity.getDefaultKey();
+ }
state->m_ca = ca;
state->m_isInstalled = false;