Certify key.

In-place editing with a popup if user is allowed in app config file.
User must of course manage at least a private key. User identities of
target key may be selectively chosen. Optionally, certification may be
exportable and non-revocable.
This commit is contained in:
SET
2020-11-03 11:06:25 +01:00
parent e434315940
commit 7f8af95d3a
23 changed files with 922 additions and 24 deletions

View File

@@ -30,6 +30,7 @@ using namespace std;
"canImport" : true,
"canDelete" : true,
"canEditOwnerTrust" : true,
"canEditUidValidity" : true,
"privKeyIds" : [
"fullKeyId1",
"fullKeyId2"
@@ -127,6 +128,19 @@ bool AppConfig::CanEditOwnerTrust() const
return cnObject.get("canEditOwnerTrust");
}
bool AppConfig::CanEditUidValidity() const
{
if (PrivateKeyIds().size() == 0)
return false;
const WString commonName = GetSubjectDnAttribute(WSslCertificate::DnAttributeName::CommonName);
if (!m_SubjectCNObject.contains(commonName.toUTF8()))
return false;
Json::Object cnObject = m_SubjectCNObject.get(commonName.toUTF8());
if (!cnObject.contains("canEditUidValidity"))
return false;
return cnObject.get("canEditUidValidity");
}
vector<WString> AppConfig::PrivateKeyIds() const
{
// List private key identifiers.
@@ -156,4 +170,4 @@ const WString AppConfig::GetSubjectDnAttribute(const WSslCertificate::DnAttribut
return dnAttr->at(i).value();
}
return WString::Empty;
}
}