LibreOffice Module xmlsecurity (master) 1
xsecctl.hxx
Go to the documentation of this file.
1/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2/*
3 * This file is part of the LibreOffice project.
4 *
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8 *
9 * This file incorporates work covered by the following license notice:
10 *
11 * Licensed to the Apache Software Foundation (ASF) under one or more
12 * contributor license agreements. See the NOTICE file distributed
13 * with this work for additional information regarding copyright
14 * ownership. The ASF licenses this file to you under the Apache
15 * License, Version 2.0 (the "License"); you may not use this file
16 * except in compliance with the License. You may obtain a copy of
17 * the License at http://www.apache.org/licenses/LICENSE-2.0 .
18 */
19
20#pragma once
21
22#include <svl/sigstruct.hxx>
23
24#include <com/sun/star/xml/crypto/sax/XSAXEventKeeperStatusChangeListener.hpp>
25#include <com/sun/star/xml/crypto/sax/XSignatureCreationResultListener.hpp>
26#include <com/sun/star/xml/crypto/sax/XSignatureVerifyResultListener.hpp>
27
28#include <rtl/ref.hxx>
30
31#include <vector>
32
33#include "UriBindingHelper.hxx"
34
35namespace com::sun::star::embed { class XStorage; }
36namespace com::sun::star::graphic { class XGraphic; }
37namespace com::sun::star::io { class XInputStream; }
38namespace com::sun::star::lang { class XInitialization; }
39namespace com::sun::star::uno { class XComponentContext; }
40namespace com::sun::star::xml::crypto { class XXMLSecurityContext; }
41namespace com::sun::star::xml::crypto { class XXMLSignature; }
42namespace com::sun::star::xml::crypto:: sax { class XReferenceResolvedListener; }
43namespace com::sun::star::xml::sax { class XDocumentHandler; }
44
45inline constexpr OUStringLiteral NS_XMLDSIG = u"http://www.w3.org/2000/09/xmldsig#";
46inline constexpr OUStringLiteral NS_DC = u"http://purl.org/dc/elements/1.1/";
47inline constexpr OUStringLiteral NS_XD = u"http://uri.etsi.org/01903/v1.3.2#";
48inline constexpr OUStringLiteral NS_MDSSI = u"http://schemas.openxmlformats.org/package/2006/digital-signature";
49inline constexpr OUStringLiteral NS_LOEXT = u"urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0";
50
51inline constexpr OUStringLiteral ALGO_C14N = u"http://www.w3.org/TR/2001/REC-xml-c14n-20010315";
52inline constexpr OUStringLiteral ALGO_RSASHA1 = u"http://www.w3.org/2000/09/xmldsig#rsa-sha1";
53inline constexpr OUStringLiteral ALGO_RSASHA256 = u"http://www.w3.org/2001/04/xmldsig-more#rsa-sha256";
54inline constexpr OUStringLiteral ALGO_RSASHA512 = u"http://www.w3.org/2001/04/xmldsig-more#rsa-sha512";
55inline constexpr OUStringLiteral ALGO_ECDSASHA1 = u"http://www.w3.org/2001/04/xmldsig-more#ecdsa-sha1";
56inline constexpr OUStringLiteral ALGO_ECDSASHA256 = u"http://www.w3.org/2001/04/xmldsig-more#ecdsa-sha256";
57inline constexpr OUStringLiteral ALGO_ECDSASHA512 = u"http://www.w3.org/2001/04/xmldsig-more#ecdsa-sha512";
58inline constexpr OUStringLiteral ALGO_XMLDSIGSHA1 = u"http://www.w3.org/2000/09/xmldsig#sha1";
59inline constexpr OUStringLiteral ALGO_XMLDSIGSHA256 = u"http://www.w3.org/2001/04/xmlenc#sha256";
60inline constexpr OUStringLiteral ALGO_XMLDSIGSHA512 = u"http://www.w3.org/2001/04/xmlenc#sha512";
61inline constexpr OUStringLiteral ALGO_RELATIONSHIP = u"http://schemas.openxmlformats.org/package/2006/RelationshipTransform";
62
66namespace svl::crypto { enum class SignatureMethodAlgorithm; }
67
69{
70public:
72
73 css::uno::Reference< css::xml::crypto::sax::XReferenceResolvedListener > xReferenceResolvedListener;
74
75 ::std::vector< sal_Int32 > vKeeperIds;
76
78 sal_Int32 nId,
79 css::uno::Reference< css::xml::crypto::sax::XReferenceResolvedListener > const & xListener)
81 {
83 }
84
85 void addReference( SignatureReferenceType type, sal_Int32 digestID, const OUString& uri, sal_Int32 keeperId, const OUString& rType )
86 {
88 SignatureReferenceInformation(type, digestID, uri, rType));
89 vKeeperIds.push_back( keeperId );
90 }
91};
92
93class XSecController final : public cppu::WeakImplHelper
94<
95 css::xml::crypto::sax::XSAXEventKeeperStatusChangeListener,
96 css::xml::crypto::sax::XSignatureCreationResultListener,
97 css::xml::crypto::sax::XSignatureVerifyResultListener
98>
99/****** XSecController.hxx/CLASS XSecController *******************************
100 *
101 * NAME
102 * XSecController -- the xml security framework controller
103 *
104 * FUNCTION
105 * Controls the whole xml security framework to create signatures or to
106 * verify signatures.
107 *
108 ******************************************************************************/
109{
110 friend class XSecParser;
111 friend class OOXMLSecParser;
112
113private:
114 css::uno::Reference< css::uno::XComponentContext> mxCtx;
115
116 /*
117 * used to buffer SAX events
118 */
120
121 /*
122 * the SAX events keeper
123 */
125
126 /*
127 * the bridge component which creates/verifies signature
128 */
129 css::uno::Reference< css::xml::crypto::XXMLSignature > m_xXMLSignature;
130
131 /*
132 * the Security Context
133 */
134 css::uno::Reference< css::xml::crypto::XXMLSecurityContext > m_xSecurityContext;
135
136 /*
137 * the security id incrementer, in order to make any security id unique
138 * to the SAXEventKeeper.
139 * Because each XSecController has its own SAXEventKeeper, so this variable
140 * is not necessary to be static.
141 */
143
144 /*
145 * Signature information
146 */
147 std::vector< InternalSignatureInformation > m_vInternalSignatureInformations;
148
149 /*
150 * the previous node on the SAX chain.
151 * The reason that use a Reference<XInterface> type variable
152 * is that the previous components are different when exporting
153 * and importing, and there is no other common interface they
154 * can provided.
155 */
156 css::uno::Reference< css::uno::XInterface > m_xPreviousNodeOnSAXChain;
157 /*
158 * whether the previous node can provide an XInitialize interface,
159 * use this variable in order to typecast the XInterface to the
160 * correct interface type.
161 */
163
164 /*
165 * a flag representing whether the SAXEventKeeper is now on the
166 * SAX chain.
167 */
169
170 /*
171 * a flag representing whether it is collecting some element,
172 * which means that the SAXEventKeeper can't be chained off the
173 * SAX chain.
174 */
176
177 /*
178 * a flag representing whether the SAX event stream is blocking,
179 * which also means that the SAXEventKeeper can't be chained off
180 * the SAX chain.
181 */
183
184 /*
185 * a flag representing the current status of security related
186 * components.
187 */
188
189 /*
190 * status of security related components
191 */
192 enum class InitializationState { UNINITIALIZED, INITIALIZED, FAILTOINITIALIZED } m_eStatusOfSecurityComponents;
193
194 /*
195 * a flag representing whether the SAXEventKeeper need to be
196 * on the SAX chain all the time.
197 * This flag is used to the situation when creating signature.
198 */
200
201 /*
202 * the XSecParser which is used to parse the signature stream
203 */
204 css::uno::Reference<css::xml::sax::XDocumentHandler> m_xSecParser;
205
206 /*
207 * the caller assigned signature id for the next signature in the
208 * signature stream
209 */
211
212 /*
213 * representing whether to verify the current signature
214 */
216
217 /*
218 * An xUriBinding is provided to map Uris to XInputStream interfaces.
219 */
221
222private:
223
224 /*
225 * Common methods
226 */
227 void createXSecComponent( );
228 int findSignatureInfor( sal_Int32 nSecurityId ) const;
229 bool chainOn();
230 void chainOff();
231 void checkChainingStatus();
232 void initializeSAXChain();
233
234 css::uno::Reference< css::io::XInputStream > getObjectInputStream( const OUString& objectURL );
235
236 //sal_Int32 getFastPropertyIndex(sal_Int32 nHandle) const;
237
238 /*
239 * For signature generation
240 */
241 static OUString createId();
242 css::uno::Reference< css::xml::crypto::sax::XReferenceResolvedListener > prepareSignatureToWrite(
243 InternalSignatureInformation& signatureInfo,
244 sal_Int32 nStorageFormat,
245 bool bXAdESCompliantIfODF );
246
247 /*
248 * For signature verification
249 */
250 void addSignature();
253 void switchGpgSignature();
254 bool haveReferenceForId(std::u16string_view rId) const;
255 void addReference(
256 const OUString& ouUri,
257 sal_Int32 nDigestID,
258 const OUString& ouType );
260 const OUString& ouUri,
261 bool isBinary,
262 sal_Int32 nDigestID );
263 void setReferenceCount() const;
264
265 void setX509Data(
266 std::vector<std::pair<OUString, OUString>> & rX509IssuerSerials,
267 std::vector<OUString> const& rX509Certificates);
269 OUString const& rCertDigest, sal_Int32 const nReferenceDigestID,
270 std::u16string_view const& rX509IssuerName, std::u16string_view const& rX509SerialNumber);
271
272 void setSignatureValue( OUString const & ouSignatureValue );
273 void setDigestValue( sal_Int32 nDigestID, OUString const & ouDigestValue );
274 void setGpgKeyID( OUString const & ouKeyID );
275 void setGpgCertificate( OUString const & ouGpgCert );
276 void setGpgOwner( OUString const & ouGpgOwner );
277
278 void setDate(OUString const& rId, OUString const& ouDate);
279 void setDescription(OUString const& rId, OUString const& rDescription);
280 void setValidSignatureImage(std::u16string_view rValidSigImg);
281 void setInvalidSignatureImage(std::u16string_view rInvalidSigImg);
282 void setSignatureLineId(const OUString& rSignatureLineId);
283
284public:
285 void setSignatureBytes(const css::uno::Sequence<sal_Int8>& rBytes);
286
287private:
288 void setId( OUString const & ouId );
289
290 css::uno::Reference< css::xml::crypto::sax::XReferenceResolvedListener > prepareSignatureToRead(
291 sal_Int32 nSecurityId );
292
293public:
294 explicit XSecController(css::uno::Reference<css::uno::XComponentContext> xCtx);
295 virtual ~XSecController() override;
296
297 sal_Int32 getNewSecurityId( );
298
299 void startMission(const rtl::Reference<UriBindingHelper>& xUriBinding, const css::uno::Reference<css::xml::crypto::XXMLSecurityContext>& xSecurityContext);
300
301 void setSAXChainConnector(const css::uno::Reference< css::lang::XInitialization >& xInitialization);
302
304 void endMission();
305
306 SignatureInformation getSignatureInformation( sal_Int32 nSecurityId ) const;
309 void UpdateSignatureInformation(sal_Int32 nSecurityId,
310 std::vector<SignatureInformation::X509Data> && rDatas);
311
312 static void exportSignature(
313 const css::uno::Reference< css::xml::sax::XDocumentHandler >& xDocumentHandler,
314 const SignatureInformation& signatureInfo,
315 bool bXAdESCompliantIfODF );
316
317
318 /*
319 * For signature generation
320 */
321 void signAStream( sal_Int32 securityId, const OUString& uri, bool isBinary, bool bXAdESCompliantIfODF);
322
323
343 sal_Int32 nSecurityId,
344 const OUString& ouX509IssuerName,
345 const OUString& ouX509SerialNumber,
346 const OUString& ouX509Cert,
347 const OUString& ouX509CertDigest,
349
350 void addEncapsulatedX509Certificate(const OUString& rEncapsulatedX509Certificate);
351
353 sal_Int32 nSecurityId,
354 const OUString& ouCertDigest,
355 const OUString& ouCert,
356 const OUString& ouOwner);
357
358 void setDate(
359 sal_Int32 nSecurityId,
360 const css::util::DateTime& rDateTime );
361 void setDescription(sal_Int32 nSecurityId, const OUString& rDescription);
362 void setSignatureLineId(sal_Int32 nSecurityId, const OUString& rSignatureLineId);
363 void
364 setSignatureLineValidGraphic(sal_Int32 nSecurityId,
365 const css::uno::Reference<css::graphic::XGraphic>& xValidGraphic);
367 sal_Int32 nSecurityId, const css::uno::Reference<css::graphic::XGraphic>& xInvalidGraphic);
368
369 bool WriteSignature(
370 const css::uno::Reference< css::xml::sax::XDocumentHandler >& xDocumentHandler,
371 bool bXAdESCompliantIfODF);
372
373 /*
374 * For signature verification
375 */
376 void collectToVerify( std::u16string_view referenceId );
377 void addSignature( sal_Int32 nSignatureId );
378 css::uno::Reference< css::xml::sax::XDocumentHandler > const & createSignatureReader(XMLSignatureHelper& rXMLSignatureHelper, sal_Int32 nType = 0);
380
381public:
382 /* Interface methods */
383
384 /*
385 * XSAXEventKeeperStatusChangeListener
386 */
387 virtual void SAL_CALL blockingStatusChanged( sal_Bool isBlocking ) override;
388 virtual void SAL_CALL collectionStatusChanged(
389 sal_Bool isInsideCollectedElement ) override;
390 virtual void SAL_CALL bufferStatusChanged( sal_Bool isBufferEmpty ) override;
391
392 /*
393 * XSignatureCreationResultListener
394 */
395 virtual void SAL_CALL signatureCreated( sal_Int32 securityId, css::xml::crypto::SecurityOperationStatus nResult ) override;
396
397 /*
398 * XSignatureVerifyResultListener
399 */
400 virtual void SAL_CALL signatureVerified( sal_Int32 securityId, css::xml::crypto::SecurityOperationStatus nResult ) override;
401
403 bool WriteOOXMLSignature(const css::uno::Reference<css::embed::XStorage>& xRootStorage, const css::uno::Reference<css::xml::sax::XDocumentHandler>& xDocumentHandler);
405 void exportOOXMLSignature(const css::uno::Reference<css::embed::XStorage>& xRootStorage, const css::uno::Reference<css::xml::sax::XDocumentHandler>& xDocumentHandler, const SignatureInformation& rInformation);
406};
407
408/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
InternalSignatureInformation(sal_Int32 nId, css::uno::Reference< css::xml::crypto::sax::XReferenceResolvedListener > const &xListener)
Definition: xsecctl.hxx:77
SignatureInformation signatureInfor
Definition: xsecctl.hxx:71
void addReference(SignatureReferenceType type, sal_Int32 digestID, const OUString &uri, sal_Int32 keeperId, const OUString &rType)
Definition: xsecctl.hxx:85
css::uno::Reference< css::xml::crypto::sax::XReferenceResolvedListener > xReferenceResolvedListener
Definition: xsecctl.hxx:73
::std::vector< sal_Int32 > vKeeperIds
Definition: xsecctl.hxx:75
Parses an OOXML digital signature.
NAME XMLDocumentWrapper_XmlSecImpl – Class to manipulate a libxml2 document.
bool m_bIsSAXEventKeeperSticky
Definition: xsecctl.hxx:199
rtl::Reference< SAXEventKeeperImpl > m_xSAXEventKeeper
Definition: xsecctl.hxx:124
bool WriteOOXMLSignature(const css::uno::Reference< css::embed::XStorage > &xRootStorage, const css::uno::Reference< css::xml::sax::XDocumentHandler > &xDocumentHandler)
Writes XML elements inside a single OOXML signature's <Signature> element.
Definition: xsecsign.cxx:419
enum XSecController::InitializationState m_eStatusOfSecurityComponents
static OUString createId()
Definition: xsecsign.cxx:38
void setX509Certificate(sal_Int32 nSecurityId, const OUString &ouX509IssuerName, const OUString &ouX509SerialNumber, const OUString &ouX509Cert, const OUString &ouX509CertDigest, svl::crypto::SignatureMethodAlgorithm eAlgorithmID)
sets data that describes the certificate.
Definition: xsecsign.cxx:204
void setSignatureLineInvalidGraphic(sal_Int32 nSecurityId, const css::uno::Reference< css::graphic::XGraphic > &xInvalidGraphic)
Definition: xsecsign.cxx:341
virtual void SAL_CALL collectionStatusChanged(sal_Bool isInsideCollectedElement) override
Definition: xsecctl.cxx:971
css::uno::Reference< css::xml::crypto::sax::XReferenceResolvedListener > prepareSignatureToRead(sal_Int32 nSecurityId)
Definition: xsecverify.cxx:53
css::uno::Reference< css::uno::XInterface > m_xPreviousNodeOnSAXChain
Definition: xsecctl.hxx:156
css::uno::Reference< css::xml::crypto::XXMLSecurityContext > m_xSecurityContext
Definition: xsecctl.hxx:134
bool haveReferenceForId(std::u16string_view rId) const
Definition: xsecverify.cxx:150
css::uno::Reference< css::xml::crypto::XXMLSignature > m_xXMLSignature
Definition: xsecctl.hxx:129
bool m_bIsCollectingElement
Definition: xsecctl.hxx:175
css::uno::Reference< css::uno::XComponentContext > mxCtx
Definition: xsecctl.hxx:114
std::vector< InternalSignatureInformation > m_vInternalSignatureInformations
Definition: xsecctl.hxx:147
void signAStream(sal_Int32 securityId, const OUString &uri, bool isBinary, bool bXAdESCompliantIfODF)
Definition: xsecsign.cxx:181
void createXSecComponent()
Definition: xsecctl.cxx:156
void setGpgCertificate(OUString const &ouGpgCert)
Definition: xsecverify.cxx:346
void setDescription(OUString const &rId, OUString const &rDescription)
Definition: xsecverify.cxx:390
void setDigestValue(sal_Int32 nDigestID, OUString const &ouDigestValue)
Definition: xsecverify.cxx:316
void setGpgKeyID(OUString const &ouKeyID)
Definition: xsecverify.cxx:335
void setSignatureBytes(const css::uno::Sequence< sal_Int8 > &rBytes)
Definition: xsecverify.cxx:403
void clearSAXChainConnector()
Definition: xsecctl.cxx:474
bool WriteSignature(const css::uno::Reference< css::xml::sax::XDocumentHandler > &xDocumentHandler, bool bXAdESCompliantIfODF)
Definition: xsecsign.cxx:360
void endMission()
Definition: xsecctl.cxx:486
bool m_bIsPreviousNodeInitializable
Definition: xsecctl.hxx:162
void switchGpgSignature()
Definition: xsecverify.cxx:127
virtual void SAL_CALL blockingStatusChanged(sal_Bool isBlocking) override
Definition: xsecctl.cxx:965
void exportOOXMLSignature(const css::uno::Reference< css::embed::XStorage > &xRootStorage, const css::uno::Reference< css::xml::sax::XDocumentHandler > &xDocumentHandler, const SignatureInformation &rInformation)
Exports an OOXML signature, called by WriteOOXMLSignature().
Definition: xsecctl.cxx:921
virtual void SAL_CALL signatureVerified(sal_Int32 securityId, css::xml::crypto::SecurityOperationStatus nResult) override
Definition: xsecctl.cxx:997
virtual void SAL_CALL bufferStatusChanged(sal_Bool isBufferEmpty) override
Definition: xsecctl.cxx:978
SignatureInformation getSignatureInformation(sal_Int32 nSecurityId) const
Definition: xsecctl.cxx:935
css::uno::Reference< css::xml::sax::XDocumentHandler > const & createSignatureReader(XMLSignatureHelper &rXMLSignatureHelper, sal_Int32 nType=0)
Definition: xsecverify.cxx:611
bool chainOn()
Definition: xsecctl.cxx:218
void setId(OUString const &ouId)
Definition: xsecverify.cxx:535
bool m_bVerifyCurrentSignature
Definition: xsecctl.hxx:215
void setSignatureMethod(svl::crypto::SignatureMethodAlgorithm eAlgorithmID)
Sets algorithm from <SignatureMethod Algorithm="...">.
Definition: xsecverify.cxx:119
void checkChainingStatus()
Definition: xsecctl.cxx:344
sal_Int32 m_nReservedSignatureId
Definition: xsecctl.hxx:210
virtual void SAL_CALL signatureCreated(sal_Int32 securityId, css::xml::crypto::SecurityOperationStatus nResult) override
Definition: xsecctl.cxx:986
void setX509CertDigest(OUString const &rCertDigest, sal_Int32 const nReferenceDigestID, std::u16string_view const &rX509IssuerName, std::u16string_view const &rX509SerialNumber)
Definition: xsecverify.cxx:412
void startMission(const rtl::Reference< UriBindingHelper > &xUriBinding, const css::uno::Reference< css::xml::crypto::XXMLSecurityContext > &xSecurityContext)
Definition: xsecctl.cxx:428
static void exportSignature(const css::uno::Reference< css::xml::sax::XDocumentHandler > &xDocumentHandler, const SignatureInformation &signatureInfo, bool bXAdESCompliantIfODF)
Definition: xsecctl.cxx:564
css::uno::Reference< css::xml::sax::XDocumentHandler > m_xSecParser
Definition: xsecctl.hxx:204
bool m_bIsBlocking
Definition: xsecctl.hxx:182
void addSignature()
Definition: xsecverify.cxx:101
void setSAXChainConnector(const css::uno::Reference< css::lang::XInitialization > &xInitialization)
Definition: xsecctl.cxx:454
void setSignatureValue(OUString const &ouSignatureValue)
Definition: xsecverify.cxx:305
void setInvalidSignatureImage(std::u16string_view rInvalidSigImg)
Definition: xsecverify.cxx:505
void UpdateSignatureInformation(sal_Int32 nSecurityId, std::vector< SignatureInformation::X509Data > &&rDatas)
only verify can figure out which X509Data is the signing certificate
Definition: xsecctl.cxx:927
void chainOff()
Definition: xsecctl.cxx:308
void collectToVerify(std::u16string_view referenceId)
Definition: xsecverify.cxx:547
void setGpgOwner(OUString const &ouGpgOwner)
Definition: xsecverify.cxx:357
sal_Int32 getNewSecurityId()
Definition: xsecctl.cxx:421
void addStreamReference(const OUString &ouUri, bool isBinary, sal_Int32 nDigestID)
Definition: xsecverify.cxx:180
void setDate(OUString const &rId, OUString const &ouDate)
Definition: xsecverify.cxx:368
XSecController(css::uno::Reference< css::uno::XComponentContext > xCtx)
Definition: xsecctl.cxx:102
void setX509Data(std::vector< std::pair< OUString, OUString > > &rX509IssuerSerials, std::vector< OUString > const &rX509Certificates)
Definition: xsecverify.cxx:247
bool m_bIsSAXEventKeeperConnected
Definition: xsecctl.hxx:168
void setValidSignatureImage(std::u16string_view rValidSigImg)
Definition: xsecverify.cxx:496
virtual ~XSecController() override
Definition: xsecctl.cxx:116
void setSignatureLineValidGraphic(sal_Int32 nSecurityId, const css::uno::Reference< css::graphic::XGraphic > &xValidGraphic)
Definition: xsecsign.cxx:322
rtl::Reference< XMLDocumentWrapper_XmlSecImpl > m_xXMLDocumentWrapper
Definition: xsecctl.hxx:119
css::uno::Reference< css::xml::crypto::sax::XReferenceResolvedListener > prepareSignatureToWrite(InternalSignatureInformation &signatureInfo, sal_Int32 nStorageFormat, bool bXAdESCompliantIfODF)
Definition: xsecsign.cxx:55
void addReference(const OUString &ouUri, sal_Int32 nDigestID, const OUString &ouType)
Definition: xsecverify.cxx:169
rtl::Reference< UriBindingHelper > m_xUriBinding
Definition: xsecctl.hxx:220
css::uno::Reference< css::io::XInputStream > getObjectInputStream(const OUString &objectURL)
Definition: xsecctl.cxx:392
void setReferenceCount() const
Definition: xsecverify.cxx:213
void addEncapsulatedX509Certificate(const OUString &rEncapsulatedX509Certificate)
Definition: xsecverify.cxx:523
int findSignatureInfor(sal_Int32 nSecurityId) const
Definition: xsecctl.cxx:124
void initializeSAXChain()
Definition: xsecctl.cxx:371
SignatureInformations getSignatureInformations() const
Definition: xsecctl.cxx:947
sal_Int32 m_nNextSecurityId
Definition: xsecctl.hxx:142
void setSignatureLineId(const OUString &rSignatureLineId)
Definition: xsecverify.cxx:514
void releaseSignatureReader()
Definition: xsecverify.cxx:624
float u
sal_Int16 nId
::std::vector< SignatureInformation > SignatureInformations
SignatureReferenceType
SignatureReferenceInformations vSignatureReferenceInfors
unsigned char sal_Bool
ResultType type
constexpr OUStringLiteral ALGO_XMLDSIGSHA512
Definition: xsecctl.hxx:60
constexpr OUStringLiteral NS_XMLDSIG
Definition: xsecctl.hxx:45
constexpr OUStringLiteral ALGO_RSASHA1
Definition: xsecctl.hxx:52
constexpr OUStringLiteral NS_XD
Definition: xsecctl.hxx:47
constexpr OUStringLiteral NS_MDSSI
Definition: xsecctl.hxx:48
constexpr OUStringLiteral ALGO_XMLDSIGSHA256
Definition: xsecctl.hxx:59
constexpr OUStringLiteral ALGO_RELATIONSHIP
Definition: xsecctl.hxx:61
constexpr OUStringLiteral ALGO_ECDSASHA512
Definition: xsecctl.hxx:57
constexpr OUStringLiteral NS_LOEXT
Definition: xsecctl.hxx:49
constexpr OUStringLiteral NS_DC
Definition: xsecctl.hxx:46
constexpr OUStringLiteral ALGO_RSASHA256
Definition: xsecctl.hxx:53
constexpr OUStringLiteral ALGO_ECDSASHA1
Definition: xsecctl.hxx:55
constexpr OUStringLiteral ALGO_C14N
Definition: xsecctl.hxx:51
constexpr OUStringLiteral ALGO_XMLDSIGSHA1
Definition: xsecctl.hxx:58
constexpr OUStringLiteral ALGO_ECDSASHA256
Definition: xsecctl.hxx:56
constexpr OUStringLiteral ALGO_RSASHA512
Definition: xsecctl.hxx:54