XML Digital Signatures Chapter 5
155
<Transforms>
<Transform
Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-
signature" />
</Transforms>
<DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
<DigestValue></DigestValue>
</Reference>
</SignedInfo>
<SignatureValue>
</SignatureValue>
<KeyInfo>
<KeyValue />
</KeyInfo>
</Signature>
<Data>
The information that we want to sign goes here...
</Data>
</Envelope>
Obviously, the rsa-sha1 in the SignatureMethod line determines the type of key
that will be used for generating this signature.
There are a couple of important points to notice about this file.The
enveloped-signature in the Transform element specifies that this signature be an
enveloped one.You should also note that the element Data can be called anything
(and it can be physically placed anywhere in the file outside of the Signature con-
text); as far as the digital signature process is concerned, it is irrelevant as long as
the entire file is well-formed (i.e., proper) XML.
Generating the digital signature for this code using an RSA private key gives
the result that we see in Figure 5.6.
Figure 5.6 Complete Enveloped XML Digital Signature
<?xml version="1.0" encoding="UTF-8"?>
<Envelope xmlns="urn:envelope">
<Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
<SignedInfo>
www.syngress.com
Figure 5.5 Continued
Continued