[
https://issues.apache.org/jira/browse/PDFBOX-3889?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16118938#comment-16118938
]
Tilman Hausherr commented on PDFBOX-3889:
-----------------------------------------
Here's the code I used:
{code}
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import org.apache.pdfbox.pdmodel.PDDocument;
public class PDFBox3889
{
public static void main(String[] args) throws MalformedURLException,
IOException
{
PDDocument doc = PDDocument.loadNonSeq(new
URL("https://issues.apache.org/jira/secure/attachment/12880876/14-03-1159.pdf").openStream(),
null);
System.out.println(doc.getNumberOfPages());
doc.close();
}
}
{code}
It outputs a warning and then 7.
Just to be sure - do you have the error when opening the file? Or when doing
something else?
> javax.crypto.BadPaddingException: Given final block not properly padded
> -----------------------------------------------------------------------
>
> Key: PDFBOX-3889
> URL: https://issues.apache.org/jira/browse/PDFBOX-3889
> Project: PDFBox
> Issue Type: Bug
> Components: Crypto
> Affects Versions: 1.8.13
> Environment: Java 1.8. Pdfbox 1.8.13 Windows and Linux
> Reporter: Lucille Wilson
> Labels: security
> Attachments: 14-03-1159.pdf
>
> Original Estimate: 24h
> Remaining Estimate: 24h
>
> Using the attached pdf, When running the pdf through
> org.apache.pdfbox.pdmodel.encryption.SecurityHandler I get
> BadPaddingException.
> The exception occurs when it is processing
> nextObj = COSObject{3304,0} I see: nextCOSBase =
> COSDictionary{(COSName{Length}:COSInt{3504}) (COSName{Subtype}:COSName{XML})
> (COSName{Type}:COSName{Metadata}) }
> The problem is that SecurityHandler.proceedDecryption() runs
> decryptObject(nextObj);
> and then decrypt(base, objNum, genNum) and then decryptStream()
> However for this object decryptStream doesn't actually decrypt anything
> because the type is xml.
> So when decryptStream calls encryptData() encryptData() throws the bad packet
> exception.
> output.write(decryptCipher.doFinal()); throws the exception because the data
> buffer is all zeros. It has nothing in it. I recommend that encryption be
> skipped if the data buffer has all zeros.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]