Skip to content

Commit 5f39fe0

Browse files
authored
Merge pull request #26 from dizzzz/main
Adding XML digital signature schemas
2 parents 5020384 + 45f0ff5 commit 5f39fe0

File tree

4 files changed

+536
-0
lines changed

4 files changed

+536
-0
lines changed

src/data/manifest.xml

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

0 commit comments

Comments
 (0)