Vishal,

that depeneds: if you encrypt/decrypt in Element mode
then it is correct. If you encrypt/decrypt in Content
mode then the methods are:
  encryptElementContent(...)
  decryptElementContent(...)

As you can see in encryptElementContent, it constructs a
DocumentFragment that contains _all_ child nodes
(including text nodes, other element nodes, PI nodes,
comment node,...) of an Element node if the _contents_
of that Element node shall be encrypted.

Element mode just takes the Element node and performs
encryption of that node. 

IMO this is as defined in XML-Enc specs.

Regards,
Werner

> -----Ursprüngliche Nachricht-----
> Von: Vishal Mahajan [mailto:[EMAIL PROTECTED] 
> Gesendet: Mittwoch, 11. Februar 2004 12:33
> An: [EMAIL PROTECTED]
> Betreff: Re: AW: Problem in Decryption
> 
> 
> Hi Dittmann,
> 
> Dittmann Werner wrote:
> 
> >Vishal, Berin
> >
> >during some encrypt/decrypt tests with signature:
> >
> >This is mainly a problem for "content" mode encryption.
> >AFAIK, during encryption XMLCipher creates a document fragment
> >with the content, serializes and encrypts it. Decryption
> >is reverse. After decryption XMLCipher first removes
> >(or shall remove) all child-nodes of the element e.g. 
> >CreditCard, then puts in the nodes of the document 
> >fragment (effectivly restores the original content).
> >
> I looked at the code again and  don't think it's happening this way. 
> Only a replace child operation is being done (all child nodes are not 
> being removed). I am looking at the XMLCipher.decryptElement() method.
> 
> Please correct me if I am wrong.
> 
> Thanks,
> 
> Vishal
> 
> >
> >Thus, IMHO, there is no problem with Signature/Encrypt.
> >During our test we already did tests signature/encryption
> >in content mode.
> >
> >
> >Regards,
> >Werner
> >
> >  
> >
> >>-----Ursprüngliche Nachricht-----
> >>Von: Vishal Mahajan [mailto:[EMAIL PROTECTED] 
> >>Gesendet: Mittwoch, 11. Februar 2004 08:35
> >>An: [EMAIL PROTECTED]
> >>Betreff: Re: Problem in Decryption
> >>
> >>
> >>Hi Berin,
> >>
> >>I agree with your reading of the spec. But, the spec does 
> not prevent 
> >>the encrypter from putting whitespaces between the tags of 
> >>EncryptedData 
> >>and its parent node. Also there are example encrypted 
> >>documents like the 
> >>following in the spec:
> >>
> >>      <EncryptedData xmlns='http://www.w3.org/2001/04/xmlenc#'
> >>       Type='http://www.w3.org/2001/04/xmlenc#Content'>
> >>        <CipherData>
> >>          <CipherValue>A23B45C56</CipherValue>
> >>        </CipherData>
> >>      </EncryptedData>
> >>
> >>Other thing to note is that if the document was signed prior to 
> >>encryption, the signature verification would fail. I think 
> this is an 
> >>important interop issue. What do you think?
> >>
> >>Thanks,
> >>Vishal
> >>
> >>Berin Lautenbach wrote:
> >>
> >>    
> >>
> >>>Vishal,
> >>>
> >>>I ran accross this when I was doing the checks for the 
> Merlin Interop
> >>>examples - which have white space prior to the EncryptedData 
> >>>      
> >>>
> >>node, even
> >>    
> >>
> >>>when that node is of type "element content".  According to 
> >>>      
> >>>
> >>the spec (from
> >>    
> >>
> >>>section 4.2) :
> >>>#####################################
> >>>
> >>>"The decryptor SHOULD support the ability to replace the 
> >>>      
> >>>
> >>EncryptedData
> >>    
> >>
> >>>element with the decrypted 'element' or element 'content' 
> >>>      
> >>>
> >>represented by
> >>    
> >>
> >>>the UTF-8 encoded characters. The decryptor is NOT REQUIRED 
> >>>      
> >>>
> >>to perform
> >>    
> >>
> >>>validation on the result of this replacement operation."
> >>>######################################
> >>>
> >>>The key words for me were in the first sentance - "...replace the
> >>>EncryptedData element with the decrypted 'element' or element
> >>>'content'...".
> >>>There is no mention of the parent of the EncryptedData, or 
> any of the
> >>>surrounding nodes, so my reading is that the libraries (both 
> >>>      
> >>>
> >>the C++ and
> >>    
> >>
> >>>Java libraries have this behaviour) are doing the correct thing.
> >>>Happy to be corrected if someone can find something else 
> in the spec!
> >>>
> >>>Cheers,
> >>>    Berin
> >>>
> >>>
> >>> 
> >>>
> >>>      
> >>>
> >>>>Hi All,
> >>>>
> >>>>I think there is a problem in the decryption process of the 
> >>>>        
> >>>>
> >>XMLCipher
> >>    
> >>
> >>>>class. To put the problem across, here's my question:
> >>>>
> >>>>If there is some whitespace between the tags of 
> >>>>        
> >>>>
> >>EncryptedData and its
> >>    
> >>
> >>>>parent (See the example below) and the Type attribute of the
> >>>>EncryptedData corresponds to "element content", then the current
> >>>>implementation simply replaces the EncryptedData with the 
> decrypted
> >>>>DocumentFragment. Shouldn't it first remove the existing contents
> >>>>(whitespace, etc) of the parent node of EncryptedData and 
> then do an
> >>>>appendChild(DocumentFragment) on the parent?
> >>>>
> >>>> <CreditCard Limit='5,000' Currency='USD'>
> >>>>   <EncryptedData xmlns='http://www.w3.org/2001/04/xmlenc#'
> >>>>    Type='http://www.w3.org/2001/04/xmlenc#Content'>
> >>>>     <CipherData>
> >>>>       <CipherValue>A23B45C56</CipherValue>
> >>>>     </CipherData>
> >>>>   </EncryptedData>
> >>>> </CreditCard>
> >>>>
> >>>>If this is accepted as a bug, I even have a patch for it.
> >>>>        
> >>>>
> >>Should I also
> >>    
> >>
> >>>>raise a bugzilla?
> >>>>
> >>>>Thanks,
> >>>>Vishal
> >>>>   
> >>>>
> >>>>        
> >>>>
> >>>
> >>> 
> >>>
> >>>      
> >>>
> >>    
> >>
> >
> >  
> >
> 
> 
> 

Reply via email to