[ https://issues.apache.org/jira/browse/PDFBOX-3889?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16120032#comment-16120032 ]
Lucille Wilson commented on PDFBOX-3889: ---------------------------------------- Your own code in SecurityHandler does the openProtection. This is my code. I will send you the password separately. import java.io.File; import java.io.FileInputStream; import java.io.InputStream; import org.apache.pdfbox.io.RandomAccess; import org.apache.pdfbox.pdmodel.PDDocument; import com.agencyport.turnstile.utils.PDDocumentWrapper; public class PDDocumentLoader { public static void main(String[] args) { File file = new File("C:\\TurnstileIssues\\UpgradeToJava18\\TurnstileClientChubb\\14-03-1159.pdf"); InputStream stream = null; PDDocument doc = null; RandomAccess raf = null; try { stream = new FileInputStream(file); String filePath = file.getAbsolutePath(); doc = PDDocument.loadNonSeq(file, raf); doc.decrypt("xxxxxx"); } catch (Exception e) { System.out.println(e.getMessage()); // org.apache.pdfbox.exceptions.WrappedIOException: Input length must be multiple of 16 when decrypting with padded cipher } } } > 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: dev-unsubscr...@pdfbox.apache.org For additional commands, e-mail: dev-h...@pdfbox.apache.org