- From: merlin <merlin@baltimore.ie>
- Date: Mon, 15 Jul 2002 20:27:37 +0100
- To: reagle@w3.org
- Cc: "Takeshi Imamura" <IMAMU@jp.ibm.com>, xml-encryption@w3.org
r/reagle@w3.org/2002.07.15/14:34:05 >On Friday 12 July 2002 10:45 am, merlin wrote: >> I attach an edited copy of Joseph's latest version of the >> document. The changes I have made reflect my reponse to >> Takeshi's comments below: > >Ok, hopefully you and Takeshi are *quickly* converging on something mutually >acceptable <smile/>. My particular confusion still petains to: > > o A namespace declaration xmlns="" MUST be emitted with every > apex element that has no namespace prefix and URI as described > in Serializing XML (section 4.3.3) of the XML Encryption > specification [XML-Encryption]. > o If a node-set is replacing an element from N whose parent element > is not in N, then its apex elements MUST inherit attributes > associated with the XML namespace [XML] from the parent element. > >First, apex node isn't definied, but I otherwise understand the first >bullet. (Perhaps you should reference the exc-c14n spec for the >definition?) Second, I'm still not sure about this processing required of >the xml:foo attributes. Part of my confusion results from the pronouns. How >can I replace an element in N that doesn't have a parent? Whose apex >elements? and the parent element in which context? This is why an example >would be useful. Consider: <Document xml:lang="ie"> <Foo id="foo-1" /> <Signature xmlns="&dsig;"> ... <Reference URI="#foo-1"> ... <Transform Algorithm="&decrypt;XML" /> ... </Signature> </Document> The Foo element is an apex node of the signed node set and so when the decrypt transform performs c14n-with-replacement, it inherits xml:lang. Later on, this is encrypted: <Document xml:lang="ie"> <EncryptedData Id="foo-1" [[<Foo Id="foo-1" />]] /> <Signature xmlns="&dsig;"> ... <Reference URI="#foo-1"> ... <Transform Algorithm="&decrypt;XML" /> ... </Signature> </Document> Now, when we do the c14n-with-replacement within the decrypt transform, the Foo element will not inherit xml:lang correctly because it is in a different document; as a result, the signature will break. So we need that patch text. Here, we've used an ID reference to select an EncryptedData that is an apex node; transforms could also achieve the same effect. In general, there can only be one apex encrypted element for such a case to work (our parsing-validity requirement), however one can potentially have multiple apex EncryptedData elements: <Body> <!-- comment --> <Data /> <!-- comment --> </Body> Sign /ToBeSigned/descendant::node() | &decrypt;XML Could be encrypted so: <Body> <EncryptedData [[<!-- comment -->]] /> <EncryptedData [[<Data />]] /> <EncryptedData [[<!-- comment -->]] /> </Body> We can tidy up examples once we nail down the transform specification. Merlin
Received on Monday, 15 July 2002 15:28:20 UTC