[ http://issues.apache.org/jira/browse/XMLRPC-88?page=all ]
     
Jochen Wiedmann closed XMLRPC-88:
---------------------------------

    Resolution: Invalid

I cannot see, why this would be an issue for Apache XML-RPC. I suggest using a 
forum on java.sun.com, or a mailing list related to encryption.

> org.apache.xml.security.encryption.XMLCipher.removeContent
> ----------------------------------------------------------
>
>          Key: XMLRPC-88
>          URL: http://issues.apache.org/jira/browse/XMLRPC-88
>      Project: XML-RPC
>         Type: Bug

>   Components: Releases
>     Versions: unspecified
>  Environment: OS:Windows 2000
> J2SE:1.5
> JRE:1.5.0_06
> Hardware: P-4 2.4 Ghz CPU, 2GB RAM. 
>     Reporter: Arpit Doshi
>     Priority: Blocker

>
> Hello,
> I am trying to encrypt a XML file using XMLCipher class. The size of the file 
> is almost 35 MB, while encrypting the XML file it throws this error after 
> around 3 minutes.
> The program works perfectly fine for file size of less than 5 MB. This is 
> very critical for our project and has to work as soon as possible.
> Eventually we are going to port the application on AIX5.3
> The piece of code I am using is:
> public void encryptData() throws EncryptionException
>       {
>               final String methodName = "encryptData";
>       
>               XMLCipher keyCipher,xmlCipher = null;
>               Document document = null;
>               String encryptedFileName = null;
>               Key symmetricKey = null;
>               Key keyEncryptKey = null;
>               boolean exceptionOccured = false;
>       
>               try 
>               {
>                       System.out.println("now parsing document");
>                       document=parseFile( fileToBeEncrypted );
>                       // generate symmetric key
>                       symmetricKey = GenerateSymmetricKey();
>                       
>                       // Get a key to be used for encrypting the symmetric key
>                       keyEncryptKey = GenerateKeyEncryptionKey();
>                       
>                       // Write the key to a file 
>                       //and pass the key and the name of file in which it has 
> to store the Key
>                       
> storeKeyFile(keyEncryptKey,getKeyFileName(fileToBeEncrypted.toString()));
>                       
>                       
>               
>                       // initialize cipher and operation mode is to wrap a key
>                       keyCipher 
> =XMLCipher.getInstance(XMLCipher.TRIPLEDES_KeyWrap);
>                       keyCipher.init(XMLCipher.WRAP_MODE, keyEncryptKey);
>               
>                       // encrypt symmetric key
>                       EncryptedKey encryptedKey =     
> keyCipher.encryptKey(document, symmetricKey);
>                       // specify the element to encrypt, ideally it will be 
> root element
>                       Element rootElement = document.getDocumentElement();
>                       
>                       Element elementToEncrypt = rootElement;
>                                                                         
>                  if (elementToEncrypt == null)
>                  {
>                         throw new EncryptionException("Element to Encrypt is 
> null since the filename may not be correct" +
>                                                       "or the file to be 
> encrypted may not be well formed" + 
>                                                       "Please check in File" 
> + "AMLFeederConfiguration.properties");
>                  }
>               
>                       
>               
>                       // initialize cipher for encrypting XML data using 
> operation mode of ENCRYPT_MODE
>                       xmlCipher = XMLCipher.getInstance(XMLCipher.TRIPLEDES);
>                       
>                       xmlCipher.init(XMLCipher.ENCRYPT_MODE, symmetricKey);
>                       
>               
>                       // add key info to encrypted data element, so that 
> within the encrypted data, 
>                       // there is also information about the key, that should 
> be used to decrypt the data 
>                       EncryptedData encryptedDataElement = 
> xmlCipher.getEncryptedData();
>                       KeyInfo keyInfo = new KeyInfo(document);
>                       keyInfo.add(encryptedKey);
>                       encryptedDataElement.setKeyInfo(keyInfo);
>               
> Problem is caused while calling doFinal()     // do the actual encryption
>                       boolean encryptContentsOnly = true;
>                       xmlCipher.doFinal(document, elementToEncrypt, 
> encryptContentsOnly);
>               
>                       //this will return xxxxx_e.xml
>                       encryptedFileName = 
> getEncryptedFileNameToWrite(fileToBeEncrypted.toString()); 
>                       // write the results to a file
>                       writeEncryptedDocToFile(document, encryptedFileName);
>                       this.encryptedFileName = encryptedFileName;
>               }
>               catch(FileNotFoundException fnfException){
>     
>               }
>               catch (ContentHandlerAlreadyRegisteredException e) {
>               }
>               catch(XMLEncryptionException xeException){
>               }
>               catch( EncryptionException encryptionException )
>               {
>               }
>               catch(Exception e){
>               }
>               finally{
>               
>                       if(exceptionOccured){
>                               moveToRejectedDir( this.fileToBeEncrypted );
>                               moveToRejectedDir( this.keyFile );   
>                       }
>                       document = null;
>                       symmetricKey = null;
>                       keyEncryptKey = null;
>                       xmlCipher = null;
>                       
>               }
>         
>       }
> The exception I am getting is:
> Exception in thread "main" java.lang.StackOverflowError
>         at org.apache.xerces.dom.ParentNode.internalRemoveChild(Unknown 
> Source)
>         at org.apache.xerces.dom.ParentNode.removeChild(Unknown Source)
>         at org.apache.xml.security.encryption.XMLCipher.removeContent(Unknown 
> So
> urce)
>         at org.apache.xml.security.encryption.XMLCipher.removeContent(Unknown 
> So
> urce)
>         at org.apache.xml.security.encryption.XMLCipher.removeContent(Unknown 
> So
> urce)
>         at org.apache.xml.security.encryption.XMLCipher.removeContent(Unknown 
> So
> urce)
>         at org.apache.xml.security.encryption.XMLCipher.removeContent(Unknown 
> So
> urce)
>         at org.apache.xml.security.encryption.XMLCipher.removeContent(Unknown 
> So
> urce)
>         at org.apache.xml.security.encryption.XMLCipher.removeContent(Unknown 
> So
> urce)
>         at org.apache.xml.security.encryption.XMLCipher.removeContent(Unknown 
> So
> urce)
>         at org.apache.xml.security.encryption.XMLCipher.removeContent(Unknown 
> So

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to