Package io.lettuce.core.codec
Class CipherCodec
- java.lang.Object
-
- io.lettuce.core.codec.CipherCodec
-
public abstract class CipherCodec extends Object
A cryptoRedisCodec
that that allows transparent encryption/decryption of values. This codec usesCipher
instances provided byCipherCodec.CipherSupplier
to process encryption and decryption. This codec supports various encryption keys by encoding the key name and used key version in the value that is stored in Redis. The message format for encryption is:$<key name>+<key version>$<cipher text>
Each value is prefixed with the key message that is enclosed with dollar ($
) signs and using the plus sign (+
) to denote the key version. Decryption decodes the key name and requests aCipher
fromCipherCodec.CipherSupplier
to decrypt values with an appropriate key/Cipher
. Thiscodec
does not provide re-wrapping or key rotation features.- Since:
- 5.2
- Author:
- Mark Paluch
- See Also:
CipherCodec.CipherSupplier
,CipherCodec.KeyDescriptor
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interface
CipherCodec.CipherSupplier
Represents a supplier ofCipher
.static class
CipherCodec.KeyDescriptor
Descriptor to determine which crypto key to use.
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static <K,V>
RedisCodec<K,V>forValues(RedisCodec<K,V> delegate, CipherCodec.CipherSupplier encrypt, CipherCodec.CipherSupplier decrypt)
ARedisCodec
that compresses values from a delegatingRedisCodec
.
-
-
-
Method Detail
-
forValues
public static <K,V> RedisCodec<K,V> forValues(RedisCodec<K,V> delegate, CipherCodec.CipherSupplier encrypt, CipherCodec.CipherSupplier decrypt)
ARedisCodec
that compresses values from a delegatingRedisCodec
.- Type Parameters:
K
- Key type.V
- Value type.- Parameters:
delegate
- codec used for key-value encoding/decoding, must not benull
.encrypt
- theCipherCodec.CipherSupplier
of encryptionCipher
to use.decrypt
- theCipherCodec.CipherSupplier
of decryptionCipher
to use.- Returns:
- Cipher codec.
-
-