[ 
https://issues.apache.org/jira/browse/PDFBOX-2936?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Tilman Hausherr resolved PDFBOX-2936.
-------------------------------------
    Resolution: Fixed

Here's what's happening:
PreflightParser.initialParse() first calls the super method and then searches 
for objects that haven't been parsed. In this case, it is "6813 0 obj". That is 
a weird one: it identical to "6883 0 obj". "6883 0 obj" is not decrypted 
because it is part of the encryption dictionary "6884 0 obj". However "6813 0 
obj" is not referenced anywhere. My change prevents such a dictionary to be 
decrypted. Your files are still not PDF/A, but you'll get a less annoying 
output.

> javax.crypto.BadPaddingException: Given final block not properly padded
> -----------------------------------------------------------------------
>
>                 Key: PDFBOX-2936
>                 URL: https://issues.apache.org/jira/browse/PDFBOX-2936
>             Project: PDFBox
>          Issue Type: Bug
>          Components: Crypto, Preflight
>    Affects Versions: 1.8.10, 1.8.11, 2.0.0
>         Environment: java version "1.8.0_25"
> Java(TM) SE Runtime Environment (build 1.8.0_25-b17)
> Java HotSpot(TM) 64-Bit Server VM (build 25.25-b02, mixed mode)
>            Reporter: Daniel Woelfel
>            Assignee: Tilman Hausherr
>         Attachments: i-129.pdf
>
>
> I get the following stack trace when trying to parse certain pdfs:
> {noformat}
> org.apache.pdfbox.preflight.exception.SyntaxValidationException
>         at 
> org.apache.pdfbox.preflight.parser.PreflightParser.parse(PreflightParser.java:203)
>         at 
> org.apache.pdfbox.preflight.parser.PreflightParser.parse(PreflightParser.java:180)
>         at 
> org.apache.pdfbox.preflight.parser.PreflightParser.parse(PreflightParser.java:168)
>         at PDFBoxTest.main(hello.java:11)
> Caused by: org.apache.pdfbox.exceptions.WrappedIOException
>         at 
> org.apache.pdfbox.pdmodel.encryption.SecurityHandler.encryptData(SecurityHandler.java:376)
>         at 
> org.apache.pdfbox.pdmodel.encryption.SecurityHandler.decryptString(SecurityHandler.java:578)
>         at 
> org.apache.pdfbox.pdfparser.NonSequentialPDFParser.decryptString(NonSequentialPDFParser.java:1571)
>         at 
> org.apache.pdfbox.pdfparser.NonSequentialPDFParser.decryptDictionary(NonSequentialPDFParser.java:1535)
>         at 
> org.apache.pdfbox.pdfparser.NonSequentialPDFParser.decrypt(NonSequentialPDFParser.java:1596)
>         at 
> org.apache.pdfbox.preflight.parser.PreflightParser.parseObjectDynamically(PreflightParser.java:797)
>         at 
> org.apache.pdfbox.pdfparser.NonSequentialPDFParser.parseObjectDynamically(NonSequentialPDFParser.java:1343)
>         at 
> org.apache.pdfbox.preflight.parser.PreflightParser.initialParse(PreflightParser.java:273)
>         at 
> org.apache.pdfbox.pdfparser.NonSequentialPDFParser.parse(NonSequentialPDFParser.java:886)
>         at 
> org.apache.pdfbox.preflight.parser.PreflightParser.parse(PreflightParser.java:198)
>         ... 3 more
> Caused by: javax.crypto.BadPaddingException: Given final block not properly 
> padded
>         at com.sun.crypto.provider.CipherCore.doFinal(CipherCore.java:966)
>         at com.sun.crypto.provider.CipherCore.doFinal(CipherCore.java:824)
>         at com.sun.crypto.provider.AESCipher.engineDoFinal(AESCipher.java:436)
>         at javax.crypto.Cipher.doFinal(Cipher.java:2004)
>         at 
> org.apache.pdfbox.pdmodel.encryption.SecurityHandler.encryptData(SecurityHandler.java:352)
>         ... 12 more
> {noformat}
> The parsing code looks something like:
> {noformat}
> FileDataSource fd = new FileDataSource("i-129.pdf");
> PreflightParser parser = new PreflightParser(fd);
> parser.parse();
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to