LibreOffice Module xmlsecurity (master)
1
xmlsecurity
source
helper
xsecparser.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 <com/sun/star/lang/XInitialization.hpp>
23
#include <com/sun/star/xml/sax/XDocumentHandler.hpp>
24
25
#include <
cppuhelper/implbase.hxx
>
26
27
#include <
xmloff/namespacemap.hxx
>
28
29
#include <memory>
30
#include <optional>
31
#include <stack>
32
33
class
XMLSignatureHelper
;
34
class
XSecController
;
35
36
class
XSecParser
:
public
cppu::WeakImplHelper
37
<
38
css::xml::sax::XDocumentHandler,
39
css::lang::XInitialization
40
>
41
/****** XSecController.hxx/CLASS XSecParser ***********************************
42
*
43
* NAME
44
* XSecParser -- a SAX parser that can detect security elements
45
*
46
* FUNCTION
47
* The XSecParser object is connected on the SAX chain and detects
48
* security elements in the SAX event stream, then notifies
49
* the XSecController.
50
*
51
* NOTES
52
* This class is used when importing a document.
53
******************************************************************************/
54
{
55
friend
class
XSecController
;
56
public
:
57
class
Context
;
58
private
:
59
class
UnknownContext
;
60
class
ReferencedContextImpl
;
61
class
LoPGPOwnerContext
;
62
class
DsPGPKeyPacketContext
;
63
class
DsPGPKeyIDContext
;
64
class
DsPGPDataContext
;
65
class
DsX509CertificateContext
;
66
class
DsX509SerialNumberContext
;
67
class
DsX509IssuerNameContext
;
68
class
DsX509IssuerSerialContext
;
69
class
DsX509DataContext
;
70
class
DsKeyInfoContext
;
71
class
DsSignatureValueContext
;
72
class
DsDigestValueContext
;
73
class
DsDigestMethodContext
;
74
class
DsTransformContext
;
75
class
DsTransformsContext
;
76
class
DsReferenceContext
;
77
class
DsSignatureMethodContext
;
78
class
DsSignedInfoContext
;
79
class
XadesEncapsulatedX509CertificateContext
;
80
class
XadesCertificateValuesContext
;
81
class
XadesUnsignedSignaturePropertiesContext
;
82
class
XadesUnsignedPropertiesContext
;
83
class
LoSignatureLineIdContext
;
84
class
LoSignatureLineValidImageContext
;
85
class
LoSignatureLineInvalidImageContext
;
86
class
LoSignatureLineContext
;
87
class
XadesCertDigestContext
;
88
class
XadesCertContext
;
89
class
XadesSigningCertificateContext
;
90
class
XadesSigningTimeContext
;
91
class
XadesSignedSignaturePropertiesContext
;
92
class
XadesSignedPropertiesContext
;
93
class
XadesQualifyingPropertiesContext
;
94
class
DcDateContext
;
95
class
DcDescriptionContext
;
96
class
DsSignaturePropertyContext
;
97
class
DsSignaturePropertiesContext
;
98
class
DsObjectContext
;
99
class
DsSignatureContext
;
100
class
DsigSignaturesContext
;
101
102
std::stack<std::unique_ptr<Context>>
m_ContextStack
;
103
std::optional<SvXMLNamespaceMap>
m_pNamespaceMap
;
104
105
/*
106
* the XSecController collaborating with XSecParser
107
*/
108
XSecController
*
m_pXSecController
;
109
110
/*
111
* the next XDocumentHandler on the SAX chain
112
*/
113
css::uno::Reference<
114
css::xml::sax::XDocumentHandler >
m_xNextHandler
;
115
116
XMLSignatureHelper
&
m_rXMLSignatureHelper
;
117
118
OUString
HandleIdAttr
(css::uno::Reference<css::xml::sax::XAttributeList>
const
& xAttrs);
119
static
OUString
getIdAttr
(
const
css::uno::Reference<
120
css::xml::sax::XAttributeList >& xAttribs );
121
122
public
:
123
XSecParser
(
XMLSignatureHelper
& rXMLSignatureHelper,
XSecController
* pXSecController);
124
125
/*
126
* XDocumentHandler
127
*/
128
virtual
void
SAL_CALL
startDocument
( )
override
;
129
130
virtual
void
SAL_CALL
endDocument
( )
override
;
131
132
virtual
void
SAL_CALL
startElement
(
133
const
OUString& aName,
134
const
css::uno::Reference<
135
css::xml::sax::XAttributeList >& xAttribs )
override
;
136
137
virtual
void
SAL_CALL
endElement
(
const
OUString& aName )
override
;
138
139
virtual
void
SAL_CALL
characters
(
const
OUString& aChars )
override
;
140
141
virtual
void
SAL_CALL
ignorableWhitespace
(
const
OUString& aWhitespaces )
override
;
142
143
virtual
void
SAL_CALL
processingInstruction
(
144
const
OUString& aTarget,
145
const
OUString& aData )
override
;
146
147
virtual
void
SAL_CALL
setDocumentLocator
(
148
const
css::uno::Reference<
149
css::xml::sax::XLocator >& xLocator )
override
;
150
151
/*
152
* XInitialization
153
*/
154
virtual
void
SAL_CALL
initialize
(
155
const
css::uno::Sequence< css::uno::Any >& aArguments )
override
;
156
};
157
158
159
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
XMLSignatureHelper
Definition:
xmlsignaturehelper.hxx:64
XSecController
Definition:
xsecctl.hxx:109
XSecParser::Context
Definition:
xsecparser.cxx:34
XSecParser::DcDateContext
Definition:
xsecparser.cxx:1201
XSecParser::DcDescriptionContext
Definition:
xsecparser.cxx:1222
XSecParser::DsDigestMethodContext
Definition:
xsecparser.cxx:476
XSecParser::DsDigestValueContext
Definition:
xsecparser.cxx:449
XSecParser::DsKeyInfoContext
Definition:
xsecparser.cxx:383
XSecParser::DsObjectContext
Definition:
xsecparser.cxx:1336
XSecParser::DsPGPDataContext
Definition:
xsecparser.cxx:209
XSecParser::DsPGPKeyIDContext
Definition:
xsecparser.cxx:185
XSecParser::DsPGPKeyPacketContext
Definition:
xsecparser.cxx:161
XSecParser::DsReferenceContext
Definition:
xsecparser.cxx:572
XSecParser::DsSignatureContext
Definition:
xsecparser.cxx:1370
XSecParser::DsSignatureMethodContext
Definition:
xsecparser.cxx:649
XSecParser::DsSignaturePropertiesContext
Definition:
xsecparser.cxx:1307
XSecParser::DsSignaturePropertyContext
Definition:
xsecparser.cxx:1243
XSecParser::DsSignatureValueContext
Definition:
xsecparser.cxx:419
XSecParser::DsSignedInfoContext
Definition:
xsecparser.cxx:671
XSecParser::DsTransformContext
Definition:
xsecparser.cxx:515
XSecParser::DsTransformsContext
Definition:
xsecparser.cxx:545
XSecParser::DsX509CertificateContext
Definition:
xsecparser.cxx:245
XSecParser::DsX509DataContext
can't be sure what is supposed to happen here because the spec is clear as mud
Definition:
xsecparser.cxx:343
XSecParser::DsX509IssuerNameContext
Definition:
xsecparser.cxx:287
XSecParser::DsX509IssuerSerialContext
Definition:
xsecparser.cxx:308
XSecParser::DsX509SerialNumberContext
Definition:
xsecparser.cxx:266
XSecParser::DsigSignaturesContext
Definition:
xsecparser.cxx:1416
XSecParser::LoPGPOwnerContext
Definition:
xsecparser.cxx:137
XSecParser::LoSignatureLineContext
Definition:
xsecparser.cxx:936
XSecParser::LoSignatureLineIdContext
Definition:
xsecparser.cxx:840
XSecParser::LoSignatureLineInvalidImageContext
Definition:
xsecparser.cxx:904
XSecParser::LoSignatureLineValidImageContext
Definition:
xsecparser.cxx:872
XSecParser::ReferencedContextImpl
note: anything in ds:Object should be trusted only if there is a ds:Reference to it so it is signed (...
Definition:
xsecparser.cxx:111
XSecParser::UnknownContext
Definition:
xsecparser.cxx:75
XSecParser::XadesCertContext
Definition:
xsecparser.cxx:1000
XSecParser::XadesCertDigestContext
Definition:
xsecparser.cxx:967
XSecParser::XadesCertificateValuesContext
Definition:
xsecparser.cxx:739
XSecParser::XadesEncapsulatedX509CertificateContext
Definition:
xsecparser.cxx:709
XSecParser::XadesQualifyingPropertiesContext
Definition:
xsecparser.cxx:1168
XSecParser::XadesSignedPropertiesContext
Definition:
xsecparser.cxx:1138
XSecParser::XadesSignedSignaturePropertiesContext
Definition:
xsecparser.cxx:1100
XSecParser::XadesSigningCertificateContext
Definition:
xsecparser.cxx:1045
XSecParser::XadesSigningTimeContext
Definition:
xsecparser.cxx:1068
XSecParser::XadesUnsignedPropertiesContext
Definition:
xsecparser.cxx:811
XSecParser::XadesUnsignedSignaturePropertiesContext
Definition:
xsecparser.cxx:768
XSecParser
Definition:
xsecparser.hxx:54
XSecParser::m_rXMLSignatureHelper
XMLSignatureHelper & m_rXMLSignatureHelper
Definition:
xsecparser.hxx:116
XSecParser::getIdAttr
static OUString getIdAttr(const css::uno::Reference< css::xml::sax::XAttributeList > &xAttribs)
Definition:
xsecparser.cxx:1465
XSecParser::XSecParser
XSecParser(XMLSignatureHelper &rXMLSignatureHelper, XSecController *pXSecController)
Definition:
xsecparser.cxx:1437
XSecParser::HandleIdAttr
OUString HandleIdAttr(css::uno::Reference< css::xml::sax::XAttributeList > const &xAttrs)
Definition:
xsecparser.cxx:1455
XSecParser::startDocument
virtual void SAL_CALL startDocument() override
Definition:
xsecparser.cxx:1480
XSecParser::endDocument
virtual void SAL_CALL endDocument() override
Definition:
xsecparser.cxx:1488
XSecParser::m_pXSecController
XSecController * m_pXSecController
Definition:
xsecparser.hxx:108
XSecParser::processingInstruction
virtual void SAL_CALL processingInstruction(const OUString &aTarget, const OUString &aData) override
Definition:
xsecparser.cxx:1607
XSecParser::initialize
virtual void SAL_CALL initialize(const css::uno::Sequence< css::uno::Any > &aArguments) override
Definition:
xsecparser.cxx:1626
XSecParser::setDocumentLocator
virtual void SAL_CALL setDocumentLocator(const css::uno::Reference< css::xml::sax::XLocator > &xLocator) override
Definition:
xsecparser.cxx:1615
XSecParser::ignorableWhitespace
virtual void SAL_CALL ignorableWhitespace(const OUString &aWhitespaces) override
Definition:
xsecparser.cxx:1599
XSecParser::m_xNextHandler
css::uno::Reference< css::xml::sax::XDocumentHandler > m_xNextHandler
Definition:
xsecparser.hxx:114
XSecParser::endElement
virtual void SAL_CALL endElement(const OUString &aName) override
Definition:
xsecparser.cxx:1554
XSecParser::m_pNamespaceMap
std::optional< SvXMLNamespaceMap > m_pNamespaceMap
Definition:
xsecparser.hxx:103
XSecParser::characters
virtual void SAL_CALL characters(const OUString &aChars) override
Definition:
xsecparser.cxx:1588
XSecParser::startElement
virtual void SAL_CALL startElement(const OUString &aName, const css::uno::Reference< css::xml::sax::XAttributeList > &xAttribs) override
Definition:
xsecparser.cxx:1496
XSecParser::m_ContextStack
std::stack< std::unique_ptr< Context > > m_ContextStack
Definition:
xsecparser.hxx:100
implbase.hxx
namespacemap.hxx
Generated on Sun Jul 30 2023 04:29:54 for LibreOffice Module xmlsecurity (master) by
1.9.3