diff --git a/src/core/net/srp_client.cpp b/src/core/net/srp_client.cpp index cbc24c4ff..fc4a417b5 100644 --- a/src/core/net/srp_client.cpp +++ b/src/core/net/srp_client.cpp @@ -961,19 +961,16 @@ Error Client::ReadOrGenerateKey(Crypto::Ecdsa::P256::KeyPairAsRef &aKeyRef) if (error == kErrorNone) { - Crypto::Ecdsa::P256::PublicKey publicKey; - - if (keyPair.GetPublicKey(publicKey) == kErrorNone) + if (aKeyRef.ImportKeyPair(keyPair) != kErrorNone) { - SuccessOrExit(error = aKeyRef.ImportKeyPair(keyPair)); - IgnoreError(Get().Delete()); - ExitNow(); + SuccessOrExit(error = aKeyRef.Generate()); } IgnoreError(Get().Delete()); } - - error = aKeyRef.Generate(); - + else + { + SuccessOrExit(error = aKeyRef.Generate()); + } exit: return error; }