[
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: [email protected]
For additional commands, e-mail: [email protected]