mirror of https://github.com/jacekkow/keycloak-protocol-cas

Jacek Kowalski
2023-11-24 ceed8fb052685c0105d225a61d8574d36e171166
commit | author | age
99d8b1 1 <?xml version="1.0" encoding="UTF-8"?>
MP 2 <!DOCTYPE schema PUBLIC "-//W3C//DTD XMLSchema 200102//EN" "http://www.w3.org/2001/XMLSchema.dtd">
3 <!-- Schema for XML Signatures
4     http://www.w3.org/2000/09/xmldsig#
5     $Revision: 1.2 $ on $Date: 2013-04-16 12:48:49 $ by $Author: denis $
6
7     Copyright 2001 The Internet Society and W3C (Massachusetts Institute
8     of Technology, Institut National de Recherche en Informatique et en
9     Automatique, Keio University). All Rights Reserved.
10     http://www.w3.org/Consortium/Legal/
11
12     This document is governed by the W3C Software License [1] as described
13     in the FAQ [2].
14
15     [1] http://www.w3.org/Consortium/Legal/copyright-software-19980720
16     [2] http://www.w3.org/Consortium/Legal/IPR-FAQ-20000620.html#DTD
17 -->
18 <schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" targetNamespace="http://www.w3.org/2000/09/xmldsig#" version="0.1" elementFormDefault="qualified"> 
19
20 <!-- Basic Types Defined for Signatures -->
21
22 <simpleType name="CryptoBinary">
23   <restriction base="base64Binary">
24   </restriction>
25 </simpleType>
26
27 <!-- Start Signature -->
28
29 <element name="Signature" type="ds:SignatureType"/>
30 <complexType name="SignatureType">
31   <sequence> 
32     <element ref="ds:SignedInfo"/> 
33     <element ref="ds:SignatureValue"/> 
34     <element ref="ds:KeyInfo" minOccurs="0"/> 
35     <element ref="ds:Object" minOccurs="0" maxOccurs="unbounded"/> 
36   </sequence>  
37   <attribute name="Id" type="ID" use="optional"/>
38 </complexType>
39
40   <element name="SignatureValue" type="ds:SignatureValueType"/> 
41   <complexType name="SignatureValueType">
42     <simpleContent>
43       <extension base="base64Binary">
44         <attribute name="Id" type="ID" use="optional"/>
45       </extension>
46     </simpleContent>
47   </complexType>
48
49 <!-- Start SignedInfo -->
50
51 <element name="SignedInfo" type="ds:SignedInfoType"/>
52 <complexType name="SignedInfoType">
53   <sequence> 
54     <element ref="ds:CanonicalizationMethod"/> 
55     <element ref="ds:SignatureMethod"/> 
56     <element ref="ds:Reference" maxOccurs="unbounded"/> 
57   </sequence>  
58   <attribute name="Id" type="ID" use="optional"/> 
59 </complexType>
60
61   <element name="CanonicalizationMethod" type="ds:CanonicalizationMethodType"/> 
62   <complexType name="CanonicalizationMethodType" mixed="true">
63     <sequence>
64       <any namespace="##any" minOccurs="0" maxOccurs="unbounded"/>
65       <!-- (0,unbounded) elements from (1,1) namespace -->
66     </sequence>
67     <attribute name="Algorithm" type="anyURI" use="required"/> 
68   </complexType>
69
70   <element name="SignatureMethod" type="ds:SignatureMethodType"/>
71   <complexType name="SignatureMethodType" mixed="true">
72     <sequence>
73       <element name="HMACOutputLength" minOccurs="0" type="ds:HMACOutputLengthType"/>
74       <any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
75       <!-- (0,unbounded) elements from (1,1) external namespace -->
76     </sequence>
77     <attribute name="Algorithm" type="anyURI" use="required"/> 
78   </complexType>
79
80 <!-- Start Reference -->
81
82 <element name="Reference" type="ds:ReferenceType"/>
83 <complexType name="ReferenceType">
84   <sequence> 
85     <element ref="ds:Transforms" minOccurs="0"/> 
86     <element ref="ds:DigestMethod"/> 
87     <element ref="ds:DigestValue"/> 
88   </sequence>
89   <attribute name="Id" type="ID" use="optional"/> 
90   <attribute name="URI" type="anyURI" use="optional"/> 
91   <attribute name="Type" type="anyURI" use="optional"/> 
92 </complexType>
93
94   <element name="Transforms" type="ds:TransformsType"/>
95   <complexType name="TransformsType">
96     <sequence>
97       <element ref="ds:Transform" maxOccurs="unbounded"/>  
98     </sequence>
99   </complexType>
100
101   <element name="Transform" type="ds:TransformType"/>
102   <complexType name="TransformType" mixed="true">
103     <choice minOccurs="0" maxOccurs="unbounded"> 
104       <any namespace="##other" processContents="lax"/>
105       <!-- (1,1) elements from (0,unbounded) namespaces -->
106       <element name="XPath" type="string"/> 
107     </choice>
108     <attribute name="Algorithm" type="anyURI" use="required"/> 
109   </complexType>
110
111 <!-- End Reference -->
112
113 <element name="DigestMethod" type="ds:DigestMethodType"/>
114 <complexType name="DigestMethodType" mixed="true"> 
115   <sequence>
116     <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
117   </sequence>    
118   <attribute name="Algorithm" type="anyURI" use="required"/> 
119 </complexType>
120
121 <element name="DigestValue" type="ds:DigestValueType"/>
122 <simpleType name="DigestValueType">
123   <restriction base="base64Binary"/>
124 </simpleType>
125
126 <!-- End SignedInfo -->
127
128 <!-- Start KeyInfo -->
129
130 <element name="KeyInfo" type="ds:KeyInfoType"/> 
131 <complexType name="KeyInfoType" mixed="true">
132   <choice maxOccurs="unbounded">     
133     <element ref="ds:KeyName"/> 
134     <element ref="ds:KeyValue"/> 
135     <element ref="ds:RetrievalMethod"/> 
136     <element ref="ds:X509Data"/> 
137     <element ref="ds:PGPData"/> 
138     <element ref="ds:SPKIData"/>
139     <element ref="ds:MgmtData"/>
140     <any processContents="lax" namespace="##other"/>
141     <!-- (1,1) elements from (0,unbounded) namespaces -->
142   </choice>
143   <attribute name="Id" type="ID" use="optional"/> 
144 </complexType>
145
146   <element name="KeyName" type="string"/>
147   <element name="MgmtData" type="string"/>
148
149   <element name="KeyValue" type="ds:KeyValueType"/> 
150   <complexType name="KeyValueType" mixed="true">
151    <choice>
152      <element ref="ds:DSAKeyValue"/>
153      <element ref="ds:RSAKeyValue"/>
154      <any namespace="##other" processContents="lax"/>
155    </choice>
156   </complexType>
157
158   <element name="RetrievalMethod" type="ds:RetrievalMethodType"/> 
159   <complexType name="RetrievalMethodType">
160     <sequence>
161       <element ref="ds:Transforms" minOccurs="0"/> 
162     </sequence>  
163     <attribute name="URI" type="anyURI"/>
164     <attribute name="Type" type="anyURI" use="optional"/>
165   </complexType>
166
167 <!-- Start X509Data -->
168
169 <element name="X509Data" type="ds:X509DataType"/> 
170 <complexType name="X509DataType">
171   <sequence maxOccurs="unbounded">
172     <choice>
173       <element name="X509IssuerSerial" type="ds:X509IssuerSerialType"/>
174       <element name="X509SKI" type="base64Binary"/>
175       <element name="X509SubjectName" type="string"/>
176       <element name="X509Certificate" type="base64Binary"/>
177       <element name="X509CRL" type="base64Binary"/>
178       <any namespace="##other" processContents="lax"/>
179     </choice>
180   </sequence>
181 </complexType>
182
183 <complexType name="X509IssuerSerialType"> 
184   <sequence> 
185     <element name="X509IssuerName" type="string"/> 
186     <element name="X509SerialNumber" type="integer"/> 
187   </sequence>
188 </complexType>
189
190 <!-- End X509Data -->
191
192 <!-- Begin PGPData -->
193
194 <element name="PGPData" type="ds:PGPDataType"/> 
195 <complexType name="PGPDataType"> 
196   <choice>
197     <sequence>
198       <element name="PGPKeyID" type="base64Binary"/> 
199       <element name="PGPKeyPacket" type="base64Binary" minOccurs="0"/> 
200       <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
201     </sequence>
202     <sequence>
203       <element name="PGPKeyPacket" type="base64Binary"/> 
204       <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
205     </sequence>
206   </choice>
207 </complexType>
208
209 <!-- End PGPData -->
210
211 <!-- Begin SPKIData -->
212
213 <element name="SPKIData" type="ds:SPKIDataType"/> 
214 <complexType name="SPKIDataType">
215   <sequence maxOccurs="unbounded">
216     <element name="SPKISexp" type="base64Binary"/>
217     <any namespace="##other" processContents="lax" minOccurs="0"/>
218   </sequence>
219 </complexType> 
220
221 <!-- End SPKIData -->
222
223 <!-- End KeyInfo -->
224
225 <!-- Start Object (Manifest, SignatureProperty) -->
226
227 <element name="Object" type="ds:ObjectType"/> 
228 <complexType name="ObjectType" mixed="true">
229   <sequence minOccurs="0" maxOccurs="unbounded">
230     <any namespace="##any" processContents="lax"/>
231   </sequence>
232   <attribute name="Id" type="ID" use="optional"/> 
233   <attribute name="MimeType" type="string" use="optional"/> <!-- add a grep facet -->
234   <attribute name="Encoding" type="anyURI" use="optional"/> 
235 </complexType>
236
237 <element name="Manifest" type="ds:ManifestType"/> 
238 <complexType name="ManifestType">
239   <sequence>
240     <element ref="ds:Reference" maxOccurs="unbounded"/> 
241   </sequence>
242   <attribute name="Id" type="ID" use="optional"/> 
243 </complexType>
244
245 <element name="SignatureProperties" type="ds:SignaturePropertiesType"/> 
246 <complexType name="SignaturePropertiesType">
247   <sequence>
248     <element ref="ds:SignatureProperty" maxOccurs="unbounded"/> 
249   </sequence>
250   <attribute name="Id" type="ID" use="optional"/> 
251 </complexType>
252
253    <element name="SignatureProperty" type="ds:SignaturePropertyType"/> 
254    <complexType name="SignaturePropertyType" mixed="true">
255      <choice maxOccurs="unbounded">
256        <any namespace="##other" processContents="lax"/>
257        <!-- (1,1) elements from (1,unbounded) namespaces -->
258      </choice>
259      <attribute name="Target" type="anyURI" use="required"/> 
260      <attribute name="Id" type="ID" use="optional"/> 
261    </complexType>
262
263 <!-- End Object (Manifest, SignatureProperty) -->
264
265 <!-- Start Algorithm Parameters -->
266
267 <simpleType name="HMACOutputLengthType">
268   <restriction base="integer"/>
269 </simpleType>
270
271 <!-- Start KeyValue Element-types -->
272
273 <element name="DSAKeyValue" type="ds:DSAKeyValueType"/>
274 <complexType name="DSAKeyValueType">
275   <sequence>
276     <sequence minOccurs="0">
277       <element name="P" type="ds:CryptoBinary"/>
278       <element name="Q" type="ds:CryptoBinary"/>
279     </sequence>
280     <element name="G" type="ds:CryptoBinary" minOccurs="0"/>
281     <element name="Y" type="ds:CryptoBinary"/>
282     <element name="J" type="ds:CryptoBinary" minOccurs="0"/>
283     <sequence minOccurs="0">
284       <element name="Seed" type="ds:CryptoBinary"/>
285       <element name="PgenCounter" type="ds:CryptoBinary"/>
286     </sequence>
287   </sequence>
288 </complexType>
289
290 <element name="RSAKeyValue" type="ds:RSAKeyValueType"/>
291 <complexType name="RSAKeyValueType">
292   <sequence>
293     <element name="Modulus" type="ds:CryptoBinary"/> 
294     <element name="Exponent" type="ds:CryptoBinary"/> 
295   </sequence>
296 </complexType> 
297
298 <!-- End KeyValue Element-types -->
299
300 <!-- End Signature -->
301
302 </schema>