PublicKeySecurityHandler
, StandardSecurityHandler
public abstract class SecurityHandler
extends java.lang.Object
Modifier and Type | Field | 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 | Description |
---|---|
SecurityHandler() |
Modifier and Type | Method | 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,
java.io.OutputStream output) |
Encrypt or decrypt data with RC4.
|
protected void |
encryptDataRC4(byte[] finalKey,
java.io.InputStream input,
java.io.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 java.io.IOException
doc
- The document that will be encrypted.java.io.IOException
- If there is an error with the document.public abstract void prepareForDecryption(PDEncryption encryption, COSArray documentIDArray, DecryptionMaterial decryptionMaterial) throws InvalidPasswordException, java.io.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.java.io.IOException
- If there is an error accessing data.protected void encryptDataRC4(byte[] finalKey, java.io.InputStream input, java.io.OutputStream output) throws java.io.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.java.io.IOException
- If there is an error reading the data.protected void encryptDataRC4(byte[] finalKey, byte[] input, java.io.OutputStream output) throws java.io.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.java.io.IOException
- If there is an error reading the data.public void decrypt(COSBase obj, long objNum, long genNum) throws java.io.IOException
obj
- The object to decrypt.objNum
- The object number.genNum
- The object generation Number.java.io.IOException
- If there is an error getting the stream data.public void decryptStream(COSStream stream, long objNum, long genNum) throws java.io.IOException
stream
- The stream to decrypt.objNum
- The object number.genNum
- The object generation number.java.io.IOException
- If there is an error getting the stream data.public void encryptStream(COSStream stream, long objNum, int genNum) throws java.io.IOException
stream
- The stream to decrypt.objNum
- The object number.genNum
- The object generation number.java.io.IOException
- If there is an error getting the stream data.public void encryptString(COSString string, long objNum, int genNum) throws java.io.IOException
string
- the string to encrypt.objNum
- The object number.genNum
- The object generation number.java.io.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. All rights reserved.