org.apache.pdfbox.pdmodel.encryption
Class PublicKeyProtectionPolicy

java.lang.Object
  extended by org.apache.pdfbox.pdmodel.encryption.ProtectionPolicy
      extended by org.apache.pdfbox.pdmodel.encryption.PublicKeyProtectionPolicy

public class PublicKeyProtectionPolicy
extends ProtectionPolicy

This class represents the protection policy to use to protect a document with the public key security handler as described in the PDF specification 1.6 p104. PDF documents are encrypted so that they can be decrypted by one or more recipients. Each recipient have its own access permission. The following code sample shows how to protect a document using the public key security handler. In this code sample, doc is a PDDocument object.

 PublicKeyProtectionPolicy policy = new PublicKeyProtectionPolicy();
 PublicKeyRecipient recip = new PublicKeyRecipient();
 AccessPermission ap = new AccessPermission();
 ap.setCanModify(false);
 recip.setPermission(ap);

 // load the recipient's certificate
 InputStream inStream = new FileInputStream(certificate_path);
 CertificateFactory cf = CertificateFactory.getInstance("X.509");
 X509Certificate certificate = (X509Certificate)cf.generateCertificate(inStream);
 inStream.close();

 recip.setX509(certificate); // set the recipient's certificate
 policy.addRecipient(recip);
 policy.setEncryptionKeyLength(128); // the document will be encrypted with 128 bits secret key
 doc.protect(policy);
 doc.save(out);
 

Version:
$Revision: 1.2 $
Author:
Benoit Guillon (benoit.guillon@snv.jussieu.fr)
See Also:
PDDocument.protect(ProtectionPolicy), AccessPermission, PublicKeyRecipient

Constructor Summary
PublicKeyProtectionPolicy()
          Constructor for encryption.
 
Method Summary
 void addRecipient(PublicKeyRecipient r)
          Adds a new recipient to the recipients list.
 X509Certificate getDecryptionCertificate()
          Getter of the property decryptionCertificate.
 Iterator getRecipientsIterator()
          Returns an iterator to browse the list of recipients.
 int getRecipientsNumber()
          Returns the number of recipients.
 boolean removeRecipient(PublicKeyRecipient r)
          Removes a recipient from the recipients list.
 void setDecryptionCertificate(X509Certificate aDecryptionCertificate)
          Setter of the property decryptionCertificate.
 
Methods inherited from class org.apache.pdfbox.pdmodel.encryption.ProtectionPolicy
getEncryptionKeyLength, setEncryptionKeyLength
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

PublicKeyProtectionPolicy

public PublicKeyProtectionPolicy()
Constructor for encryption. Just creates an empty recipients list.

Method Detail

addRecipient

public void addRecipient(PublicKeyRecipient r)
Adds a new recipient to the recipients list.

Parameters:
r - A new recipient.

removeRecipient

public boolean removeRecipient(PublicKeyRecipient r)
Removes a recipient from the recipients list.

Parameters:
r - The recipient to remove.
Returns:
true If a recipient was found and removed.

getRecipientsIterator

public Iterator getRecipientsIterator()
Returns an iterator to browse the list of recipients. Object found in this iterator are PublicKeyRecipient.

Returns:
The recipients list iterator.

getDecryptionCertificate

public X509Certificate getDecryptionCertificate()
Getter of the property decryptionCertificate.

Returns:
Returns the decryptionCertificate.

setDecryptionCertificate

public void setDecryptionCertificate(X509Certificate aDecryptionCertificate)
Setter of the property decryptionCertificate.

Parameters:
aDecryptionCertificate - The decryption certificate to set.

getRecipientsNumber

public int getRecipientsNumber()
Returns the number of recipients.

Returns:
The number of recipients.


Copyright © 2002-2010 The Apache Software Foundation. All Rights Reserved.