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
|
<!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: DSIGReference.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 Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a> | <a class="qindex" href="globals.html">File Members</a> | <a class="qindex" href="pages.html">Related Pages</a></div>
<div class="nav">
<a class="el" href="dir_000000.html">src</a> / <a class="el" href="dir_000001.html">dsig</a></div>
<h1>DSIGReference.hpp</h1><a href="DSIGReference_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"> * DSIG_Reference := Class for checking and setting up reference nodes in a DSIG signature</span>
00021 <span class="comment"> *</span>
00022 <span class="comment"> * $Id: DSIGReference.hpp,v 1.17 2005/06/04 11:30:25 blautenb Exp $</span>
00023 <span class="comment"> * </span>
00024 <span class="comment"> */</span>
00025
00026 <span class="comment">// High level include</span>
00027 <span class="preprocessor">#include <xsec/framework/XSECDefs.hpp></span>
00028
00029 <span class="comment">// Xerces INcludes</span>
00030
00031 <span class="preprocessor">#include <xercesc/dom/DOM.hpp></span>
00032 <span class="preprocessor">#include <xercesc/dom/DOMNamedNodeMap.hpp></span>
00033
00034 <span class="comment">// XSEC Includes</span>
00035 <span class="preprocessor">#include <xsec/utils/XSECSafeBufferFormatter.hpp></span>
00036 <span class="preprocessor">#include <xsec/dsig/DSIGTransform.hpp></span>
00037 <span class="preprocessor">#include <xsec/dsig/DSIGReferenceList.hpp></span>
00038 <span class="preprocessor">#include <xsec/dsig/DSIGConstants.hpp></span>
00039
00040 <span class="keyword">class </span><a class="code" href="classDSIGTransformList.html">DSIGTransformList</a>;
00041 <span class="keyword">class </span><a class="code" href="classDSIGTransformBase64.html">DSIGTransformBase64</a>;
00042 <span class="keyword">class </span><a class="code" href="classDSIGTransformC14n.html">DSIGTransformC14n</a>;
00043 <span class="keyword">class </span><a class="code" href="classDSIGTransformEnvelope.html">DSIGTransformEnvelope</a>;
00044 <span class="keyword">class </span><a class="code" href="classDSIGTransformXPath.html">DSIGTransformXPath</a>;
00045 <span class="keyword">class </span><a class="code" href="classDSIGTransformXPathFilter.html">DSIGTransformXPathFilter</a>;
00046 <span class="keyword">class </span><a class="code" href="classDSIGTransformXSL.html">DSIGTransformXSL</a>;
00047 <span class="keyword">class </span><a class="code" href="classDSIGSignature.html">DSIGSignature</a>;
00048
00049 <span class="keyword">class </span><a class="code" href="classTXFMBase.html">TXFMBase</a>;
00050 <span class="keyword">class </span><a class="code" href="classTXFMChain.html">TXFMChain</a>;
00051 <span class="keyword">class </span><a class="code" href="classXSECBinTXFMInputStream.html">XSECBinTXFMInputStream</a>;
00052 <span class="keyword">class </span><a class="code" href="classXSECURIResolver.html">XSECURIResolver</a>;
00053 <span class="keyword">class </span><a class="code" href="classXSECEnv.html">XSECEnv</a>;
00054
<a name="l00067"></a><a class="code" href="classDSIGReference.html">00067</a> <span class="keyword">class </span><a class="code" href="XSECDefs_8hpp.html#a9">DSIG_EXPORT</a> <a class="code" href="classDSIGReference.html">DSIGReference</a> {
00068
00069 <span class="keyword">public</span>:
00070
00073
00090 <a class="code" href="classDSIGReference.html">DSIGReference</a>(<span class="keyword">const</span> <a class="code" href="classXSECEnv.html">XSECEnv</a> * env, <a class="code" href="XSECDefs_8hpp.html#a0">XERCES_CPP_NAMESPACE_QUALIFIER</a> DOMNode *dom);
00091
00106 <a class="code" href="classDSIGReference.html">DSIGReference</a>(<span class="keyword">const</span> <a class="code" href="classXSECEnv.html">XSECEnv</a> * env);
00107
00117 ~<a class="code" href="classDSIGReference.html">DSIGReference</a>();
00118
00120
00123
00132 <span class="keywordtype">void</span> load();
00133
00153 <a class="code" href="XSECDefs_8hpp.html#a0">XERCES_CPP_NAMESPACE_QUALIFIER</a> DOMElement *
00154 createBlankReference(<span class="keyword">const</span> XMLCh * URI, <a class="code" href="DSIGConstants_8hpp.html#a104">hashMethod</a> hm, <span class="keywordtype">char</span> * type);
00155
00166 <a class="code" href="classDSIGTransformEnvelope.html">DSIGTransformEnvelope</a> * appendEnvelopedSignatureTransform();
00167
00174 <a class="code" href="classDSIGTransformBase64.html">DSIGTransformBase64</a> * appendBase64Transform();
00175
00187 <a class="code" href="classDSIGTransformXPath.html">DSIGTransformXPath</a> * appendXPathTransform(<span class="keyword">const</span> <span class="keywordtype">char</span> * expr);
00188
00199 <a class="code" href="classDSIGTransformXPathFilter.html">DSIGTransformXPathFilter</a> * appendXPathFilterTransform(<span class="keywordtype">void</span>);
00200
00211 <a class="code" href="classDSIGTransformXSL.html">DSIGTransformXSL</a> * appendXSLTransform(<a class="code" href="XSECDefs_8hpp.html#a0">XERCES_CPP_NAMESPACE_QUALIFIER</a> DOMNode *stylesheet);
00212
00220 <a class="code" href="classDSIGTransformC14n.html">DSIGTransformC14n</a> * appendCanonicalizationTransform(<a class="code" href="DSIGConstants_8hpp.html#a102">canonicalizationMethod</a> cm);
00221
00235 <span class="keywordtype">void</span> setPreHashTXFM(<a class="code" href="classTXFMBase.html">TXFMBase</a> * t);
00236
00237
00239
00242
00255 <a class="code" href="classXSECBinTXFMInputStream.html">XSECBinTXFMInputStream</a> * makeBinInputStream(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
00256
00264 <span class="keyword">const</span> XMLCh * getURI();
00265
<a name="l00274"></a><a class="code" href="classDSIGReference.html#z37_2">00274</a> <a class="code" href="DSIGConstants_8hpp.html#a104">hashMethod</a> getHashMethod(<span class="keywordtype">void</span>) {
00275 <span class="keywordflow">return</span> me_hashMethod;
00276 }
00277
<a name="l00285"></a><a class="code" href="classDSIGReference.html#z37_3">00285</a> <a class="code" href="classDSIGTransformList.html">DSIGTransformList</a> * getTransforms(<span class="keywordtype">void</span>) {
00286 <span class="keywordflow">return</span> mp_transformList;
00287 }
00288
00295 <span class="keywordtype">bool</span> isManifest();
00296
00304 <a class="code" href="classDSIGReferenceList.html">DSIGReferenceList</a> * getManifestReferenceList(); <span class="comment">// Return list of references for a manifest object</span>
00305
00306
00308
00311
00324 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> calculateHash(XMLByte * toFill,
00325 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> maxToFill);
00326
00339 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> readHash(XMLByte *toFill,
00340 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> maxToFill);
00341
00352 <span class="keywordtype">bool</span> checkHash();
00353
00362 <span class="keywordtype">void</span> setHash();
00363
00365
00368
00388 <span class="keyword">static</span> <a class="code" href="classTXFMChain.html">TXFMChain</a> * <a class="code" href="classDSIGReference.html#z39_0">DSIGReference::createTXFMChainFromList</a>(<a class="code" href="classTXFMBase.html">TXFMBase</a> * input,
00389 <a class="code" href="classDSIGTransformList.html">DSIGTransformList</a> * lst);
00390
00403 <span class="keyword">static</span> <a class="code" href="classDSIGTransformList.html">DSIGTransformList</a> * loadTransforms(
00404 <a class="code" href="XSECDefs_8hpp.html#a0">XERCES_CPP_NAMESPACE_QUALIFIER</a> DOMNode *transformsNode,
00405 <a class="code" href="classXSECSafeBufferFormatter.html">XSECSafeBufferFormatter</a> * formatter,
00406 <span class="keyword">const</span> <a class="code" href="classXSECEnv.html">XSECEnv</a> * env);
00407
00420 <span class="keyword">static</span> <a class="code" href="classTXFMBase.html">TXFMBase</a> * getURIBaseTXFM(<a class="code" href="XSECDefs_8hpp.html#a0">XERCES_CPP_NAMESPACE_QUALIFIER</a> DOMDocument * doc,
00421 <span class="keyword">const</span> XMLCh * URI,
00422 <span class="keyword">const</span> <a class="code" href="classXSECEnv.html">XSECEnv</a> * env);
00423
00437 <span class="keyword">static</span> <a class="code" href="classDSIGReferenceList.html">DSIGReferenceList</a> *loadReferenceListFromXML(<span class="keyword">const</span> <a class="code" href="classXSECEnv.html">XSECEnv</a> * env,
00438 <a class="code" href="XSECDefs_8hpp.html#a0">XERCES_CPP_NAMESPACE_QUALIFIER</a> DOMNode *firstReference);
00439
00451 <span class="keyword">static</span> <span class="keywordtype">bool</span> verifyReferenceList(<a class="code" href="classDSIGReferenceList.html">DSIGReferenceList</a> * lst, <a class="code" href="classsafeBuffer.html">safeBuffer</a> &errorStr);
00452
00468 <span class="keyword">static</span> <span class="keywordtype">void</span> hashReferenceList(<a class="code" href="classDSIGReferenceList.html">DSIGReferenceList</a> * list, <span class="keywordtype">bool</span> interlocking = <span class="keyword">true</span>);
00469
00471
00472 <span class="keyword">private</span>:
00473
00474 <span class="comment">// Internal functions</span>
00475 <span class="keywordtype">void</span> createTransformList(<span class="keywordtype">void</span>);
00476 <span class="keywordtype">void</span> addTransform(
00477 <a class="code" href="classDSIGTransform.html">DSIGTransform</a> * txfm,
00478 <a class="code" href="XSECDefs_8hpp.html#a0">XERCES_CPP_NAMESPACE_QUALIFIER</a> DOMElement * txfmElt
00479 );
00480
00481
00482 <a class="code" href="classXSECSafeBufferFormatter.html">XSECSafeBufferFormatter</a> * mp_formatter;
00483 <span class="keywordtype">bool</span> formatterLocal;
00484 <a class="code" href="XSECDefs_8hpp.html#a0">XERCES_CPP_NAMESPACE_QUALIFIER</a> DOMNode
00485 * mp_referenceNode; <span class="comment">// Points to start of document where reference node is</span>
00486 <a class="code" href="classTXFMBase.html">TXFMBase</a> * mp_preHash; <span class="comment">// To be used pre-hash</span>
00487 <a class="code" href="classDSIGReferenceList.html">DSIGReferenceList</a> * mp_manifestList; <span class="comment">// The list of references in a manifest</span>
00488 <span class="keyword">const</span> XMLCh * mp_URI; <span class="comment">// The URI String</span>
00489 <span class="keywordtype">bool</span> m_isManifest; <span class="comment">// Does this reference a manifest?</span>
00490 <a class="code" href="XSECDefs_8hpp.html#a0">XERCES_CPP_NAMESPACE_QUALIFIER</a> DOMNode
00491 * mp_transformsNode;
00492 <a class="code" href="DSIGConstants_8hpp.html#a104">hashMethod</a> me_hashMethod; <span class="comment">// What form of digest?</span>
00493 <a class="code" href="XSECDefs_8hpp.html#a0">XERCES_CPP_NAMESPACE_QUALIFIER</a> DOMNode
00494 * mp_hashValueNode; <span class="comment">// Node where the Hash value is stored</span>
00495 <span class="keyword">const</span> <a class="code" href="classXSECEnv.html">XSECEnv</a> * mp_env;
00496 <a class="code" href="classDSIGTransformList.html">DSIGTransformList</a> * mp_transformList; <span class="comment">// List of transforms</span>
00497
00498 <span class="keywordtype">bool</span> m_loaded;
00499
00500 <a class="code" href="classDSIGReference.html">DSIGReference</a>();
00501
00502 <span class="comment">/*\@}*/</span>
00503 };
00504
00505
00506
00507
</pre></div><hr size="1"><address style="align: right;"><small>Generated on Sun Jul 3 17:37:25 2005 for XML-Security-C by
<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>
|