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;
 }

Reply via email to