

Author: Joseph Reagle
Audience: XML2000
Question: Overview of Signature
References:
Joseph M. Reagle
Jr. 
<reagle@w3.org>
IETF/W3C XML
Signature Co-Chair
W3C/LCS/MIT
<Signature> 
  <SignedInfo>
    (CanonicalizationMethod)?
    (SignatureMethod)
    <Reference (URI=)? >
      (Transforms)?
      (DigestMethod)
      (DigestValue)
    </Reference>)+
  </SignedInfo>
  (SignatureValue) 
 (KeyInfo)?
 (Object)*
</Signature> 
[s01] <Signature Id="MyFirstSignature" xmlns="http://www.w3.org/2000/02/xmldsig#"> 
[s02]   <SignedInfo> 
[s03]     <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2000/WD-xml-c14n-20000119"/> 
[s04]     <SignatureMethod Algorithm="http://www.w3.org/2000/02/xmldsig#dsa"/> 
[s05]     <Reference URI="http://www.w3.org/TR/2000/REC-xhtml1-20000126/"> 
[s06]       <Transforms> 
[s07]         <Transform Algorithm="http://www.w3.org/2000/02/xmldsig#c14n"/> 
[s08]       </Transforms> 
[s09]       <DigestMethod Algorithm="http://www.w3.org/2000/02/xmldsig#sha1"/> 
[s10]       <DigestValue>j6lwx3rvEPO0vKtMup4NbeVu8nk=</DigestValue> 
[s11]     </Reference> 
[s12]   </SignedInfo> 
[s13]   <SignatureValue>MC0CFFrVLtRlk=...</SignatureValue> 
      ...
[s17] </Signature>
URI="http://example.com/bar.xml"URI="http://example.com/bar.xml#chapter1"URI=""URI="#chapter1"[s14]   <KeyInfo> 
[s15a]    <KeyValue>
[s15b]      <DSAKeyValue> 
[s15c]
       <P>...</P><Q>...</Q><G>...</G><Y>...</Y>
[s15d]      </DSAKeyValue> 
[s15e]    </KeyValue> 
[s16]   </KeyInfo>
[p00] <Signature Id="MySecondSignature" ...> [p01] <SignedInfo> ... [p02] <Reference URI="http://www.w3.org/TR/xml-stylesheet/">... [p03] <Reference URI=" #AMadeUpTimeStamp " [p04] Type="http://www.w3.org/2000/02/xmldsig#SignatureProperty">... [p08] </SignedInfo> [p09] ... [p10] <Object> [p11] <SignatureProperties Id="AMadeUpTimeStamp"> [p12] <SignatureProperty Target=" #MySecondSignature "> [p13] <timestamp xmlns="http://www.ietf.org/rfcXXXX.txt"> [p14] <date>19990908</date> [p15] <time>14:34:34:34</time> [p16] </timestamp> [p17] </SignatureProperty> [p18] </SignatureProperties> [p19] </Object> [p20]</Signature>
[s04] <SignatureMethod Algorithm="http://www.w3.org/2000/02/xmldsig#dsa"/>
| Type | Algorithm | Requirements | Algorithm URI | 
| Digest | SHA1 | REQUIRED | http://www.w3.org/2000/09/xmldsig#sha1 | 
| Encoding | Base64 | REQUIRED | http://www.w3.org/2000/09/xmldsig#base64 | 
| MAC | HMAC-SHA1 | REQUIRED | http://www.w3.org/2000/09/xmldsig#hmac-sha1 | 
| Signature | DSAwithSHA1 (DSS) | REQUIRED | http://www.w3.org/2000/09/xmldsig#dsa | 
| Canonicalization | CanonicalXML | REQUIRED | http://www.w3.org/TR/2000/WD-xml-c14n-20000907 | 
| Others | XPath | RECOMMENDED | http://www.w3.org/TR/1999/REC-xpath-19991116 |