Hi, Vishal 
        I have another question , that is when I get the CipherValue of 
wrappedKey , I use org.apache.util.BASE64 to decode it to bytes , then 
Cipher.unwrap(wrappedKey, Alg, Cipher.SECRET) ,it throw a InvalidKeyException . 
When I use other BASE64 implementation to do that , the exception didn't  
appear. 


thanks
Rio
  ----- Original Message ----- 
  From: Rio 
  To: security-dev@xml.apache.org 
  Sent: Thursday, September 27, 2007 1:59 PM
  Subject: Re: About Wrap Key


  Hi
      yes, I didn't use the IV for my test case
    ----- Original Message ----- 
    From: Vishal Mahajan 
    To: security-dev@xml.apache.org 
    Sent: Thursday, September 27, 2007 1:55 PM
    Subject: Re: About Wrap Key


    When using TripleDES the resulting cipher text is prefixed by an 
Initialization Vector (IV) which is probably different for the two different 
wrap operations. Did you try and unwrap/decrypt the wrapped key in the two 
cases and see if that results back in the same key?

    Vishal

    on 09/26/2007 5:36 PM Rio wrote:


      Hi,
              I found a problem as follows

              Key toBeWrappedKey = Generator("DESede", 168);       
              Key wrapKey = Generator("DESede", 112);   


              Cipher cipher = Cipher.getInstance("DESede/CBC/ISO10126Padding");
              cipher.init(Cipher.WRAP_MODE, wrapKey);
              byte[] wrappedKey = cipher.wrap(toBeWrappedKey);
              System.out.println(new String(wrappedKey));  // result 1
           
              
              XMLCipher xcipher = XMLCipher.getInstance(XMLCipher.TRIPLEDES);
              xcipher.init(XMLCipher.WRAP_MODE, wrapKey);
              EncryptedKey ek = xcipher.encryptKey(getEncryptedData(), 
toBeWrappedKey);
              byte[] wrappedKey2 = 
Base64.decode(ek.getCipherData().getCipherValue().getValue().getBytes());
              System.out.println(new String(wrappedKey2));   // result 2



              Why the 2 results are different ?


      Thanks



Reply via email to