Class PublicKeySecurityHandler
- java.lang.Object
-
- org.apache.pdfbox.pdmodel.encryption.SecurityHandler
-
- org.apache.pdfbox.pdmodel.encryption.PublicKeySecurityHandler
-
public class PublicKeySecurityHandler extends SecurityHandler
This class implements the public key security handler described in the PDF specification. [PDF Spec 1.6 p104]- Version:
- $Revision: 1.3 $
- Author:
- Benoit Guillon (benoit.guillon@snv.jussieu.fr)
- See Also:
to see how to protect document with this security handler.
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
FILTER
The filter name.-
Fields inherited from class org.apache.pdfbox.pdmodel.encryption.SecurityHandler
currentAccessPermission, decryptMetadata, document, encryptionKey, keyLength, rc4, version
-
-
Constructor Summary
Constructors Constructor Description PublicKeySecurityHandler()
Constructor.PublicKeySecurityHandler(PublicKeyProtectionPolicy p)
Constructor used for encryption.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
decryptDocument(PDDocument doc, DecryptionMaterial decryptionMaterial)
Decrypt the document.boolean
hasProtectionPolicy()
Returns whether a protection policy has been set.void
prepareDocumentForEncryption(PDDocument doc)
Prepare the document for encryption.void
prepareForDecryption(PDEncryptionDictionary encDictionary, COSArray documentIDArray, DecryptionMaterial decryptionMaterial)
Prepares everything to decrypt the document.-
Methods inherited from class org.apache.pdfbox.pdmodel.encryption.SecurityHandler
decryptArray, decryptStream, decryptString, encryptData, encryptData, encryptStream, encryptString, getCurrentAccessPermission, getKeyLength, isAES, proceedDecryption, setAES, setKeyLength
-
-
-
-
Field Detail
-
FILTER
public static final java.lang.String FILTER
The filter name.- See Also:
- Constant Field Values
-
-
Constructor Detail
-
PublicKeySecurityHandler
public PublicKeySecurityHandler()
Constructor.
-
PublicKeySecurityHandler
public PublicKeySecurityHandler(PublicKeyProtectionPolicy p)
Constructor used for encryption.- Parameters:
p
- The protection policy.
-
-
Method Detail
-
decryptDocument
public void decryptDocument(PDDocument doc, DecryptionMaterial decryptionMaterial) throws CryptographyException, java.io.IOException
Decrypt the document.- Specified by:
decryptDocument
in classSecurityHandler
- Parameters:
doc
- The document to decrypt.decryptionMaterial
- The data used to decrypt the document.- Throws:
CryptographyException
- If there is an error during decryption.java.io.IOException
- If there is an error accessing data.
-
prepareForDecryption
public void prepareForDecryption(PDEncryptionDictionary encDictionary, COSArray documentIDArray, DecryptionMaterial decryptionMaterial) throws CryptographyException, java.io.IOException
Prepares everything to decrypt the document. IfdecryptDocument(PDDocument, DecryptionMaterial)
is used, this method is called from there. Only if decryption of single objects is needed this should be called instead.- Specified by:
prepareForDecryption
in classSecurityHandler
- Parameters:
encDictionary
- encryption dictionary, can be retrieved viaPDDocument.getEncryptionDictionary()
documentIDArray
- document id which is returned viaCOSDocument.getDocumentID()
(not used by this handler)decryptionMaterial
- Information used to decrypt the document.- Throws:
java.io.IOException
- If there is an error accessing data.CryptographyException
- If there is an error with decryption.
-
prepareDocumentForEncryption
public void prepareDocumentForEncryption(PDDocument doc) throws CryptographyException
Prepare the document for encryption.- Specified by:
prepareDocumentForEncryption
in classSecurityHandler
- Parameters:
doc
- The document that will be encrypted.- Throws:
CryptographyException
- If there is an error while encrypting.
-
hasProtectionPolicy
public boolean hasProtectionPolicy()
Returns whether a protection policy has been set.- Specified by:
hasProtectionPolicy
in classSecurityHandler
- Returns:
- true if a protection policy has been set.
-
-