com.sun.pdfview.decrypt

## Class PDFDecrypterFactory

- java.lang.Object
- - com.sun.pdfview.decrypt.PDFDecrypterFactory

    public class PDFDecrypterFactory
    extends java.lang.Object

Produces a `PDFDecrypter` for documents given a (possibly non-existent) Encrypt dictionary. Supports decryption of versions 1, 2 and 4 of the password-based encryption mechanisms as described in PDF Reference version 1.7. This means that it supports RC4 and AES encryption with keys of 40-128 bits; esentially, password-protected documents with compatibility up to Acrobat 8.

### Field Summary

Fields
`static java.lang.String` `CF_IDENTITY` The name of the standard Identity CryptFilter

### Constructor Summary

Constructors
Constructor and Description
`PDFDecrypterFactory()`

### Method Summary

Methods
`static PDFDecrypter` `createDecryptor(PDFObject encryptDict, PDFObject documentId, PDFPassword password)` Create a decryptor for a given encryption dictionary.

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

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

### Field Detail

#### CF_IDENTITY

    public static final java.lang.String CF_IDENTITY

The name of the standard Identity CryptFilter

See Also:
  Constant Field Values

### Constructor Detail

#### PDFDecrypterFactory

    public PDFDecrypterFactory()

### Method Detail

#### createDecryptor

    public static PDFDecrypter createDecryptor(PDFObject encryptDict,
                               PDFObject documentId,
                               PDFPassword password)
                                        throws java.io.IOException,
                                               EncryptionUnsupportedByPlatformException,
                                               EncryptionUnsupportedByProductException,
                                               PDFAuthenticationFailureException

Create a decryptor for a given encryption dictionary. A check is immediately performed that the supplied password decrypts content described by the encryption specification.

Parameters:
  `encryptDict` - the Encrypt dict as found in the document's trailer. May be null, in which case the `IdentityDecrypter` will be returned.
  `documentId` - the object with key "ID" in the trailer's dictionary. Should always be present if Encrypt is.
  `password` - the password to use; may be `null`
Returns:
  The decryptor that should be used for all encrypted data in the PDF
Throws:
  `java.io.IOException` - will typically be a `PDFParseException`, indicating an IO problem, an error in the structure of the document, or a failure to obtain various ciphers from the installed JCE providers
  `EncryptionUnsupportedByPlatformException` - if the encryption is not supported by the environment in which the code is executing
  `EncryptionUnsupportedByProductException` - if PDFRenderer does not currently support the specified encryption
  `PDFAuthenticationFailureException` - if the supplied password was not able to