File: XSECDOMUtils_8hpp-source.html

package info (click to toggle)
xml-security-c 1.2.1-3
  • links: PTS
  • area: main
  • in suites: etch-m68k
  • size: 24,464 kB
  • ctags: 6,673
  • sloc: cpp: 36,830; xml: 23,415; sh: 2,365; makefile: 340; perl: 221
file content (208 lines) | stat: -rw-r--r-- 18,029 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>XML-Security-C: XSECDOMUtils.hpp Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.2 -->
<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a> | <a class="qindex" href="pages.html">Related&nbsp;Pages</a></div>
<div class="nav">
<a class="el" href="dir_000000.html">src</a>&nbsp;/&nbsp;<a class="el" href="dir_000010.html">utils</a></div>
<h1>XSECDOMUtils.hpp</h1><a href="XSECDOMUtils_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment">00001 <span class="comment">/*</span>
00002 <span class="comment"> * Copyright 2002-2005 The Apache Software Foundation.</span>
00003 <span class="comment"> *</span>
00004 <span class="comment"> * Licensed under the Apache License, Version 2.0 (the "License");</span>
00005 <span class="comment"> * you may not use this file except in compliance with the License.</span>
00006 <span class="comment"> * You may obtain a copy of the License at</span>
00007 <span class="comment"> *</span>
00008 <span class="comment"> *     http://www.apache.org/licenses/LICENSE-2.0</span>
00009 <span class="comment"> *</span>
00010 <span class="comment"> * Unless required by applicable law or agreed to in writing, software</span>
00011 <span class="comment"> * distributed under the License is distributed on an "AS IS" BASIS,</span>
00012 <span class="comment"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span>
00013 <span class="comment"> * See the License for the specific language governing permissions and</span>
00014 <span class="comment"> * limitations under the License.</span>
00015 <span class="comment"> */</span>
00016 
00017 <span class="comment">/*</span>
00018 <span class="comment"> * XSEC</span>
00019 <span class="comment"> *</span>
00020 <span class="comment"> * XSECDOMUtils:= Utilities to manipulate DOM within XML-SECURITY</span>
00021 <span class="comment"> *</span>
00022 <span class="comment"> * Author(s): Berin Lautenbach</span>
00023 <span class="comment"> *</span>
00024 <span class="comment"> * $Id: XSECDOMUtils.hpp,v 1.20 2005/02/26 10:12:31 blautenb Exp $</span>
00025 <span class="comment"> *</span>
00026 <span class="comment"> */</span>
00027 
00028 <span class="preprocessor">#ifndef XSECDOMUTILS_HEADER</span>
00029 <span class="preprocessor"></span><span class="preprocessor">#define XSECDOMUTILS_HEADER</span>
00030 <span class="preprocessor"></span>
00031 <span class="comment">// XSEC</span>
00032 
00033 <span class="preprocessor">#include &lt;xsec/utils/XSECPlatformUtils.hpp&gt;</span>
00034 <span class="preprocessor">#include &lt;xsec/utils/XSECSafeBuffer.hpp&gt;</span>
00035 <span class="preprocessor">#include &lt;xsec/dsig/DSIGConstants.hpp&gt;</span>
00036 
00037 <span class="comment">// Xerces</span>
00038 
00039 <span class="preprocessor">#include &lt;xercesc/dom/DOM.hpp&gt;</span>
00040 <span class="preprocessor">#include &lt;xercesc/util/XMLString.hpp&gt;</span>
00041 
<a name="l00042"></a><a class="code" href="XSECDOMUtils_8hpp.html#a0">00042</a> <span class="preprocessor">#define COMPARE_STRING_LENGTH   256</span>
00043 <span class="preprocessor"></span>
00044 <span class="comment">// --------------------------------------------------------------------------------</span>
00045 <span class="comment">//           "Quick" Transcode Class (low performance)</span>
00046 <span class="comment">// --------------------------------------------------------------------------------</span>
00047 
00048 
<a name="l00049"></a><a class="code" href="classXMLT.html">00049</a> <span class="keyword">class </span><a class="code" href="XSECDefs_8hpp.html#a9">DSIG_EXPORT</a> <a class="code" href="classXMLT.html">XMLT</a> {
00050 
00051 <span class="keyword">public</span>:
00052 
00053     <a class="code" href="classXMLT.html">XMLT</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> * str);
00054     ~<a class="code" href="classXMLT.html">XMLT</a>(<span class="keywordtype">void</span>);
00055 
00056     XMLCh * getUnicodeStr(<span class="keywordtype">void</span>);
00057 
00058 <span class="keyword">private</span>:
00059 
00060     XMLCh * mp_unicodeStr;
00061     <a class="code" href="classXMLT.html">XMLT</a>();
00062 
00063 };
00064 
<a name="l00065"></a><a class="code" href="XSECDOMUtils_8hpp.html#a1">00065</a> <span class="preprocessor">#define MAKE_UNICODE_STRING(str) XMLT(str).getUnicodeStr()</span>
00066 <span class="preprocessor"></span>
00067 <span class="comment">// --------------------------------------------------------------------------------</span>
00068 <span class="comment">//           Utilities to manipulate namespaces</span>
00069 <span class="comment">// --------------------------------------------------------------------------------</span>
00070 
00071 <span class="keyword">const</span> XMLCh <a class="code" href="XSECDefs_8hpp.html#a9">DSIG_EXPORT</a> * <a class="code" href="XSECDOMUtils_8hpp.html#a2">getDSIGLocalName</a>(<span class="keyword">const</span> <a class="code" href="XSECDefs_8hpp.html#a0">XERCES_CPP_NAMESPACE_QUALIFIER</a> DOMNode *node);
00072 <span class="keyword">const</span> XMLCh <a class="code" href="XSECDefs_8hpp.html#a9">DSIG_EXPORT</a> * <a class="code" href="XSECDOMUtils_8hpp.html#a3">getECLocalName</a>(<span class="keyword">const</span> <a class="code" href="XSECDefs_8hpp.html#a0">XERCES_CPP_NAMESPACE_QUALIFIER</a> DOMNode *node);
00073 <span class="keyword">const</span> XMLCh <a class="code" href="XSECDefs_8hpp.html#a9">DSIG_EXPORT</a> * <a class="code" href="XSECDOMUtils_8hpp.html#a4">getXPFLocalName</a>(<span class="keyword">const</span> <a class="code" href="XSECDefs_8hpp.html#a0">XERCES_CPP_NAMESPACE_QUALIFIER</a> DOMNode *node);
00074 <span class="keyword">const</span> XMLCh <a class="code" href="XSECDefs_8hpp.html#a9">DSIG_EXPORT</a> * <a class="code" href="XSECDOMUtils_8hpp.html#a5">getXENCLocalName</a>(<span class="keyword">const</span> <a class="code" href="XSECDefs_8hpp.html#a0">XERCES_CPP_NAMESPACE_QUALIFIER</a> DOMNode *node);
00075 <span class="keyword">const</span> XMLCh <a class="code" href="XSECDefs_8hpp.html#a9">DSIG_EXPORT</a> * <a class="code" href="XSECDOMUtils_8hpp.html#a6">getXKMSLocalName</a>(<span class="keyword">const</span> <a class="code" href="XSECDefs_8hpp.html#a0">XERCES_CPP_NAMESPACE_QUALIFIER</a> DOMNode *node);
00076 
00077 <span class="comment">// --------------------------------------------------------------------------------</span>
00078 <span class="comment">//           Do UTF-8 &lt;-&gt; UTF-16 transcoding</span>
00079 <span class="comment">// --------------------------------------------------------------------------------</span>
00080 
00081 XMLCh <a class="code" href="XSECDefs_8hpp.html#a9">DSIG_EXPORT</a> * <a class="code" href="XSECDOMUtils_8hpp.html#a7">transcodeFromUTF8</a>(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> * src);
00082 
00083 <span class="comment">// --------------------------------------------------------------------------------</span>
00084 <span class="comment">//           Find a nominated DSIG/XENC node in a document</span>
00085 <span class="comment">// --------------------------------------------------------------------------------</span>
00086 
00087 <a class="code" href="XSECDefs_8hpp.html#a0">XERCES_CPP_NAMESPACE_QUALIFIER</a> DOMNode <a class="code" href="XSECDefs_8hpp.html#a9">DSIG_EXPORT</a> * <a class="code" href="XSECDOMUtils_8hpp.html#a8">findDSIGNode</a>(<a class="code" href="XSECDefs_8hpp.html#a0">XERCES_CPP_NAMESPACE_QUALIFIER</a> DOMNode *n, <span class="keyword">const</span> <span class="keywordtype">char</span> * nodeName);
00088 <a class="code" href="XSECDefs_8hpp.html#a0">XERCES_CPP_NAMESPACE_QUALIFIER</a> DOMNode <a class="code" href="XSECDefs_8hpp.html#a9">DSIG_EXPORT</a> * <a class="code" href="XSECDOMUtils_8hpp.html#a9">findXENCNode</a>(<a class="code" href="XSECDefs_8hpp.html#a0">XERCES_CPP_NAMESPACE_QUALIFIER</a> DOMNode *n, <span class="keyword">const</span> <span class="keywordtype">char</span> * nodeName);
00089 
00090 <span class="comment">// --------------------------------------------------------------------------------</span>
00091 <span class="comment">//           Find particular type of node child</span>
00092 <span class="comment">// --------------------------------------------------------------------------------</span>
00093 
00094 <a class="code" href="XSECDefs_8hpp.html#a0">XERCES_CPP_NAMESPACE_QUALIFIER</a> DOMNode <a class="code" href="XSECDefs_8hpp.html#a9">DSIG_EXPORT</a> * <a class="code" href="XSECDOMUtils_8hpp.html#a10">findFirstChildOfType</a>(<a class="code" href="XSECDefs_8hpp.html#a0">XERCES_CPP_NAMESPACE_QUALIFIER</a> DOMNode *n, <a class="code" href="XSECDefs_8hpp.html#a0">XERCES_CPP_NAMESPACE_QUALIFIER</a> DOMNode::NodeType t);
00095 <a class="code" href="XSECDefs_8hpp.html#a0">XERCES_CPP_NAMESPACE_QUALIFIER</a> DOMNode <a class="code" href="XSECDefs_8hpp.html#a9">DSIG_EXPORT</a> * <a class="code" href="XSECDOMUtils_8hpp.html#a11">findNextChildOfType</a>(<a class="code" href="XSECDefs_8hpp.html#a0">XERCES_CPP_NAMESPACE_QUALIFIER</a> DOMNode *n, <a class="code" href="XSECDefs_8hpp.html#a0">XERCES_CPP_NAMESPACE_QUALIFIER</a> DOMNode::NodeType t);
00096 
00097 <a class="code" href="XSECDefs_8hpp.html#a0">XERCES_CPP_NAMESPACE_QUALIFIER</a> DOMElement <a class="code" href="XSECDefs_8hpp.html#a9">DSIG_EXPORT</a> * <a class="code" href="XSECDOMUtils_8hpp.html#a12">findFirstElementChild</a>(<a class="code" href="XSECDefs_8hpp.html#a0">XERCES_CPP_NAMESPACE_QUALIFIER</a> DOMNode *n);
00098 <a class="code" href="XSECDefs_8hpp.html#a0">XERCES_CPP_NAMESPACE_QUALIFIER</a> DOMElement <a class="code" href="XSECDefs_8hpp.html#a9">DSIG_EXPORT</a> * <a class="code" href="XSECDOMUtils_8hpp.html#a13">findNextElementChild</a>(<a class="code" href="XSECDefs_8hpp.html#a0">XERCES_CPP_NAMESPACE_QUALIFIER</a> DOMNode *n);
00099 
00100 <span class="comment">// --------------------------------------------------------------------------------</span>
00101 <span class="comment">//           Make a QName</span>
00102 <span class="comment">// --------------------------------------------------------------------------------</span>
00103 
00104 <a class="code" href="classsafeBuffer.html">safeBuffer</a> <a class="code" href="XSECDefs_8hpp.html#a9">DSIG_EXPORT</a> &amp;<a class="code" href="XSECDOMUtils_8hpp.html#a14">makeQName</a>(<a class="code" href="classsafeBuffer.html">safeBuffer</a> &amp; qname, <a class="code" href="classsafeBuffer.html">safeBuffer</a> &amp;prefix, <span class="keyword">const</span> <span class="keywordtype">char</span> * localName);
00105 <a class="code" href="classsafeBuffer.html">safeBuffer</a> <a class="code" href="XSECDefs_8hpp.html#a9">DSIG_EXPORT</a> &amp;<a class="code" href="XSECDOMUtils_8hpp.html#a14">makeQName</a>(<a class="code" href="classsafeBuffer.html">safeBuffer</a> &amp; qname, <span class="keyword">const</span> XMLCh *prefix, <span class="keyword">const</span> <span class="keywordtype">char</span> * localName);
00106 <a class="code" href="classsafeBuffer.html">safeBuffer</a> <a class="code" href="XSECDefs_8hpp.html#a9">DSIG_EXPORT</a> &amp;<a class="code" href="XSECDOMUtils_8hpp.html#a14">makeQName</a>(<a class="code" href="classsafeBuffer.html">safeBuffer</a> &amp; qname, <span class="keyword">const</span> XMLCh *prefix, <span class="keyword">const</span> XMLCh * localName);
00107 
00108 <span class="comment">// --------------------------------------------------------------------------------</span>
00109 <span class="comment">//           Gather text from children</span>
00110 <span class="comment">// --------------------------------------------------------------------------------</span>
00111 
00112 <span class="keywordtype">void</span> <a class="code" href="XSECDefs_8hpp.html#a9">DSIG_EXPORT</a> <a class="code" href="XSECDOMUtils_8hpp.html#a17">gatherChildrenText</a>(<a class="code" href="XSECDefs_8hpp.html#a0">XERCES_CPP_NAMESPACE_QUALIFIER</a> DOMNode * parent, <a class="code" href="classsafeBuffer.html">safeBuffer</a> &amp;output);
00113 
00114 <span class="comment">// --------------------------------------------------------------------------------</span>
00115 <span class="comment">//           String decode/encode</span>
00116 <span class="comment">// --------------------------------------------------------------------------------</span>
00117 
00118 <span class="comment">/*</span>
00119 <span class="comment"> * Distinguished names have a particular encoding that needs to be performed prior</span>
00120 <span class="comment"> * to enclusion in the DOM</span>
00121 <span class="comment"> */</span>
00122 
00123 XMLCh * <a class="code" href="XSECDOMUtils_8hpp.html#a18">encodeDName</a>(<span class="keyword">const</span> XMLCh * toEncode);
00124 XMLCh * <a class="code" href="XSECDOMUtils_8hpp.html#a19">decodeDName</a>(<span class="keyword">const</span> XMLCh * toDecode);
00125 
00126 <span class="comment">// --------------------------------------------------------------------------------</span>
00127 <span class="comment">//           Generate Ids</span>
00128 <span class="comment">// --------------------------------------------------------------------------------</span>
00129 
00130 XMLCh <a class="code" href="XSECDefs_8hpp.html#a9">DSIG_EXPORT</a> * <a class="code" href="XSECDOMUtils_8hpp.html#a20">generateId</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> bytes = 16);
00131 
00132 <span class="comment">// --------------------------------------------------------------------------------</span>
00133 <span class="comment">//           String Functions </span>
00134 <span class="comment">// --------------------------------------------------------------------------------</span>
00135 
00136 <span class="comment">// Remove escape (%XX) characters from URIs and return a new buffer containing the</span>
00137 <span class="comment">// "cleaned" string</span>
00138 
00139 XMLCh * <a class="code" href="XSECDOMUtils_8hpp.html#a21">cleanURIEscapes</a>(<span class="keyword">const</span> XMLCh * str);
00140 
00141 <span class="keyword">inline</span>
<a name="l00142"></a><a class="code" href="XSECDOMUtils_8hpp.html#a22">00142</a> <span class="keywordtype">bool</span> <a class="code" href="XSECDOMUtils_8hpp.html#a22">strEquals</a> (<span class="keyword">const</span> XMLCh * str1, <span class="keyword">const</span> XMLCh *str2) {
00143 
00144     <span class="keywordflow">return</span> (XMLString::compareString(str1, str2) == 0);
00145 
00146 }
00147 
00148 <span class="keyword">inline</span>
<a name="l00149"></a><a class="code" href="XSECDOMUtils_8hpp.html#a23">00149</a> <span class="keywordtype">bool</span> <a class="code" href="XSECDOMUtils_8hpp.html#a22">strEquals</a> (<span class="keyword">const</span> <span class="keywordtype">char</span> * str1, <span class="keyword">const</span> <span class="keywordtype">char</span> *str2) {
00150 
00151     <span class="keywordflow">return</span> (XMLString::compareString(str1, str2) == 0);
00152 
00153 }
00154 
00155 <span class="keyword">inline</span> 
<a name="l00156"></a><a class="code" href="XSECDOMUtils_8hpp.html#a24">00156</a> <span class="keywordtype">bool</span> <a class="code" href="XSECDOMUtils_8hpp.html#a22">strEquals</a> (<span class="keyword">const</span> <span class="keywordtype">char</span> * str1, <span class="keyword">const</span> XMLCh * str2) {
00157 
00158     <span class="keywordtype">bool</span> ret;
00159     XMLCh * str1XMLCh = XMLString::transcode(str1);
00160 
00161     <span class="keywordflow">if</span> (str1XMLCh != NULL) {
00162 
00163         ret = (XMLString::compareString(str1XMLCh, str2) == 0);
00164         <a class="code" href="XSECDefs_8hpp.html#a7">XSEC_RELEASE_XMLCH</a>(str1XMLCh);
00165 
00166     }
00167     <span class="keywordflow">else</span>
00168         ret = <span class="keyword">false</span>;
00169 
00170     <span class="keywordflow">return</span> ret;
00171 
00172 }
00173 
00174 <span class="keyword">inline</span> 
<a name="l00175"></a><a class="code" href="XSECDOMUtils_8hpp.html#a25">00175</a> <span class="keywordtype">bool</span> <a class="code" href="XSECDOMUtils_8hpp.html#a22">strEquals</a> (<span class="keyword">const</span> XMLCh * str1, <span class="keyword">const</span> <span class="keywordtype">char</span> * str2) {
00176 
00177     <span class="keywordtype">bool</span> ret;
00178     XMLCh * str2XMLCh = XMLString::transcode(str2);
00179 
00180     <span class="keywordflow">if</span> (str2XMLCh != NULL) {
00181 
00182         ret = (XMLString::compareString(str1, str2XMLCh) == 0);
00183         <a class="code" href="XSECDefs_8hpp.html#a7">XSEC_RELEASE_XMLCH</a>(str2XMLCh);
00184 
00185     }
00186     <span class="keywordflow">else</span>
00187         ret = <span class="keyword">false</span>;
00188 
00189     <span class="keywordflow">return</span> ret;
00190 
00191 }
00192 
00193 <span class="preprocessor">#endif </span><span class="comment">/* XSECDOMUTILS_HEADER */</span>
00194 
</pre></div><hr size="1"><address style="align: right;"><small>Generated on Sun Jul 3 17:37:28 2005 for XML-Security-C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.2 </small></address>
</body>
</html>