xmlsecurity/source/helper/documentsignaturehelper.cxx |   26 ++++++++++++++++++
 1 file changed, 26 insertions(+)

New commits:
commit 784ff5fdb703f1f7fa1a54cae1ffdb541eb8367b
Author:     Miklos Vajna <vmik...@collabora.com>
AuthorDate: Tue Dec 21 14:06:56 2021 +0100
Commit:     Andras Timar <andras.ti...@collabora.com>
CommitDate: Tue Dec 21 14:09:52 2021 +0100

    xmlsecurity: log the signature we read from the ZIP package
    
    We can already see if a signature verification fails and what is the
    content of the ZIP streams we hash.
    
    Show what is the expected hash as well.
    
    Change-Id: Ibc67b7de0e8d03e06da1b86b6e8a7b2b2e613882
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127229
    Tested-by: Andras Timar <andras.ti...@collabora.com>
    Reviewed-by: Andras Timar <andras.ti...@collabora.com>

diff --git a/xmlsecurity/source/helper/documentsignaturehelper.cxx 
b/xmlsecurity/source/helper/documentsignaturehelper.cxx
index 05c7b0beb205..e222ab70332d 100644
--- a/xmlsecurity/source/helper/documentsignaturehelper.cxx
+++ b/xmlsecurity/source/helper/documentsignaturehelper.cxx
@@ -28,6 +28,7 @@
 #include <com/sun/star/embed/StorageFormats.hpp>
 #include <com/sun/star/embed/ElementModes.hpp>
 #include <com/sun/star/beans/StringPair.hpp>
+#include <com/sun/star/beans/XPropertySet.hpp>
 #include <com/sun/star/xml/sax/XDocumentHandler.hpp>
 
 #include <comphelper/documentconstants.hxx>
@@ -355,6 +356,31 @@ SignatureStreamHelper 
DocumentSignatureHelper::OpenSignatureStream(
                 else
                     aSIGStreamName = 
DocumentSignatureHelper::GetPackageSignatureDefaultStreamName();
 
+#ifdef SAL_LOG_INFO
+                aHelper.xSignatureStream = 
aHelper.xSignatureStorage->openStreamElement( aSIGStreamName, nOpenMode );
+                SAL_INFO("xmlsecurity",
+                         "DocumentSignatureHelper::OpenSignatureStream: stream 
name is '"
+                             << aSIGStreamName << "'");
+                if (aHelper.xSignatureStream.is())
+                {
+                    uno::Reference<io::XInputStream> 
xInputStream(aHelper.xSignatureStream, uno::UNO_QUERY);
+                    sal_Int64 nSize = 0;
+                    uno::Reference<beans::XPropertySet> 
xPropertySet(xInputStream, uno::UNO_QUERY);
+                    xPropertySet->getPropertyValue("Size") >>= nSize;
+                    if (nSize >= 0 || nSize < SAL_MAX_INT32)
+                    {
+                        uno::Sequence<sal_Int8> aData;
+                        xInputStream->readBytes(aData, nSize);
+                        SAL_INFO("xmlsecurity",
+                                 
"DocumentSignatureHelper::OpenSignatureStream: stream content is '"
+                                     << OString(reinterpret_cast<const 
char*>(aData.getArray()),
+                                                aData.getLength())
+                                     << "'");
+                    }
+                }
+                aHelper.xSignatureStream.clear();
+#endif
+
                 aHelper.xSignatureStream = 
aHelper.xSignatureStorage->openStreamElement( aSIGStreamName, nOpenMode );
             }
         }

Reply via email to