Class PDFEncryption

java.lang.Object
org.apache.pdfbox.encryption.PDFEncryption

public final class PDFEncryption extends Object
Deprecated.
use the new security layer instead
This class will deal with PDF encryption algorithms.
Version:
$Revision: 1.15 $
Author:
Ben Litchfield
See Also:
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final byte[]
    Deprecated.
    The encryption padding defined in the PDF 1.4 Spec algorithm 3.2.
  • Constructor Summary

    Constructors
    Constructor
    Description
    Deprecated.
     
  • Method Summary

    Modifier and Type
    Method
    Description
    final byte[]
    computeEncryptedKey(byte[] password, byte[] o, int permissions, byte[] id, int revision, int length)
    Deprecated.
    This will compute the encrypted key.
    final byte[]
    computeOwnerPassword(byte[] ownerPassword, byte[] userPassword, int revision, int length)
    Deprecated.
    This algorithm is taked from PDF Reference 1.4 Algorithm 3.3 Page 79.
    final byte[]
    computeUserPassword(byte[] password, byte[] o, int permissions, byte[] id, int revision, int length)
    Deprecated.
    This will compute the user password hash.
    final void
    encryptData(long objectNumber, long genNumber, byte[] key, InputStream data, OutputStream output)
    Deprecated.
    This will encrypt a piece of data.
    final byte[]
    getUserPassword(byte[] ownerPassword, byte[] o, int revision, long length)
    Deprecated.
    This will get the user password from the owner password and the documents o value.
    final boolean
    isOwnerPassword(byte[] ownerPassword, byte[] u, byte[] o, int permissions, byte[] id, int revision, int length)
    Deprecated.
    This will tell if this is the owner password or not.
    final boolean
    isUserPassword(byte[] password, byte[] u, byte[] o, int permissions, byte[] id, int revision, int length)
    Deprecated.
    This will tell if this is a valid user password.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • ENCRYPT_PADDING

      public static final byte[] ENCRYPT_PADDING
      Deprecated.
      The encryption padding defined in the PDF 1.4 Spec algorithm 3.2.
  • Constructor Details

    • PDFEncryption

      public PDFEncryption()
      Deprecated.
  • Method Details

    • encryptData

      public final void encryptData(long objectNumber, long genNumber, byte[] key, InputStream data, OutputStream output) throws CryptographyException, IOException
      Deprecated.
      This will encrypt a piece of data.
      Parameters:
      objectNumber - The id for the object.
      genNumber - The generation id for the object.
      key - The key used to encrypt the data.
      data - The data to encrypt/decrypt.
      output - The stream to write to.
      Throws:
      CryptographyException - If there is an error encrypting the data.
      IOException - If there is an io error.
    • getUserPassword

      public final byte[] getUserPassword(byte[] ownerPassword, byte[] o, int revision, long length) throws CryptographyException, IOException
      Deprecated.
      This will get the user password from the owner password and the documents o value.
      Parameters:
      ownerPassword - The plaintext owner password.
      o - The document's o entry.
      revision - The document revision number.
      length - The length of the encryption.
      Returns:
      The plaintext padded user password.
      Throws:
      CryptographyException - If there is an error getting the user password.
      IOException - If there is an error reading data.
    • isOwnerPassword

      public final boolean isOwnerPassword(byte[] ownerPassword, byte[] u, byte[] o, int permissions, byte[] id, int revision, int length) throws CryptographyException, IOException
      Deprecated.
      This will tell if this is the owner password or not.
      Parameters:
      ownerPassword - The plaintext owner password.
      u - The U value from the PDF Document.
      o - The owner password hash.
      permissions - The document permissions.
      id - The document id.
      revision - The revision of the encryption.
      length - The length of the encryption key.
      Returns:
      true if the owner password matches the one from the document.
      Throws:
      CryptographyException - If there is an error while executing crypt functions.
      IOException - If there is an error while checking owner password.
    • isUserPassword

      public final boolean isUserPassword(byte[] password, byte[] u, byte[] o, int permissions, byte[] id, int revision, int length) throws CryptographyException, IOException
      Deprecated.
      This will tell if this is a valid user password. Algorithm 3.6 pg 80
      Parameters:
      password - The password to test.
      u - The U value from the PDF Document.
      o - The owner password hash.
      permissions - The document permissions.
      id - The document id.
      revision - The revision of the encryption.
      length - The length of the encryption key.
      Returns:
      true If this is the correct user password.
      Throws:
      CryptographyException - If there is an error computing the value.
      IOException - If there is an IO error while computing the owners password.
    • computeUserPassword

      public final byte[] computeUserPassword(byte[] password, byte[] o, int permissions, byte[] id, int revision, int length) throws CryptographyException, IOException
      Deprecated.
      This will compute the user password hash.
      Parameters:
      password - The plain text password.
      o - The owner password hash.
      permissions - The document permissions.
      id - The document id.
      revision - The revision of the encryption.
      length - The length of the encryption key.
      Returns:
      The user password.
      Throws:
      CryptographyException - If there is an error computing the user password.
      IOException - If there is an IO error.
    • computeEncryptedKey

      public final byte[] computeEncryptedKey(byte[] password, byte[] o, int permissions, byte[] id, int revision, int length) throws CryptographyException
      Deprecated.
      This will compute the encrypted key.
      Parameters:
      password - The password used to compute the encrypted key.
      o - The owner password hash.
      permissions - The permissions for the document.
      id - The document id.
      revision - The security revision.
      length - The length of the encryption key.
      Returns:
      The encryption key.
      Throws:
      CryptographyException - If there is an error computing the key.
    • computeOwnerPassword

      public final byte[] computeOwnerPassword(byte[] ownerPassword, byte[] userPassword, int revision, int length) throws CryptographyException, IOException
      Deprecated.
      This algorithm is taked from PDF Reference 1.4 Algorithm 3.3 Page 79.
      Parameters:
      ownerPassword - The plain owner password.
      userPassword - The plain user password.
      revision - The version of the security.
      length - The length of the document.
      Returns:
      The computed owner password.
      Throws:
      CryptographyException - If there is an error computing O.
      IOException - If there is an error computing O.