You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by le...@apache.org on 2014/11/23 15:09:40 UTC
svn commit: r1641183 -
/pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/Decrypt.java
Author: lehmi
Date: Sun Nov 23 14:09:39 2014
New Revision: 1641183
URL: http://svn.apache.org/r1641183
Log:
PDFBOX-2430: use the non-sequential parser
Modified:
pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/Decrypt.java
Modified: pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/Decrypt.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/Decrypt.java?rev=1641183&r1=1641182&r2=1641183&view=diff
==============================================================================
--- pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/Decrypt.java (original)
+++ pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/Decrypt.java Sun Nov 23 14:09:39 2014
@@ -19,19 +19,14 @@ package org.apache.pdfbox.tools;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
-import java.security.KeyStore;
+import java.io.InputStream;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.encryption.AccessPermission;
-import org.apache.pdfbox.pdmodel.encryption.DecryptionMaterial;
-import org.apache.pdfbox.pdmodel.encryption.PublicKeyDecryptionMaterial;
-import org.apache.pdfbox.pdmodel.encryption.StandardDecryptionMaterial;
/**
* This will read a document from the filesystem, decrypt it and and then write
- * the results to the filesystem. <br/><br/>
- *
- * usage: java org.apache.pdfbox.tools.Decrypt <password> <inputfile> <outputfile>
+ * the result to the filesystem.
*
* @author Ben Litchfield
*/
@@ -130,26 +125,17 @@ public class Decrypt
PDDocument document = null;
-
try
{
- document = PDDocument.loadLegacy( new File(infile) );
-
- if( document.isEncrypted() )
+ InputStream keyStoreStream = null;
+ if( keyStore != null )
+ {
+ keyStoreStream = new FileInputStream(keyStore);
+ }
+ document = PDDocument.load(new File(infile), password, keyStoreStream, alias);
+
+ if (document.isEncrypted())
{
- DecryptionMaterial decryptionMaterial = null;
- if( keyStore != null )
- {
- KeyStore ks = KeyStore.getInstance("PKCS12");
- ks.load(new FileInputStream(keyStore), password.toCharArray());
-
- decryptionMaterial = new PublicKeyDecryptionMaterial(ks, alias, password);
- }
- else
- {
- decryptionMaterial = new StandardDecryptionMaterial(password);
- }
- document.openProtection(decryptionMaterial);
AccessPermission ap = document.getCurrentAccessPermission();
if(ap.isOwnerPermission())
{
@@ -159,7 +145,7 @@ public class Decrypt
else
{
throw new IOException(
- "Error: You are only allowed to decrypt a document with the owner password." );
+ "Error: You are only allowed to decrypt a document with the owner password." );
}
}
else