Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.pdfbox.pdmodel.encryption
Class PDEncryptionDictionary

    java.lang.Object
      org.pdfbox.pdmodel.encryption.PDEncryptionDictionary

Direct Known Subclasses:
  PDStandardEncryption

public class PDEncryptionDictionary
extends Object

This class is a specialized view of the encryption dictionary of a PDF document. It contains a low level dictionary (COSDictionary) and provides the methods to manage its fields. The available fields are the ones who are involved by standard security handler and public key security handler.

Version:
  $Revision: 1.7 $
Author:
  Ben Litchfield, Benoit Guillon (benoit.guillon@snv.jussieu.fr)

Field Summary
`static int` | `DEFAULT_LENGTH` The default length for the encryption key.
`static String` | `DEFAULT_NAME` The default security handler.
`static int` | `DEFAULT_VERSION` The default version, according to the PDF Reference.
`protected COSDictionary` | `encryptionDictionary` COS encryption dictionary.
`static int` | `VERSION0_UNDOCUMENTED_UNSUPPORTED` See PDF Reference 1.4 Table 3.13.
`static int` | `VERSION1_40_BIT_ALGORITHM` See PDF Reference 1.4 Table 3.13.
`static int` | `VERSION2_VARIABLE_LENGTH_ALGORITHM` See PDF Reference 1.4 Table 3.13.
`static int` | `VERSION3_UNPUBLISHED_ALGORITHM` See PDF Reference 1.4 Table 3.13.
`static int` | `VERSION4_SECURITY_HANDLER` See PDF Reference 1.4 Table 3.13.

Constructor Summary
`PDEncryptionDictionary()` creates a new empty encryption dictionary.
`PDEncryptionDictionary(COSDictionary d)` creates a new encryption dictionary from the low level dictionary provided.

Method Summary
`COSDictionary` | `getCOSDictionary()` This will get the dictionary associated with this encryption dictionary.
`String` | `getFilter()` Get the name of the filter.
`int` | `getLength()` This will return the Length entry of the encryption dictionary.
`byte[]` | `getOwnerKey()` This will get the O entry in the standard encryption dictionary.
`int` | `getPermissions()` This will get the permissions bit mask.
`int` | `getRecipientsLength()` Returns the number of recipients contained in the Recipients field of the dictionary.
`COSString` | `getRecipientStringAt(int i)` returns the COSString contained in the Recipients field at position i.
`int` | `getRevision()` This will return the R entry of the encryption dictionary.
`byte[]` | `getUserKey()` This will get the U entry in the standard encryption dictionary.
`int` | `getVersion()` This will return the V entry of the encryption dictionary.
`void` | `setFilter(String filter)` Sets the filter entry of the encryption dictionary.
`void` | `setLength(int length)` This will set the number of bits to use for the encryption algorithm.
`void` | `setOwnerKey(byte[] o)` This will set the O entry in the standard encryption dictionary.
`void` | `setPermissions(int permissions)` This will set the permissions bit mask.
`void` | `setRecipients(byte[][] recipients)` This will set the Recipients field of the dictionary.
`void` | `setRevision(int revision)` This will set the R entry of the encryption dictionary.
`void` | `setSubFilter(String subfilter)` Set the subfilter entry of the encryption dictionary.
`void` | `setUserKey(byte[] u)` This will set the U entry in the standard encryption dictionary.
`void` | `setVersion(int version)` This will set the V entry of the encryption dictionary.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### VERSION0_UNDOCUMENTED_UNSUPPORTED

    public static final int VERSION0_UNDOCUMENTED_UNSUPPORTED

  See PDF Reference 1.4 Table 3.13.

  See Also:
    Constant Field Values

### VERSION1_40_BIT_ALGORITHM

    public static final int VERSION1_40_BIT_ALGORITHM

  See PDF Reference 1.4 Table 3.13.

  See Also:
    Constant Field Values

### VERSION2_VARIABLE_LENGTH_ALGORITHM

    public static final int VERSION2_VARIABLE_LENGTH_ALGORITHM

  See PDF Reference 1.4 Table 3.13.

  See Also:
    Constant Field Values

### VERSION3_UNPUBLISHED_ALGORITHM

    public static final int VERSION3_UNPUBLISHED_ALGORITHM

  See PDF Reference 1.4 Table 3.13.

  See Also:
    Constant Field Values

### VERSION4_SECURITY_HANDLER

    public static final int VERSION4_SECURITY_HANDLER

  See PDF Reference 1.4 Table 3.13.

  See Also:
    Constant Field Values

### DEFAULT_NAME

    public static final String DEFAULT_NAME

  The default security handler.

  See Also:
    Constant Field Values

### DEFAULT_LENGTH

    public static final int DEFAULT_LENGTH

  The default length for the encryption key.

  See Also:
    Constant Field Values

### DEFAULT_VERSION

    public static final int DEFAULT_VERSION

  The default version, according to the PDF Reference.

  See Also:
    Constant Field Values

### encryptionDictionary

    protected COSDictionary encryptionDictionary

  COS encryption dictionary.

Constructor Detail

### PDEncryptionDictionary

    public PDEncryptionDictionary()

  creates a new empty encryption dictionary.

### PDEncryptionDictionary

    public PDEncryptionDictionary(COSDictionary d)

  creates a new encryption dictionary from the low level dictionary provided.

Parameters:
  `d` - the low level dictionary that will be managed by the newly created object

Method Detail

### getCOSDictionary

    public COSDictionary getCOSDictionary()

  This will get the dictionary associated with this encryption dictionary.

  Returns:
    The COS dictionary that this object wraps.

### setFilter

    public void setFilter(String filter)

  Sets the filter entry of the encryption dictionary.

  Parameters:
    `filter` - The filter name.

### getFilter

    public String getFilter()

  Get the name of the filter.

  Returns:
    The filter name contained in this encryption dictionary.

### setSubFilter

    public void setSubFilter(String subfilter)

  Set the subfilter entry of the encryption dictionary.

  Parameters:
    `subfilter` - The value of the subfilter field.

### setVersion

    public void setVersion(int version)

  This will set the V entry of the encryption dictionary.
  See PDF Reference 1.4 Table 3.13.
  Note: This value is used to decrypt the pdf document. If you change this when the document is encrypted then decryption will fail!.

  Parameters:
    `version` - The new encryption version.

### getVersion

    public int getVersion()

  This will return the V entry of the encryption dictionary.
  See PDF Reference 1.4 Table 3.13.

  Returns:
    The encryption version to use.

### setLength

    public void setLength(int length)

  This will set the number of bits to use for the encryption algorithm.

  Parameters:
    `length` - The new key length.

### getLength

    public int getLength()

  This will return the Length entry of the encryption dictionary.
  The length in bits for the encryption algorithm. This will return a multiple of 8.

  Returns:
    The length in bits for the encryption algorithm

### setRevision

    public void setRevision(int revision)

  This will set the R entry of the encryption dictionary.
  See PDF Reference 1.4 Table 3.14.
  Note: This value is used to decrypt the pdf document. If you change this when the document is encrypted then decryption will fail!.

  Parameters:
    `revision` - The new encryption version.

### getRevision

    public int getRevision()

  This will return the R entry of the encryption dictionary.
  See PDF Reference 1.4 Table 3.14.

  Returns:
    The encryption revision to use.

### setOwnerKey

    public void setOwnerKey(byte[] o)
                     throws IOException

  This will set the O entry in the standard encryption dictionary.

  Parameters:
    `o` - A 32 byte array or null if there is no owner key.
  Throws:
    `IOException` - If there is an error setting the data.

### getOwnerKey

    public byte[] getOwnerKey()
                       throws IOException

  This will get the O entry in the standard encryption dictionary.

  Returns:
    A 32 byte array or null if there is no owner key.
  Throws:
    `IOException` - If there is an error accessing the data.

### setUserKey

    public void setUserKey(byte[] u)
                    throws IOException

  This will set the U entry in the standard encryption dictionary.

  Parameters:
    `u` - A 32 byte array.
  Throws:
    `IOException` - If there is an error setting the data.

### getUserKey

    public byte[] getUserKey()
                      throws IOException

  This will get the U entry in the standard encryption dictionary.

  Returns:
    A 32 byte array or null if there is no user key.
  Throws:
    `IOException` - If there is an error accessing the data.

### setPermissions

    public void setPermissions(int permissions)

  This will set the permissions bit mask.

  Parameters:
    `permissions` - The new permissions bit mask

### getPermissions

    public int getPermissions()

  This will get the permissions bit mask.

  Returns:
    The permissions bit mask.

### setRecipients

    public void setRecipients(byte[][] recipients)
                       throws IOException

  This will set the Recipients field of the dictionary. This field contains an array of string.

  Parameters:
    `recipients` - the array of bytes arrays to put in the Recipients field.
  Throws:
    `IOException` - If there is an error setting the data.

### getRecipientsLength

    public int getRecipientsLength()

  Returns the number of recipients contained in the Recipients field of the dictionary.

  Returns:
    the number of recipients contained in the Recipients field.

### getRecipientStringAt

    public COSString getRecipientStringAt(int i)

  returns the COSString contained in the Recipients field at position i.

  Parameters:
    `i` - the position in the Recipients field array.
  Returns:
    a COSString object containing information about the recipient number i.

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD