This is an automated email from the ASF dual-hosted git repository. ardovm pushed a commit to branch signatures in repository https://gitbox.apache.org/repos/asf/openoffice.git
The following commit(s) were added to refs/heads/signatures by this push: new 79af832 Show an ErrorBox in case of problems while signing 79af832 is described below commit 79af8320519b0f77c5046a27b56b9cf4835e6397 Author: Arrigo Marchiori <ard...@yahoo.it> AuthorDate: Tue Sep 28 22:09:44 2021 +0200 Show an ErrorBox in case of problems while signing --- .../xmlsecurity/inc/xmlsecurity/digitalsignaturesdialog.hxx | 2 ++ main/xmlsecurity/source/dialogs/digitalsignaturesdialog.cxx | 13 ++++++++++--- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/main/xmlsecurity/inc/xmlsecurity/digitalsignaturesdialog.hxx b/main/xmlsecurity/inc/xmlsecurity/digitalsignaturesdialog.hxx index 2657f59..f499215 100644 --- a/main/xmlsecurity/inc/xmlsecurity/digitalsignaturesdialog.hxx +++ b/main/xmlsecurity/inc/xmlsecurity/digitalsignaturesdialog.hxx @@ -92,6 +92,8 @@ private: OKButton maOKBtn; HelpButton maHelpBtn; + /// Localized error message. + ::rtl::OUString m_sInvalidSignaturesMessage; ::rtl::OUString m_sODFVersion; //Signals if the document contains already a document signature. This is only //importent when we are signing macros and if the value is true. diff --git a/main/xmlsecurity/source/dialogs/digitalsignaturesdialog.cxx b/main/xmlsecurity/source/dialogs/digitalsignaturesdialog.cxx index efcea21..1846d6d 100644 --- a/main/xmlsecurity/source/dialogs/digitalsignaturesdialog.cxx +++ b/main/xmlsecurity/source/dialogs/digitalsignaturesdialog.cxx @@ -223,6 +223,7 @@ DigitalSignaturesDialog::DigitalSignaturesDialog( maSigsInvalidImg.SetImage( Image( XMLSEC_RES( IMG_STATE_BROKEN_HC ) ) ); maSigsNotvalidatedImg.SetImage( Image( XMLSEC_RES( IMG_STATE_NOTVALIDATED_HC ) ) ); } + m_sInvalidSignaturesMessage = String(XMLSEC_RES(STR_INVALID_SIGNATURE)); FreeResource(); @@ -726,6 +727,7 @@ void DigitalSignaturesDialog::ImplFillSignaturesBox() //Otherwise the real signature stream is used. void DigitalSignaturesDialog::ImplGetSignatureInformations(bool bUseTempStream) { + bool successful = false; maCurrentSignatureInformations.clear(); maSignatureHelper.StartMission(); @@ -735,11 +737,16 @@ void DigitalSignaturesDialog::ImplGetSignatureInformations(bool bUseTempStream) if ( aStreamHelper.xSignatureStream.is() ) { uno::Reference< io::XInputStream > xInputStream( aStreamHelper.xSignatureStream, uno::UNO_QUERY ); - maSignatureHelper.ReadAndVerifySignature( xInputStream ); + successful = maSignatureHelper.ReadAndVerifySignature( xInputStream ); } maSignatureHelper.EndMission(); - - maCurrentSignatureInformations = maSignatureHelper.GetSignatureInformations(); + if (successful) { + maCurrentSignatureInformations = maSignatureHelper.GetSignatureInformations(); + } else { + // An exception was thrown. Better not trust the signature information. + ErrorBox err(this, WB_OK, m_sInvalidSignaturesMessage); + err.Execute(); + } mbVerifySignatures = false; }