public class PdfEncryption
extends java.lang.Object
Modifier and Type | Field and Description |
---|---|
(package private) byte[] |
documentID |
(package private) byte[] |
extra
Work area to prepare the object/generation bytes
|
(package private) byte[] |
key
The encryption key for a particular object/generation
|
(package private) int |
keySize
The encryption key length for a particular object/generation
|
(package private) java.security.MessageDigest |
md5
The message digest algorithm MD5
|
(package private) byte[] |
mkey
The global encryption key
|
(package private) byte[] |
ownerKey
The encryption key for the owner
|
(package private) static byte[] |
pad |
(package private) int |
permissions |
(package private) static long |
seq |
(package private) byte[] |
state |
(package private) byte[] |
userKey
The encryption key for the user
|
(package private) int |
x |
(package private) int |
y |
Constructor and Description |
---|
PdfEncryption() |
PdfEncryption(PdfEncryption enc) |
Modifier and Type | Method and Description |
---|---|
private byte[] |
computeOwnerKey(byte[] userPad,
byte[] ownerPad,
boolean strength128Bits) |
static byte[] |
createDocumentId() |
static PdfObject |
createInfoId(byte[] id) |
void |
encryptRC4(byte[] data) |
void |
encryptRC4(byte[] dataIn,
byte[] dataOut) |
void |
encryptRC4(byte[] data,
int off,
int len) |
void |
encryptRC4(byte[] dataIn,
int off,
int len,
byte[] dataOut) |
PdfDictionary |
getEncryptionDictionary() |
PdfObject |
getFileID() |
private byte[] |
padPassword(byte[] userPassword) |
void |
prepareKey() |
void |
prepareRC4Key(byte[] key) |
void |
prepareRC4Key(byte[] key,
int off,
int len) |
void |
setHashKey(int number,
int generation) |
void |
setupAllKeys(byte[] userPassword,
byte[] ownerPassword,
int permissions,
boolean strength128Bits) |
private void |
setupByOwnerPad(byte[] documentID,
byte[] ownerPad,
byte[] userKey,
byte[] ownerKey,
int permissions,
boolean strength128Bits) |
void |
setupByOwnerPassword(byte[] documentID,
byte[] ownerPassword,
byte[] userKey,
byte[] ownerKey,
int permissions,
boolean strength128Bits) |
private void |
setupByUserPad(byte[] documentID,
byte[] userPad,
byte[] ownerKey,
int permissions,
boolean strength128Bits) |
void |
setupByUserPassword(byte[] documentID,
byte[] userPassword,
byte[] ownerKey,
int permissions,
boolean strength128Bits) |
private void |
setupGlobalEncryptionKey(byte[] documentID,
byte[] userPad,
byte[] ownerKey,
int permissions,
boolean strength128Bits)
ownerKey, documentID must be setuped
|
private void |
setupUserKey()
mkey must be setuped
|
static final byte[] pad
byte[] state
int x
int y
byte[] key
int keySize
byte[] mkey
byte[] extra
java.security.MessageDigest md5
byte[] ownerKey
byte[] userKey
int permissions
byte[] documentID
static long seq
public PdfEncryption()
public PdfEncryption(PdfEncryption enc)
private byte[] padPassword(byte[] userPassword)
private byte[] computeOwnerKey(byte[] userPad, byte[] ownerPad, boolean strength128Bits)
private void setupGlobalEncryptionKey(byte[] documentID, byte[] userPad, byte[] ownerKey, int permissions, boolean strength128Bits)
private void setupUserKey()
public void setupAllKeys(byte[] userPassword, byte[] ownerPassword, int permissions, boolean strength128Bits)
public static byte[] createDocumentId()
public void setupByUserPassword(byte[] documentID, byte[] userPassword, byte[] ownerKey, int permissions, boolean strength128Bits)
private void setupByUserPad(byte[] documentID, byte[] userPad, byte[] ownerKey, int permissions, boolean strength128Bits)
public void setupByOwnerPassword(byte[] documentID, byte[] ownerPassword, byte[] userKey, byte[] ownerKey, int permissions, boolean strength128Bits)
private void setupByOwnerPad(byte[] documentID, byte[] ownerPad, byte[] userKey, byte[] ownerKey, int permissions, boolean strength128Bits)
public void prepareKey()
public void setHashKey(int number, int generation)
public static PdfObject createInfoId(byte[] id)
public PdfDictionary getEncryptionDictionary()
public void prepareRC4Key(byte[] key)
public void prepareRC4Key(byte[] key, int off, int len)
public void encryptRC4(byte[] dataIn, int off, int len, byte[] dataOut)
public void encryptRC4(byte[] data, int off, int len)
public void encryptRC4(byte[] dataIn, byte[] dataOut)
public void encryptRC4(byte[] data)
public PdfObject getFileID()