org.apache.pdfbox.pdmodel.encryption

## Class PublicKeyDecryptionMaterial

- java.lang.Object
- - org.apache.pdfbox.pdmodel.encryption.DecryptionMaterial
  - - org.apache.pdfbox.pdmodel.encryption.PublicKeyDecryptionMaterial

    public class PublicKeyDecryptionMaterial
    extends DecryptionMaterial

This class holds necessary information to decrypt a PDF document protected by the public key security handler. To decrypt such a document, we need:

- a valid X509 certificate which correspond to one of the recipient of the document
- the private key corresponding to this certificate
- the password to decrypt the private key if necessary

Author:
  Benoit Guillon

### Constructor Summary

Constructors
Constructor and Description
`PublicKeyDecryptionMaterial(KeyStore keystore, String a, String pwd)` Create a new public key decryption material.

### Method Summary

All Methods Instance Methods Concrete Methods
`X509Certificate` `getCertificate()` Returns the certificate contained in the keystore.
`String` `getPassword()` Returns the password given by the user and that will be used to open the private key.
`Key` `getPrivateKey()` returns The private key that will be used to open the document protection.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### PublicKeyDecryptionMaterial

    public PublicKeyDecryptionMaterial(KeyStore keystore,
                                       String a,
                                       String pwd)

Create a new public key decryption material.

Parameters:
  `keystore` - The keystore were the private key and the certificate are
  `a` - The alias of the private key and the certificate. If the keystore contains only 1 entry, this parameter can be left null.
  `pwd` - The password to extract the private key from the keystore.

### Method Detail

#### getCertificate

    public X509Certificate getCertificate()
                                   throws KeyStoreException

Returns the certificate contained in the keystore.

Returns:
  The certificate that will be used to try to open the document.
Throws:
  `KeyStoreException` - If there is an error accessing the certificate.

#### getPassword

    public String getPassword()

Returns the password given by the user and that will be used to open the private key.

Returns:
  The password.

#### getPrivateKey

    public Key getPrivateKey()
                      throws KeyStoreException

returns The private key that will be used to open the document protection.

Returns:
  The private key.
Throws:
  `KeyStoreException` - If there is an error accessing the key.