Package org.alfresco.encryption
Class DefaultFallbackEncryptor
- java.lang.Object
-
- org.alfresco.encryption.DefaultFallbackEncryptor
-
- All Implemented Interfaces:
Encryptor
,FallbackEncryptor
public class DefaultFallbackEncryptor extends java.lang.Object implements FallbackEncryptor
The fallback encryptor provides a fallback mechanism for decryption, first using the default encryption keys and, if they fail (perhaps because they have been changed), falling back to a backup set of keys. Note that encryption will be performed only using the default encryption keys.- Since:
- 4.0
-
-
Constructor Summary
Constructors Constructor Description DefaultFallbackEncryptor()
DefaultFallbackEncryptor(Encryptor main, Encryptor fallback)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
backupKeyAvailable(java.lang.String keyAlias)
Is the backup key available in order to fall back to?java.security.AlgorithmParameters
decodeAlgorithmParameters(byte[] encoded)
Decodes encoded cipher algorithm parametersbyte[]
decrypt(java.lang.String keyAlias, java.security.AlgorithmParameters params, byte[] input)
Decrypt some bytesjava.io.InputStream
decrypt(java.lang.String keyAlias, java.security.AlgorithmParameters params, java.io.InputStream in)
Decrypt an input streamjava.lang.Object
decryptObject(java.lang.String keyAlias, java.security.AlgorithmParameters params, byte[] input)
Decrypt data as an objectPair<byte[],java.security.AlgorithmParameters>
encrypt(java.lang.String keyAlias, java.security.AlgorithmParameters params, byte[] input)
Encrypt some bytesPair<byte[],java.security.AlgorithmParameters>
encryptObject(java.lang.String keyAlias, java.security.AlgorithmParameters params, java.lang.Object input)
Encrypt an objectboolean
keyAvailable(java.lang.String keyAlias)
java.io.Serializable
sealObject(java.lang.String keyAlias, java.security.AlgorithmParameters params, java.io.Serializable input)
Convenience method to seal on object up cryptographically.void
setFallback(Encryptor fallback)
void
setMain(Encryptor main)
java.io.Serializable
unsealObject(java.lang.String keyAlias, java.io.Serializable input)
Convenience method to unseal on object sealed up cryptographically.
-
-
-
Method Detail
-
setFallback
public void setFallback(Encryptor fallback)
-
setMain
public void setMain(Encryptor main)
-
encrypt
public Pair<byte[],java.security.AlgorithmParameters> encrypt(java.lang.String keyAlias, java.security.AlgorithmParameters params, byte[] input)
Encrypt some bytes
-
decrypt
public byte[] decrypt(java.lang.String keyAlias, java.security.AlgorithmParameters params, byte[] input)
Decrypt some bytes
-
decrypt
public java.io.InputStream decrypt(java.lang.String keyAlias, java.security.AlgorithmParameters params, java.io.InputStream in)
Decrypt an input stream
-
encryptObject
public Pair<byte[],java.security.AlgorithmParameters> encryptObject(java.lang.String keyAlias, java.security.AlgorithmParameters params, java.lang.Object input)
Encrypt an object- Specified by:
encryptObject
in interfaceEncryptor
- Parameters:
keyAlias
- the encryption key aliasinput
- the object to write to bytes- Returns:
- the encrypted data and parameters used
-
decryptObject
public java.lang.Object decryptObject(java.lang.String keyAlias, java.security.AlgorithmParameters params, byte[] input)
Decrypt data as an object- Specified by:
decryptObject
in interfaceEncryptor
- Parameters:
keyAlias
- the encryption key aliasinput
- the data to decrypt- Returns:
- the unencrypted data deserialized
-
sealObject
public java.io.Serializable sealObject(java.lang.String keyAlias, java.security.AlgorithmParameters params, java.io.Serializable input)
Convenience method to seal on object up cryptographically. Note that the original object may be returned directly if there is no key associated with the alias.- Specified by:
sealObject
in interfaceEncryptor
- Parameters:
keyAlias
- the encryption key aliasinput
- the object to encrypt and seal- Returns:
- the sealed object that can be decrypted with the original key
-
unsealObject
public java.io.Serializable unsealObject(java.lang.String keyAlias, java.io.Serializable input) throws java.security.InvalidKeyException
Convenience method to unseal on object sealed up cryptographically. Note that the algorithm parameters not provided on the assumption that a symmetric key algorithm is in use - only the key is required for unsealing. Note that the original object may be returned directly if there is no key associated with the alias or if the input object is not aSealedObject
.- Specified by:
unsealObject
in interfaceEncryptor
- Parameters:
keyAlias
- the encryption key aliasinput
- the object to decrypt and unseal- Returns:
- the original unsealed object that was encrypted with the original key
- Throws:
java.security.InvalidKeyException
-
decodeAlgorithmParameters
public java.security.AlgorithmParameters decodeAlgorithmParameters(byte[] encoded)
Decodes encoded cipher algorithm parameters- Specified by:
decodeAlgorithmParameters
in interfaceEncryptor
- Parameters:
encoded
- the encoded cipher algorithm parameters- Returns:
- the decoded cipher algorithmParameters
-
keyAvailable
public boolean keyAvailable(java.lang.String keyAlias)
- Specified by:
keyAvailable
in interfaceEncryptor
-
backupKeyAvailable
public boolean backupKeyAvailable(java.lang.String keyAlias)
Is the backup key available in order to fall back to?- Specified by:
backupKeyAvailable
in interfaceFallbackEncryptor
- Returns:
- boolean
-
-