2 * Copyright 2001-2006 Internet2
\r
4 * Licensed under the Apache License, Version 2.0 (the "License");
\r
5 * you may not use this file except in compliance with the License.
\r
6 * You may obtain a copy of the License at
\r
8 * http://www.apache.org/licenses/LICENSE-2.0
\r
10 * Unless required by applicable law or agreed to in writing, software
\r
11 * distributed under the License is distributed on an "AS IS" BASIS,
\r
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
\r
13 * See the License for the specific language governing permissions and
\r
14 * limitations under the License.
\r
20 * XMLObjects representing XML Digital Signature, version 20020212, KeyInfo element
\r
21 * and related content.
\r
24 #ifndef __xmltooling_keyinfo_h__
\r
25 #define __xmltooling_keyinfo_h__
\r
27 #include <xmltooling/ElementProxy.h>
\r
28 #include <xmltooling/exceptions.h>
\r
29 #include <xmltooling/XMLObjectBuilder.h>
\r
30 #include <xmltooling/util/XMLConstants.h>
\r
31 #include <xmltooling/validation/ValidatingXMLObject.h>
\r
33 #include <typeinfo.h>
\r
35 #define DECL_XMLSIGOBJECTBUILDER(cname) \
\r
36 DECL_XMLOBJECTBUILDER(XMLTOOL_API,cname,XMLConstants::XMLSIG_NS,XMLConstants::XMLSIG_PREFIX)
\r
38 namespace xmltooling {
\r
41 * XMLObject representing XML Digital Signature, version 20020212, KeyName element.
\r
43 BEGIN_XMLOBJECT(XMLTOOL_API,KeyName,XMLObject);
\r
44 DECL_XMLOBJECT_CONTENT(Name);
\r
48 * XMLObject representing XML Digital Signature, version 20020212, MgmtData element.
\r
50 BEGIN_XMLOBJECT(XMLTOOL_API,MgmtData,XMLObject);
\r
51 DECL_XMLOBJECT_CONTENT(Data);
\r
55 * XMLObject representing XML Digital Signature, version 20020212, Modulus element.
\r
57 BEGIN_XMLOBJECT(XMLTOOL_API,Modulus,XMLObject);
\r
58 DECL_XMLOBJECT_CONTENT(Value);
\r
62 * XMLObject representing XML Digital Signature, version 20020212, Exponent element.
\r
64 BEGIN_XMLOBJECT(XMLTOOL_API,Exponent,XMLObject);
\r
65 DECL_XMLOBJECT_CONTENT(Value);
\r
69 * XMLObject representing XML Digital Signature, version 20020212, RSAKeyValue element.
\r
71 BEGIN_XMLOBJECT(XMLTOOL_API,RSAKeyValue,XMLObject);
\r
72 DECL_XMLOBJECT_CHILD(Modulus);
\r
73 DECL_XMLOBJECT_CHILD(Exponent);
\r
74 /** RSAKeyValueType local name */
\r
75 static const XMLCh TYPE_NAME[];
\r
79 * XMLObject representing XML Digital Signature, version 20020212, KeyInfo element.
\r
81 BEGIN_XMLOBJECT(XMLTOOL_API,KeyInfo,ElementProxy);
\r
82 DECL_XMLOBJECT_ATTRIB(Id,ID);
\r
83 DECL_XMLOBJECT_CHILDREN(KeyName);
\r
84 DECL_XMLOBJECT_CHILDREN(MgmtData);
\r
85 /** KeyInfoType local name */
\r
86 static const XMLCh TYPE_NAME[];
\r
89 DECL_XMLSIGOBJECTBUILDER(KeyName);
\r
90 DECL_XMLSIGOBJECTBUILDER(MgmtData);
\r
91 DECL_XMLSIGOBJECTBUILDER(Modulus);
\r
92 DECL_XMLSIGOBJECTBUILDER(Exponent);
\r
93 DECL_XMLSIGOBJECTBUILDER(RSAKeyValue);
\r
94 DECL_XMLSIGOBJECTBUILDER(KeyInfo);
\r
96 BEGIN_XMLOBJECTVALIDATOR(XMLTOOL_DLLLOCAL,KeyName);
\r
97 XMLOBJECTVALIDATOR_REQUIRE(KeyName,Name);
\r
98 END_XMLOBJECTVALIDATOR;
\r
100 BEGIN_XMLOBJECTVALIDATOR(XMLTOOL_DLLLOCAL,MgmtData);
\r
101 XMLOBJECTVALIDATOR_REQUIRE(MgmtData,Data);
\r
102 END_XMLOBJECTVALIDATOR;
\r
104 BEGIN_XMLOBJECTVALIDATOR(XMLTOOL_DLLLOCAL,Modulus);
\r
105 XMLOBJECTVALIDATOR_REQUIRE(Modulus,Value);
\r
106 END_XMLOBJECTVALIDATOR;
\r
108 BEGIN_XMLOBJECTVALIDATOR(XMLTOOL_DLLLOCAL,Exponent);
\r
109 XMLOBJECTVALIDATOR_REQUIRE(Exponent,Value);
\r
110 END_XMLOBJECTVALIDATOR;
\r
112 BEGIN_XMLOBJECTVALIDATOR(XMLTOOL_DLLLOCAL,RSAKeyValue);
\r
113 XMLOBJECTVALIDATOR_REQUIRE(RSAKeyValue,Modulus);
\r
114 XMLOBJECTVALIDATOR_REQUIRE(RSAKeyValue,Exponent);
\r
115 END_XMLOBJECTVALIDATOR;
\r
117 BEGIN_XMLOBJECTVALIDATOR(XMLTOOL_DLLLOCAL,KeyInfo);
\r
118 XMLOBJECTVALIDATOR_CHECKEMPTY(KeyInfo,XMLObject);
\r
119 END_XMLOBJECTVALIDATOR;
\r
123 #endif /* __xmltooling_keyinfo_h__ */
\r