pdfbox-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Andreas Lehmkuehler <andr...@lehmi.de>
Subject Re: trouble decrypting pdf when using loadNonSeq
Date Tue, 29 Sep 2015 15:48:27 GMT
Hi,

Am 29.09.2015 um 13:17 schrieb Toel Hartmann:
> Hi,
>
> I am trying to decrypt a pdf from a customer using pdfbox and loadNonSeq:

Did you ever try to pass the password by using

loadNonSeq(File file, RandomAccess scratchFile, String password)

BR
Andreas

>
> In Acrobat the pfd (I could send a private link to the file) is reported as “Password
Security”:
> Security Method: Password Security
> Document Open Password: No
> Permissions Password: Yes
> Printing: High Resolution
> Changing the Document: Not Allowed
> Commenting: Not Allowed
> Form Field Fill-in or Signing: Not Allowed
> Document Assembly: Not Allowed
> Content Copying: Allowed
> Content Accessibility Enabled: Allowed
> Page Extraction: Not Allowed
> Encryption Level: High (128-bit AES)
>
> but when using the code:
>
> 	      File scratchFile = File.createTempFile("m3_", null);
>          FileInputStream fis = null;
>          PDDocument doc = null;
>          try {
>
>              RandomAccessFile scratch = new RandomAccessFile(scratchFile, "rw");
>              fis = new FileInputStream("build/test/file02.pdf");
>              doc = PDDocument.loadNonSeq(fis, scratch);
>              if (doc.isEncrypted()) {
>                  System.out.println("Pdf is encrypted!!!");
>                  StandardDecryptionMaterial sdm = new StandardDecryptionMaterial(THEPASSWORD);
>                  doc.openProtection(sdm);
>                  doc.save("build/test/file02_decrypted.pdf");
>              }
>          } catch (Exception e) {
>              e.printStackTrace(System.err);
>          } finally {
>              if (doc!=null) doc.close();
>              if (fis!=null) fis.close();
>              scratchFile.delete();
>          }
>
> using pdfbox 1.8.10 on osx running java 1.8.0_31 I got:
>
>
> org.apache.pdfbox.exceptions.WrappedIOException
> 	at org.apache.pdfbox.pdmodel.encryption.SecurityHandler.encryptData(SecurityHandler.java:372)
> 	at org.apache.pdfbox.pdmodel.encryption.SecurityHandler.decryptStream(SecurityHandler.java:476)
> 	at org.apache.pdfbox.pdmodel.encryption.SecurityHandler.decrypt(SecurityHandler.java:434)
> 	at org.apache.pdfbox.pdmodel.encryption.SecurityHandler.decryptObject(SecurityHandler.java:404)
> 	at org.apache.pdfbox.pdmodel.encryption.SecurityHandler.proceedDecryption(SecurityHandler.java:222)
> 	at org.apache.pdfbox.pdmodel.encryption.StandardSecurityHandler.decryptDocument(StandardSecurityHandler.java:158)
> 	at org.apache.pdfbox.pdmodel.PDDocument.openProtection(PDDocument.java:1609)
> ...
> Caused by: javax.crypto.IllegalBlockSizeException: Input length must be multiple of 16
when decrypting with padded cipher
> 	at com.sun.crypto.provider.CipherCore.doFinal(CipherCore.java:913)
> 	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)
> 	... 32 more
>
>
> If I change to  doc = PDDocument.load(fis);
> similar to the code found in Decrypt.java then it is working fine.
>
>
> /Toël
>
>
>
>


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@pdfbox.apache.org
For additional commands, e-mail: users-help@pdfbox.apache.org


Mime
View raw message