[ 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]