[ 
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

Reply via email to