- From: Joseph Reagle <reagle@w3.org>
- Date: Tue, 25 Jun 2002 15:15:36 -0400
- To: "Takeshi Imamura" <IMAMU@jp.ibm.com>, merlin <merlin@baltimore.ie>
- Cc: xml-encryption@w3.org
On Monday 24 June 2002 12:24 pm, Takeshi Imamura wrote:
> I'm sorry to be late, but please find the updated draft below. In the
> draft, I borrowed most of Merlin's text and also tried to clarify the
> processing rules by dividing them in two functions. I gave up supporting
> binary decryption combined with XML decryption because it seems to be
> difficult to gain your support. So if necessary, I can add to the draft
> a section for the binary-mode. Anyway, any comments are welcome.
Thanks Takeshi! I have some comments below but I'll defer subsantive
discussion of the binary modes to Merlin.
Comments on [1].
[1]
http://lists.w3.org/Archives/Public/xml-encryption/2002Jun/att-0067/01-20020624.html
2 Decryption Transform
Identifier:
http://www.w3.org/2001/04/decrypt#
We should use a different identifier. I propose:
http://www.w3.org/2002/06/decryt#
2.1 Processing Rules
transform are those of the foo() function, which itself calls the
bar() function.
How about "stage()" (or maybe "marshal()") and "decrypt()" .
O = foo(N, E)
where N is a node-set and E is a set of exception URIs held by
URI attributes of dcrpt:Except elements. O is a node-set,
computed as follows:
1. Dereference each exception URI from E in the context of the
owner document of N, resulting in a set of XPointer
location-sets [XPointer] X.
o When dereferencing an exception URI, the implementation
MUST behave as if the document node of the input
node-set is used to initialize the XPointer evaluation
context [XPointer], even if the node is not part of the
node-set. Unlike XML Signature [XML-Signature], the
exception URI may be evaluated against a different
document from the signature document. If the input is a
different document then, as per XPointer [XPointer], use
of the here() function is an error.
An explicit example of this might be useful.
3. Convert N to an octet stream as described in The Reference...
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.
I'm still not sure I completely understand this, and consequently it'd be
nice if this was shown in the example in section 4. Also, if we do need to
do this, I think we'd have to say, "then its apex elements MUST inherit
attributes associated with the XML namespace[XML] from nearest *ancestor*
element."
Y = bar(N, X)
3. For each xenc:EncryptedData element d from D:
o If the Type attribute is absent or its value is neither
&xenc;Element nor &xenc;Content, the result is an octet
stream in default. However, the implementation MAY
process it further in accordance with its type, if any,
resulting in a node-set.
I'd remove the "in default". Also, I think what is returned should be
determined by the type. For instance, it might be a gzipped PNG file.
2. Replace Y with Y )U {O[d]}.
Whatever character is being used between the Y and the {O[d]} is not be
represented well on any of my browsers.
2.2 Restrictions and Limitations
* The octet stream resulting from canonicalization-with-replacement
MUST be well-formed.
Which process was this? (Perhaps we should label it as such?)
* Super-encryption may cause problems if a super-encrypted
xenc:EncryptedData element uses same-document references, or if an
exceptional super-encrypted xenc:EncryptedData element is
referenced by a URI with an XPointer except a full XPointer
"xpointer(id('ID'))" and bare name.
I think it's very important that we have some examples for these
same-document references and such. (As we had to do in xmldsig
http://www.w3.org/TR/xmldsig-core/#sec-ReferenceProcessingModel )
4 Example
3. As a result, D for N is a node-set consisting of the two
...
Note that part of the second node-set ([02]) has been
super-encrypted.
4. After this decryption stage, two new xenc:EncryptedData elements
([03] and [02]) have been revealed. However, the first matches an
I don't think you need the "Note..." since this is exactly what step 4
says. Also, in the example it might be worthwhile to give the different
"layers" of instance different letters, like [a01-a15] [b01-b28], etc.
Received on Tuesday, 25 June 2002 15:15:38 UTC