152
Chapter 5 XML Digital Signatures
An Enveloping Signature Example
As our first example, lets consider an enveloping signature that uses a DSA key.
The canonical form of this signature is shown in Figure 5.3.
Figure 5.3 Canonical Enveloping XML Digital Signature
<?xml version="1.0" encoding="UTF-8"?>
<Envelope xmlns="http://example.org/envelope">
<Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
<SignedInfo>
<CanonicalizationMethod
Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n
-20010315" />
<SignatureMethod
Algorithm="http://www.w3.org/2000/09/xmldsig#dsa-sha1" />
<Reference URI="">
<Transforms>
</Transforms>
<DigestMethod
Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
<DigestValue></DigestValue>
</Reference>
</SignedInfo>
<SignatureValue>
</SignatureValue>
<KeyInfo>
<KeyValue />
</KeyInfo>
<Object Id="object">
The data that we want to sign...
</Object>
</Signature>
</Envelope>
Note a couple of important points about this file. First, the dsa-sha1 in the
SignatureMethod line determines the type of key that will be used for generating
this signature. In addition, as part of the canonical form, the elements that will get
www.syngress.com