From 4fed5df2ddacc45514be197cba73a895ff415e5c Mon Sep 17 00:00:00 2001 From: Adrien Beraud <adrien.beraud@savoirfairelinux.com> Date: Wed, 15 Mar 2017 20:10:24 +0100 Subject: [PATCH] ringaccount: handle missing CA but present CA key Change-Id: I5d79ecc58bf4ea155e421e7bf4e12d9364fbaca1 --- src/ringdht/ringaccount.cpp | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/src/ringdht/ringaccount.cpp b/src/ringdht/ringaccount.cpp index 281f635232..2a262089c5 100644 --- a/src/ringdht/ringaccount.cpp +++ b/src/ringdht/ringaccount.cpp @@ -1391,14 +1391,12 @@ RingAccount::updateCertificates(ArchiveContent& archive, dht::crypto::Identity& // Currently set the CA flag and update expiration dates bool updated = false; - // Update CA if possible and relevant auto& cert = archive.id.second; auto ca = cert->issuer; - if (ca and not ca->issuer) { - if (not ca->isCA() or ca->getExpiration() < clock::now()) { - ca = std::make_shared<Certificate>(Certificate::generate(*archive.ca_key, "Ring CA", {}, true)); - updated = true; - } + // Update CA if possible and relevant + if (not ca or (not ca->issuer and (not ca->isCA() or ca->getExpiration() < clock::now()))) { + ca = std::make_shared<Certificate>(Certificate::generate(*archive.ca_key, "Ring CA", {}, true)); + updated = true; } // Update certificate -- GitLab