Class PdfEncryption


  • public class PdfEncryption
    extends java.lang.Object
    • Field Detail

      • STANDARD_ENCRYPTION_128

        public static final int STANDARD_ENCRYPTION_128
        See Also:
        Constant Field Values
      • pad

        private static final byte[] pad
      • salt

        private static final byte[] salt
      • metadataPad

        private static final byte[] metadataPad
      • key

        byte[] key
        The encryption key for a particular object/generation
      • keySize

        int keySize
        The encryption key length for a particular object/generation
      • mkey

        byte[] mkey
        The global encryption key
      • extra

        byte[] extra
        Work area to prepare the object/generation bytes
      • md5

        java.security.MessageDigest md5
        The message digest algorithm MD5
      • ownerKey

        byte[] ownerKey
        The encryption key for the owner
      • userKey

        byte[] userKey
        The encryption key for the user
      • permissions

        int permissions
        The public key security handler for certificate encryption
      • documentID

        byte[] documentID
      • seq

        static long seq
      • revision

        private int revision
      • keyLength

        private int keyLength
        The generic key length. It may be 40 or 128.
      • encryptMetadata

        private boolean encryptMetadata
      • embeddedFilesOnly

        private boolean embeddedFilesOnly
      • cryptoMode

        private int cryptoMode
      • state

        byte[] state
      • x

        int x
      • y

        int y
    • Constructor Detail

      • PdfEncryption

        public PdfEncryption()
    • Method Detail

      • setCryptoMode

        public void setCryptoMode​(int mode,
                                  int kl)
      • getCryptoMode

        public int getCryptoMode()
      • isMetadataEncrypted

        public boolean isMetadataEncrypted()
      • isEmbeddedFilesOnly

        public boolean isEmbeddedFilesOnly()
        Indicates if only the embedded files have to be encrypted.
        Returns:
        if true only the embedded files will be encrypted
        Since:
        2.1.3
      • padPassword

        private byte[] padPassword​(byte[] userPassword)
      • computeOwnerKey

        private byte[] computeOwnerKey​(byte[] userPad,
                                       byte[] ownerPad)
      • setupGlobalEncryptionKey

        private void setupGlobalEncryptionKey​(byte[] documentID,
                                              byte[] userPad,
                                              byte[] ownerKey,
                                              int permissions)
        ownerKey, documentID must be setup
      • setupUserKey

        private void setupUserKey()
        mkey must be setup
      • setupAllKeys

        public void setupAllKeys​(byte[] userPassword,
                                 byte[] ownerPassword,
                                 int permissions)
      • createDocumentId

        public static byte[] createDocumentId()
      • setupByUserPassword

        public void setupByUserPassword​(byte[] documentID,
                                        byte[] userPassword,
                                        byte[] ownerKey,
                                        int permissions)
      • setupByUserPad

        private void setupByUserPad​(byte[] documentID,
                                    byte[] userPad,
                                    byte[] ownerKey,
                                    int permissions)
      • setupByOwnerPassword

        public void setupByOwnerPassword​(byte[] documentID,
                                         byte[] ownerPassword,
                                         byte[] userKey,
                                         byte[] ownerKey,
                                         int permissions)
      • setupByOwnerPad

        private void setupByOwnerPad​(byte[] documentID,
                                     byte[] ownerPad,
                                     byte[] userKey,
                                     byte[] ownerKey,
                                     int permissions)
      • setupByEncryptionKey

        public void setupByEncryptionKey​(byte[] key,
                                         int keylength)
      • setHashKey

        public void setHashKey​(int number,
                               int generation)
      • createInfoId

        public static PdfObject createInfoId​(byte[] id)
      • getEncryptionDictionary

        public PdfDictionary getEncryptionDictionary()
      • calculateStreamSize

        public int calculateStreamSize​(int n)
      • encryptByteArray

        public byte[] encryptByteArray​(byte[] b)
      • decryptByteArray

        public byte[] decryptByteArray​(byte[] b)
      • computeUserPassword

        public byte[] computeUserPassword​(byte[] ownerPassword)
      • prepareKey

        public void prepareKey()
      • prepareRC4Key

        public void prepareRC4Key​(byte[] kk)
      • prepareRC4Key

        public void prepareRC4Key​(byte[] kk,
                                  int off,
                                  int len)
      • encryptRC4

        public void encryptRC4​(byte[] dataIn,
                               int off,
                               int len,
                               byte[] dataOut)
      • encryptRC4

        public void encryptRC4​(byte[] data,
                               int off,
                               int len)
      • encryptRC4

        public void encryptRC4​(byte[] dataIn,
                               byte[] dataOut)
      • encryptRC4

        public void encryptRC4​(byte[] data)