diff options
-rw-r--r-- | comphelper/source/misc/xmlsechelper.cxx | 19 | ||||
-rw-r--r-- | cui/source/dialogs/SignSignatureLineDialog.cxx | 8 | ||||
-rw-r--r-- | include/comphelper/xmlsechelper.hxx | 3 | ||||
-rw-r--r-- | sfx2/source/dialog/dinfdlg.cxx | 2 | ||||
-rw-r--r-- | xmlsecurity/source/dialogs/certificatechooser.cxx | 4 | ||||
-rw-r--r-- | xmlsecurity/source/dialogs/certificateviewer.cxx | 6 | ||||
-rw-r--r-- | xmlsecurity/source/dialogs/digitalsignaturesdialog.cxx | 4 | ||||
-rw-r--r-- | xmlsecurity/source/dialogs/macrosecurity.cxx | 4 |
8 files changed, 22 insertions, 28 deletions
diff --git a/comphelper/source/misc/xmlsechelper.cxx b/comphelper/source/misc/xmlsechelper.cxx index d0b4b3074ca9..86df56cfc0e5 100644 --- a/comphelper/source/misc/xmlsechelper.cxx +++ b/comphelper/source/misc/xmlsechelper.cxx @@ -260,25 +260,16 @@ vector< pair< OUString, OUString> > parseDN(const OUString& rRawString) #endif - OUString GetContentPart( const OUString& _rRawString ) + OUString GetContentPart( const OUString& _rRawString, const css::security::CertificateKind &rKind ) { char const * aIDs[] = { "CN", "OU", "O", "E", nullptr }; - bool shouldBeParsed = false; - int i = 0; - while ( aIDs[i] ) - { - if (_rRawString.startsWith(OUString::createFromAscii(aIDs[i++]))) - { - shouldBeParsed = true; - break; - } - } - if (!shouldBeParsed) + // tdf#131733 Don't process OpenPGP certs, only X509 + if (rKind == css::security::CertificateKind_OPENPGP ) return _rRawString; OUString retVal; - i = 0; + int i = 0; vector< pair< OUString, OUString > > vecAttrValueOfDN = parseDN(_rRawString); while ( aIDs[i] ) { @@ -290,7 +281,7 @@ vector< pair< OUString, OUString> > parseDN(const OUString& rRawString) if (!retVal.isEmpty()) break; } - return retVal; + return retVal.isEmpty() ? _rRawString : retVal; } OUString GetHexString( const css::uno::Sequence< sal_Int8 >& _rSeq, const char* _pSep, sal_uInt16 _nLineBreak ) diff --git a/cui/source/dialogs/SignSignatureLineDialog.cxx b/cui/source/dialogs/SignSignatureLineDialog.cxx index 00ad09f4cbef..96fa94248106 100644 --- a/cui/source/dialogs/SignSignatureLineDialog.cxx +++ b/cui/source/dialogs/SignSignatureLineDialog.cxx @@ -180,8 +180,8 @@ IMPL_LINK_NOARG(SignSignatureLineDialog, chooseCertificate, weld::Button&, void) if (xSignCertificate.is()) { m_xSelectedCertifate = xSignCertificate; - m_xBtnChooseCertificate->set_label( - xmlsec::GetContentPart(xSignCertificate->getSubjectName())); + m_xBtnChooseCertificate->set_label(xmlsec::GetContentPart( + xSignCertificate->getSubjectName(), xSignCertificate->getCertificateKind())); } ValidateFields(); } @@ -223,7 +223,9 @@ css::uno::Reference<css::graphic::XGraphic> SignSignatureLineDialog::getSignedGr OUString aIssuerLine = CuiResId(RID_SVXSTR_SIGNATURELINE_SIGNED_BY) - .replaceFirst("%1", xmlsec::GetContentPart(m_xSelectedCertifate->getSubjectName())); + .replaceFirst("%1", + xmlsec::GetContentPart(m_xSelectedCertifate->getSubjectName(), + m_xSelectedCertifate->getCertificateKind())); aSvgImage = aSvgImage.replaceAll("[SIGNED_BY]", getCDataString(aIssuerLine)); if (bValid) aSvgImage = aSvgImage.replaceAll("[INVALID_SIGNATURE]", ""); diff --git a/include/comphelper/xmlsechelper.hxx b/include/comphelper/xmlsechelper.hxx index ba702fa683c6..5bf3add901f1 100644 --- a/include/comphelper/xmlsechelper.hxx +++ b/include/comphelper/xmlsechelper.hxx @@ -36,7 +36,8 @@ COMPHELPER_DLLPUBLIC OUString GetCertificateKind(const css::security::Certificat COMPHELPER_DLLPUBLIC std::vector<std::pair<OUString, OUString>> parseDN(const OUString& rRawString); COMPHELPER_DLLPUBLIC std::pair<OUString, OUString> GetDNForCertDetailsView(const OUString& rRawString); -COMPHELPER_DLLPUBLIC OUString GetContentPart(const OUString& _rRawString); +COMPHELPER_DLLPUBLIC OUString GetContentPart(const OUString& _rRawString, + const css::security::CertificateKind& rKind); COMPHELPER_DLLPUBLIC OUString GetHexString(const css::uno::Sequence<sal_Int8>& _rSeq, const char* _pSep, sal_uInt16 _nLineBreak = 0xFFFF); diff --git a/sfx2/source/dialog/dinfdlg.cxx b/sfx2/source/dialog/dinfdlg.cxx index 85d46610b73a..af3459680517 100644 --- a/sfx2/source/dialog/dinfdlg.cxx +++ b/sfx2/source/dialog/dinfdlg.cxx @@ -818,7 +818,7 @@ void SfxDocumentPage::ImplUpdateSignatures() { const security::DocumentSignatureInformation& rInfo = aInfos[ 0 ]; s = utl::GetDateTimeString( rInfo.SignatureDate, rInfo.SignatureTime ) + ", " + - comphelper::xmlsec::GetContentPart(rInfo.Signer->getSubjectName()); + comphelper::xmlsec::GetContentPart(rInfo.Signer->getSubjectName(), rInfo.Signer->getCertificateKind()); } m_xSignedValFt->set_label(s); } diff --git a/xmlsecurity/source/dialogs/certificatechooser.cxx b/xmlsecurity/source/dialogs/certificatechooser.cxx index 4345bb24cdbf..929915fdbc3a 100644 --- a/xmlsecurity/source/dialogs/certificatechooser.cxx +++ b/xmlsecurity/source/dialogs/certificatechooser.cxx @@ -206,11 +206,11 @@ void CertificateChooser::ImplInitialize() userData->xSecurityEnvironment = secEnvironment; mvUserData.push_back(userData); - OUString sIssuer = xmlsec::GetContentPart( xCert->getIssuerName() ); + OUString sIssuer = xmlsec::GetContentPart( xCert->getIssuerName(), xCert->getCertificateKind()); m_xCertLB->append(); int nRow = m_xCertLB->n_children() - 1; - m_xCertLB->set_text(nRow, xmlsec::GetContentPart(xCert->getSubjectName()), 0); + m_xCertLB->set_text(nRow, xmlsec::GetContentPart(xCert->getSubjectName(), xCert->getCertificateKind()), 0); m_xCertLB->set_text(nRow, sIssuer, 1); m_xCertLB->set_text(nRow, xmlsec::GetCertificateKind(xCert->getCertificateKind()), 2); m_xCertLB->set_text(nRow, utl::GetDateString(xCert->getNotValidAfter()), 3); diff --git a/xmlsecurity/source/dialogs/certificateviewer.cxx b/xmlsecurity/source/dialogs/certificateviewer.cxx index cb7ce254dd7e..3807300e7b49 100644 --- a/xmlsecurity/source/dialogs/certificateviewer.cxx +++ b/xmlsecurity/source/dialogs/certificateviewer.cxx @@ -106,12 +106,12 @@ CertificateViewerGeneralTP::CertificateViewerGeneralTP(weld::Container* pParent, // insert data css::uno::Reference< css::security::XCertificate > xCert = mpDlg->mxCert; - OUString sSubjectName(xmlsec::GetContentPart(xCert->getSubjectName())); + OUString sSubjectName(xmlsec::GetContentPart(xCert->getSubjectName(), xCert->getCertificateKind())); if (!sSubjectName.isEmpty()) m_xIssuedToFT->set_label(sSubjectName); else m_xIssuedToLabelFT->hide(); - OUString sIssuerName(xmlsec::GetContentPart(xCert->getIssuerName())); + OUString sIssuerName(xmlsec::GetContentPart(xCert->getIssuerName(), xCert->getCertificateKind())); if (!sIssuerName.isEmpty()) m_xIssuedByFT->set_label(sIssuerName); else @@ -282,7 +282,7 @@ void CertificateViewerCertPathTP::ActivatePage() for (i = nCnt-1; i >= 0; i--) { const Reference< security::XCertificate > rCert = pCertPath[ i ]; - OUString sName = xmlsec::GetContentPart( rCert->getSubjectName() ); + OUString sName = xmlsec::GetContentPart( rCert->getSubjectName(), rCert->getCertificateKind() ); //Verify the certificate sal_Int32 certStatus = mpDlg->mxSecurityEnvironment->verifyCertificate(rCert, Sequence<Reference<css::security::XCertificate> >()); diff --git a/xmlsecurity/source/dialogs/digitalsignaturesdialog.cxx b/xmlsecurity/source/dialogs/digitalsignaturesdialog.cxx index 5c1c7daf2785..d90bd33f9cfa 100644 --- a/xmlsecurity/source/dialogs/digitalsignaturesdialog.cxx +++ b/xmlsecurity/source/dialogs/digitalsignaturesdialog.cxx @@ -568,8 +568,8 @@ void DigitalSignaturesDialog::ImplFillSignaturesBox() bCertValid = false; } - aSubject = xmlsec::GetContentPart( xCert->getSubjectName() ); - aIssuer = xmlsec::GetContentPart( xCert->getIssuerName() ); + aSubject = xmlsec::GetContentPart( xCert->getSubjectName(), xCert->getCertificateKind() ); + aIssuer = xmlsec::GetContentPart( xCert->getIssuerName(), xCert->getCertificateKind() ); } else if (!rInfo.ouGpgCertificate.isEmpty()) { diff --git a/xmlsecurity/source/dialogs/macrosecurity.cxx b/xmlsecurity/source/dialogs/macrosecurity.cxx index 0fbdbcf57323..1596e327dc6f 100644 --- a/xmlsecurity/source/dialogs/macrosecurity.cxx +++ b/xmlsecurity/source/dialogs/macrosecurity.cxx @@ -340,8 +340,8 @@ void MacroSecurityTrustedSourcesTP::FillCertLB(const bool bShowWarnings) { // create from RawData uno::Reference< css::security::XCertificate > xCert = m_pDlg->m_xSecurityEnvironment->createCertificateFromAscii(rEntry[2]); - m_xTrustCertLB->append(OUString::number(nEntry), xmlsec::GetContentPart(xCert->getSubjectName())); - m_xTrustCertLB->set_text(nEntry, xmlsec::GetContentPart(xCert->getIssuerName()), 1); + m_xTrustCertLB->append(OUString::number(nEntry), xmlsec::GetContentPart(xCert->getSubjectName(), xCert->getCertificateKind())); + m_xTrustCertLB->set_text(nEntry, xmlsec::GetContentPart(xCert->getIssuerName(), xCert->getCertificateKind()), 1); m_xTrustCertLB->set_text(nEntry, utl::GetDateTimeString(xCert->getNotValidAfter()), 2); } catch (...) |