public abstract class SecurityHandler extends Object
Modifier and Type | Field and Description |
---|---|
protected byte[] |
encryptionKey
The encryption key that will used to encrypt / decrypt.
|
protected int |
keyLength
The length in bits of the secret key used to encrypt the document.
|
Constructor and Description |
---|
SecurityHandler() |
Modifier and Type | Method and Description |
---|---|
void |
decrypt(COSBase obj,
long objNum,
long genNum)
This will dispatch to the correct method.
|
void |
decryptStream(COSStream stream,
long objNum,
long genNum)
This will decrypt a stream.
|
protected void |
encryptDataRC4(byte[] finalKey,
byte[] input,
OutputStream output)
Encrypt or decrypt data with RC4.
|
protected void |
encryptDataRC4(byte[] finalKey,
InputStream input,
OutputStream output)
Encrypt or decrypt data with RC4.
|
void |
encryptStream(COSStream stream,
long objNum,
int genNum)
This will encrypt a stream, but not the dictionary as the dictionary is
encrypted by visitFromString() in COSWriter and we don't want to encrypt
it twice.
|
void |
encryptString(COSString string,
long objNum,
int genNum)
This will encrypt a string.
|
AccessPermission |
getCurrentAccessPermission()
Returns the access permissions that were computed during document decryption.
|
int |
getKeyLength()
Getter of the property keyLength.
|
abstract boolean |
hasProtectionPolicy()
Returns whether a protection policy has been set.
|
boolean |
isAES()
True if AES is used for encryption and decryption.
|
abstract void |
prepareDocumentForEncryption(PDDocument doc)
Prepare the document for encryption.
|
abstract void |
prepareForDecryption(PDEncryption encryption,
COSArray documentIDArray,
DecryptionMaterial decryptionMaterial)
Prepares everything to decrypt the document.
|
void |
setAES(boolean aesValue)
Set to true if AES for encryption and decryption should be used.
|
void |
setCurrentAccessPermission(AccessPermission currentAccessPermission)
Sets the access permissions.
|
protected void |
setDecryptMetadata(boolean decryptMetadata)
Set wether to decrypt meta data.
|
void |
setKeyLength(int keyLen)
Setter of the property keyLength.
|
protected int keyLength
protected byte[] encryptionKey
protected void setDecryptMetadata(boolean decryptMetadata)
decryptMetadata
- true if meta data has to be decrypted.public abstract void prepareDocumentForEncryption(PDDocument doc) throws IOException
doc
- The document that will be encrypted.IOException
- If there is an error with the document.public abstract void prepareForDecryption(PDEncryption encryption, COSArray documentIDArray, DecryptionMaterial decryptionMaterial) throws InvalidPasswordException, IOException
encryption
- encryption dictionary, can be retrieved via PDDocument.getEncryption()
documentIDArray
- document id which is returned via COSDocument.getDocumentID()
decryptionMaterial
- Information used to decrypt the document.InvalidPasswordException
- If the password is incorrect.IOException
- If there is an error accessing data.protected void encryptDataRC4(byte[] finalKey, InputStream input, OutputStream output) throws IOException
finalKey
- The final key obtained with via calcFinalKey(long, long)
.input
- The data to encrypt.output
- The output to write the encrypted data to.IOException
- If there is an error reading the data.protected void encryptDataRC4(byte[] finalKey, byte[] input, OutputStream output) throws IOException
finalKey
- The final key obtained with via calcFinalKey(long, long)
.input
- The data to encrypt.output
- The output to write the encrypted data to.IOException
- If there is an error reading the data.public void decrypt(COSBase obj, long objNum, long genNum) throws IOException
obj
- The object to decrypt.objNum
- The object number.genNum
- The object generation Number.IOException
- If there is an error getting the stream data.public void decryptStream(COSStream stream, long objNum, long genNum) throws IOException
stream
- The stream to decrypt.objNum
- The object number.genNum
- The object generation number.IOException
- If there is an error getting the stream data.public void encryptStream(COSStream stream, long objNum, int genNum) throws IOException
stream
- The stream to decrypt.objNum
- The object number.genNum
- The object generation number.IOException
- If there is an error getting the stream data.public void encryptString(COSString string, long objNum, int genNum) throws IOException
string
- the string to encrypt.objNum
- The object number.genNum
- The object generation number.IOException
- If an error occurs writing the new string.public int getKeyLength()
public void setKeyLength(int keyLen)
keyLen
- The keyLength to set.public void setCurrentAccessPermission(AccessPermission currentAccessPermission)
currentAccessPermission
- The access permissions to be set.public AccessPermission getCurrentAccessPermission()
public boolean isAES()
public void setAES(boolean aesValue)
aesValue
- if true AES will be usedpublic abstract boolean hasProtectionPolicy()
Copyright © 2002–2018 The Apache Software Foundation. All rights reserved.