Interface EncryptionManager

  • All Superinterfaces:
    java.io.Serializable
    All Known Implementing Classes:
    PlaintextEncryptionManager

    public interface EncryptionManager
    extends java.io.Serializable
    Module for encrypting and decrypting table data files.

    This must be serializable because an instance may be instantiated in one place and sent across the wire in some Iceberg integrations, notably Spark.

    • Method Detail

      • decrypt

        default java.lang.Iterable<InputFile> decrypt​(java.lang.Iterable<EncryptedInputFile> encrypted)
        Variant of decrypt(EncryptedInputFile) that provides a sequence of files that all need to be decrypted in a single context.

        By default this calls the single-file decryption method for each element in the iterator. Implementations can override this for a variety of optimizations. For example, an implementation can perform lookahead on the input iterator and fetch encryption keys in batch.

      • encrypt

        default java.lang.Iterable<EncryptedOutputFile> encrypt​(java.lang.Iterable<OutputFile> rawOutput)
        Variant of encrypt(OutputFile) that provides a sequence of files that all need to be encrypted in a single context.

        By default this calls the single-file encryption method for each element in the iterator. Implementations can override this for a variety of optimizations. For example, an implementation can perform lookahead on the input iterator and fetch encryption keys in batch.