- From: merlin <merlin@baltimore.ie>
- Date: Thu, 16 Nov 2000 09:39:52 +0000
- To: Juan Carlos Cruellas <cruellas@ac.upc.es>
- Cc: w3c-ietf-xmldsig@w3.org
r/cruellas@ac.upc.es/2000.11.15/17:14:21
>[...]
>2. Assuming that in XML this kind of behaviour should be allowed, what the
>second <Signature> would sign is the <SignatureValue> element of the first
><Signature> element. So, a <Reference> to this <SignatureValue> should appear
>within the second <Signature>, but NO Id attribute has been specified for the
><SignatureValue> element, so it seems not possible to reference it unless a
>redefinition of the <SignatureValue> element is made.
There are two approaches to this that are possible within the
current spec. One is to use transforms.
<Signature id="signature-1" xmlns="&dsig;">
...
<SignatureValue>...</SignatureValue>
...
<SignatureProperty Target="#signature-1">
<CounterSignature>
<Signature>
...
<Reference URI="#signature-1">
<Transforms>
<Transform Algorithm="&xpath;" xmlns:dsig="&dsig;">
parent::dsig:SignatureValue && ...
</Transform>
<Transform Algorithm="&dsig;base64" />
</Transforms>
...
</Reference>
...
</Signature>
</CounterSignature>
</SignatureProperty>
...
</Signature>
Here, we first use an XPath to select the child text node of
the SignatureValue element and then use a Base 64 decode to
obtain the original signature bytes. Note that the XPath is
incomplete, as it stands it will select all SignatureValue
elements. An XPointer could achieve a similar result.
The alternative, and cleaner approach, is to use an implicit
reference:
<Signature id="signature-1" xmlns="&dsig;">
...
<SignatureValue>...</SignatureValue>
...
<SignatureProperty Target="#signature-1">
<CounterSignature>
<Signature>
...
<Reference>
...
</Reference>
...
</Signature>
</CounterSignature>
</SignatureProperty>
...
</Signature>
You can define that, for your application, an implicit reference
(i.e., no URI) within a CounterSignature should resolve to the
decoded signature value of the Signature that is the target of the
SignatureProperty.
Merlin
Received on Thursday, 16 November 2000 04:40:14 UTC