Class TransformedRecordSerializerJCE<M extends Message>
- java.lang.Object
-
- com.apple.foundationdb.record.provider.common.TransformedRecordSerializer<M>
-
- com.apple.foundationdb.record.provider.common.TransformedRecordSerializerJCE<M>
-
- Type Parameters:
M
- type ofMessage
that underlying records will use
- All Implemented Interfaces:
RecordSerializer<M>
@API(UNSTABLE) public class TransformedRecordSerializerJCE<M extends Message> extends TransformedRecordSerializer<M>
An extension ofTransformedRecordSerializer
to use JCE to encrypt and decrypt records.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
TransformedRecordSerializerJCE.Builder<M extends Message>
Builder class for theTransformedRecordSerializerJCE
class.-
Nested classes/interfaces inherited from class com.apple.foundationdb.record.provider.common.TransformedRecordSerializer
TransformedRecordSerializer.TransformState
-
Nested classes/interfaces inherited from interface com.apple.foundationdb.record.provider.common.RecordSerializer
RecordSerializer.Counts, RecordSerializer.Events
-
-
Field Summary
Fields Modifier and Type Field Description protected String
cipherName
protected static String
DEFAULT_CIPHER
protected Key
encryptionKey
protected static int
IV_SIZE
protected static MappedPool<String,Cipher,GeneralSecurityException>
MAPPED_POOL
protected SecureRandom
secureRandom
-
Fields inherited from class com.apple.foundationdb.record.provider.common.TransformedRecordSerializer
compressionLevel, compressWhenSerializing, DEFAULT_COMPRESSION_LEVEL, ENCODING_CLEAR, ENCODING_COMPRESSED, ENCODING_ENCRYPTED, ENCODING_PROTO_MESSAGE_FIELD, ENCODING_PROTO_TYPE_MASK, encryptWhenSerializing, inner, MAX_COMPRESSION_VERSION, MIN_COMPRESSION_VERSION
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
TransformedRecordSerializerJCE(RecordSerializer<M> inner, boolean compressWhenSerializing, int compressionLevel, boolean encryptWhenSerializing, String cipherName, Key encryptionKey, SecureRandom secureRandom)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
decrypt(TransformedRecordSerializer.TransformState state, StoreTimer timer)
protected void
encrypt(TransformedRecordSerializer.TransformState state, StoreTimer timer)
static <M extends Message>
TransformedRecordSerializerJCE.Builder<M>newBuilder(RecordSerializer<M> inner)
Creates a newTransformedRecordSerializerJCE.Builder
instance around the given serializer.static TransformedRecordSerializerJCE.Builder<Message>
newDefaultBuilder()
Creates a newTransformedRecordSerializerJCE.Builder
instance that is backed by the default serializer forMessage
s, namely aDynamicMessageRecordSerializer
.-
Methods inherited from class com.apple.foundationdb.record.provider.common.TransformedRecordSerializer
compress, decompress, deserialize, serialize, widen
-
-
-
-
Field Detail
-
DEFAULT_CIPHER
protected static final String DEFAULT_CIPHER
- See Also:
- Constant Field Values
-
IV_SIZE
protected static final int IV_SIZE
- See Also:
- Constant Field Values
-
MAPPED_POOL
protected static final MappedPool<String,Cipher,GeneralSecurityException> MAPPED_POOL
-
secureRandom
@Nullable protected final SecureRandom secureRandom
-
-
Constructor Detail
-
TransformedRecordSerializerJCE
protected TransformedRecordSerializerJCE(@Nonnull RecordSerializer<M> inner, boolean compressWhenSerializing, int compressionLevel, boolean encryptWhenSerializing, @Nullable String cipherName, @Nullable Key encryptionKey, @Nullable SecureRandom secureRandom)
-
-
Method Detail
-
encrypt
protected void encrypt(@Nonnull TransformedRecordSerializer.TransformState state, @Nullable StoreTimer timer) throws GeneralSecurityException
- Overrides:
encrypt
in classTransformedRecordSerializer<M extends Message>
- Throws:
GeneralSecurityException
-
decrypt
protected void decrypt(@Nonnull TransformedRecordSerializer.TransformState state, @Nullable StoreTimer timer) throws GeneralSecurityException
- Overrides:
decrypt
in classTransformedRecordSerializer<M extends Message>
- Throws:
GeneralSecurityException
-
newDefaultBuilder
public static TransformedRecordSerializerJCE.Builder<Message> newDefaultBuilder()
Creates a newTransformedRecordSerializerJCE.Builder
instance that is backed by the default serializer forMessage
s, namely aDynamicMessageRecordSerializer
. Methods on the returnedBuilder
instance can be used to specify which transformations to apply after using the default serializer.- Returns:
Builder
instance backed by aDynamicMessageRecordSerializer
-
newBuilder
public static <M extends Message> TransformedRecordSerializerJCE.Builder<M> newBuilder(@Nonnull RecordSerializer<M> inner)
Creates a newTransformedRecordSerializerJCE.Builder
instance around the given serializer. Methods on theBuilder
instance can be used to specify which transformations after using the provided serializer.- Type Parameters:
M
- type ofMessage
that underlying records will use- Parameters:
inner
-RecordSerializer
to use before/after applying transformations- Returns:
Builder
instance that can be used to specify transformations
-
-