W3C home > Mailing lists > Public > xml-encryption@w3.org > June 2002

Re: Decryption Transform processing question

From: Joseph Reagle <reagle@w3.org>
Date: Thu, 13 Jun 2002 17:01:23 -0400
To: merlin <merlin@baltimore.ie>, "Takeshi Imamura" <IMAMU@jp.ibm.com>
Cc: xml-encryption@w3.org
Message-Id: <20020613210123.DD38620C@policy.w3.org>

On Wednesday 12 June 2002 06:09 pm, merlin wrote:
> Here is a quick bash at a more formal specification of what I
> propose, taking into account what I believe you have suggested.

Hi Merlin, this looks promising, I've provided some comments below and look 
forward to reading Takeshi's and others' comments.


    1.3.2 Processing Model of Binary-Mode Decryption Transform
   The input to this transform is a node set N. The parameter to this
   transform is a set of exception URIs E. The output is a node set O,
   computed as follows:


As an aside, you're using a slightly different set of tokens to identify 
things, in some places conflicting with previous tokens. In the end we 
should harmonize their usage across the specs.


    1. Dereference each exception URI e, from E, in the context of the
       owner document of the input node set N, resulting in the location
       sets x[e].


A location set is like an XPath node-set but includes points and ranges 
[1]. The present text speaks of, "not referenced by any dcrpt:Except 
elements." Is your intent just to be specific, or to purposefully permit 
ranges? Also, by derefencing in the context of the owner document, is this 
how you get your exception of "#secret-1" (which was super-encrypted) to 
work?

[1] http://www.w3.org/TR/xptr/#dt-locset

   Algorithm Identifier
          [9]http://merlin.org/xml-decrypt#XML

Have you ever looked at merlin.org? <smile/>

    1.4.2 Processing Model of XML-Mode Decryption Transform

    6. Canonicalize the input node set N according to C14N (with
       comments); but, in place of any EncryptedData element d, from any
       D[i], and its descendants, canonicalize the decrypted node set
       o[d]. Let the resulting octet stream be C.
          + Canonicalization of replacement node sets must be augmented
            as follows:
               o An xmlns="" declaration must be emitted with every apex
                 element that has a null prefix and namespace URI.
               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 from the xml namespace.

So this accounts for the "target context" problems with default namespaces 
and xml:lang/xml:base?


    1.4.3 Example of XML-Mode Decryption Transform
   Much of the encrypted data and signature are elided. The Except
       Note that part of the second node set has been super-encrypted.
     * After this decryption stage, two new EncryptedData have been
       revealed. However, the first matches a barename XPointer exception
       URI and so is not considered further; hence, D[1] contains just
       the EncryptedData element d[data-2]. This is decrypted again,
       resulting in the following node set o[data-2]:


This is because the barename XPointer is interprated relative to the input 
document?


  1.5 Limitations
   Super-encryption MAY cause problems if a super-encrypted EncryptedData
   uses same-document references,

Such as URI="" or URI="#bar" [1]. You use this successfully in "#secret-1"?

   or if an exceptional super-encrypted
   EncryptedData is referenced by a non-barename XPointer.

"#secret-1" is also a bare-name XPointer [3], right? I'm probably confusing 
myself, but I think some same-document references *are* bare-name XPointers.

[2] http://www.ietf.org/rfc/rfc2396.txt
4.2. Same-document References
A URI reference that does not contain a URI is a reference to the
current document.  In other words, an empty URI reference within a
document is interpreted as a reference to the start of that document,
and a reference containing only a fragment identifier is a reference
to the identified fragment of that document.
[3] http://www.w3.org/TR/xptr/#bare-names
A bare name stands for the same name provided as the argument of 
id()

   However, applications MAY solve some of these
   super-encryption problems through the use of encryption properties
   that identify exceptional super-encrypted elements, how same-document
   references from the encrypted data should be resolved, and to which
   signature such encryption properties apply. However, details of such a
   solution are beyond the scope of this specification.

Since we don't specify it, I wouldn't even mention it.
Received on Thursday, 13 June 2002 17:01:25 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 6 January 2015 20:32:03 UTC