diff --git a/lib/db_x509.cpp b/lib/db_x509.cpp index 5288efcc..3813c212 100644 --- a/lib/db_x509.cpp +++ b/lib/db_x509.cpp @@ -837,6 +837,7 @@ void db_x509::certRenewal(QModelIndexList indexes) CertExtend *dlg = NULL; x509rev r; bool doRevoke = false; + bool doReplace = false; if (indexes.size() == 0) return; @@ -862,6 +863,7 @@ void db_x509::certRenewal(QModelIndexList indexes) r = revoke->getRevocation(); delete revoke; } + doReplace = dlg->replace->isChecked(); foreach(idx, indexes) { oldcert = fromIndex(idx); if (!oldcert) @@ -887,6 +889,10 @@ void db_x509::certRenewal(QModelIndexList indexes) newcert->sign(signkey, oldcert->getDigest()); newcert = dynamic_cast(insert(newcert)); createSuccess(newcert); + + // delete old certificate if requested + if (doReplace) + deletePKI(idx); } if (doRevoke) do_revoke(indexes, r); diff --git a/ui/CertExtend.ui b/ui/CertExtend.ui index be5f3f28..91902f43 100644 --- a/ui/CertExtend.ui +++ b/ui/CertExtend.ui @@ -215,6 +215,16 @@ Revoke old certificate + + false + + + + + + + Replace old certificate + true