Am 29.09.2015 um 18:08 schrieb Gilad Denneboom:
If you don't know the password then obviously you can't decrypt the file...
That's the point of the security policy that was applied to it.
Are you able to open the pdf using any other pdf reader? If the answer is yes, the password is most likely "". I agree with Gilad, if the answer is no.

BR
Andreas


On Tue, Sep 29, 2015 at 5:58 PM, Rodney Kite <[email protected]>
wrote:

No,  Where would I get the password?   Its a government document.

       From: Andreas Lehmkuehler <[email protected]>
  To: [email protected]
  Sent: Tuesday, September 29, 2015 11:48 AM
  Subject: Re: trouble decrypting pdf when using loadNonSeq

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








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

Reply via email to