Skip to content

Commit

Permalink
compare authors using Thumbprint
Browse files Browse the repository at this point in the history
Change-Id: I338f58eb07cbf0a3d13a7dafdaddac09252a8546
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130929
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
(cherry picked from commit 6544220)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130866
Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
  • Loading branch information
Caolán McNamara authored and mistmist committed Mar 4, 2022
1 parent ca3eb58 commit a7aaa78
Showing 1 changed file with 11 additions and 3 deletions.
14 changes: 11 additions & 3 deletions xmlsecurity/source/component/documentdigitalsignatures.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -666,9 +666,17 @@ sal_Bool DocumentDigitalSignatures::isAuthorTrusted(
std::vector< SvtSecurityOptions::Certificate > aTrustedAuthors = SvtSecurityOptions().GetTrustedAuthors();

return std::any_of(aTrustedAuthors.begin(), aTrustedAuthors.end(),
[&xAuthor, &sSerialNum](const SvtSecurityOptions::Certificate& rAuthor) {
return xmlsecurity::EqualDistinguishedNames(rAuthor.SubjectName, xAuthor->getIssuerName(), xmlsecurity::NOCOMPAT)
&& ( rAuthor.SerialNumber == sSerialNum );
[this, &xAuthor, &sSerialNum](const SvtSecurityOptions::Certificate& rAuthor) {
if (!xmlsecurity::EqualDistinguishedNames(rAuthor.SubjectName, xAuthor->getIssuerName(), xmlsecurity::NOCOMPAT))
return false;
if (rAuthor.SerialNumber != sSerialNum)
return false;

DocumentSignatureManager aSignatureManager(mxCtx, {});
if (!aSignatureManager.init())
return false;
uno::Reference<css::security::XCertificate> xCert = aSignatureManager.getSecurityEnvironment()->createCertificateFromAscii(rAuthor.RawData);
return xCert->getSHA1Thumbprint() == xAuthor->getSHA1Thumbprint();
});
}

Expand Down

0 comments on commit a7aaa78

Please sign in to comment.