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.