Class AbstractEncryptor

  • All Implemented Interfaces:
    Encryptor
    Direct Known Subclasses:
    DefaultEncryptor

    public abstract class AbstractEncryptor
    extends Object
    implements Encryptor
    Basic support for encryption engines.
    Since:
    4.0
    • Field Detail

      • logger

        protected static final org.apache.commons.logging.Log logger
      • cipherAlgorithm

        protected String cipherAlgorithm
      • cipherProvider

        protected String cipherProvider
    • Constructor Detail

      • AbstractEncryptor

        protected AbstractEncryptor()
        Constructs with defaults
    • Method Detail

      • setKeyProvider

        public void setKeyProvider​(KeyProvider keyProvider)
        Parameters:
        keyProvider - provides encryption keys based on aliases
      • init

        public void init()
      • getCipher

        protected abstract Cipher getCipher​(String keyAlias,
                                            AlgorithmParameters params,
                                            int mode)
        Factory method to be written by implementations to construct and initialize physical ciphering objects.
        Parameters:
        keyAlias - the key alias
        params - algorithm-specific parameters
        mode - the cipher mode
        Returns:
        Cipher
      • resetCipher

        protected void resetCipher()
      • decrypt

        public byte[] decrypt​(String keyAlias,
                              AlgorithmParameters params,
                              byte[] input)
        Decrypt some bytes
        Specified by:
        decrypt in interface Encryptor
        Parameters:
        keyAlias - the encryption key alias
        input - the data to decrypt
        Returns:
        the unencrypted data
      • decryptObject

        public Object decryptObject​(String keyAlias,
                                    AlgorithmParameters params,
                                    byte[] input)
        Decrypt data as an object

        Decrypts and deserializes the input data

        Specified by:
        decryptObject in interface Encryptor
        Parameters:
        keyAlias - the encryption key alias
        input - the data to decrypt
        Returns:
        the unencrypted data deserialized
      • sealObject

        public Serializable sealObject​(String keyAlias,
                                       AlgorithmParameters params,
                                       Serializable input)
        Description copied from interface: Encryptor
        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 interface Encryptor
        Parameters:
        keyAlias - the encryption key alias
        input - the object to encrypt and seal
        Returns:
        the sealed object that can be decrypted with the original key
      • unsealObject

        public Serializable unsealObject​(String keyAlias,
                                         Serializable input)
                                  throws InvalidKeyException
        Description copied from interface: Encryptor
        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 a SealedObject.

        Specified by:
        unsealObject in interface Encryptor
        Parameters:
        keyAlias - the encryption key alias
        input - the object to decrypt and unseal
        Returns:
        the original unsealed object that was encrypted with the original key
        Throws:
        InvalidKeyException
      • setCipherAlgorithm

        public void setCipherAlgorithm​(String cipherAlgorithm)
      • getCipherAlgorithm

        public String getCipherAlgorithm()
      • setCipherProvider

        public void setCipherProvider​(String cipherProvider)
      • getCipherProvider

        public String getCipherProvider()
      • decodeAlgorithmParameters

        public AlgorithmParameters decodeAlgorithmParameters​(byte[] encoded)
        Decodes encoded cipher algorithm parameters
        Specified by:
        decodeAlgorithmParameters in interface Encryptor
        Parameters:
        encoded - the encoded cipher algorithm parameters
        Returns:
        the decoded cipher algorithmParameters