Interface EncryptionVariant

All Superinterfaces:
Comparable<EncryptionVariant>
All Known Implementing Classes:
ReaderEncryptionVariant, WriterEncryptionVariant

public interface EncryptionVariant extends Comparable<EncryptionVariant>
Information about a column encryption variant.

Column encryption is done by encoding multiple variants of the same column. Each encrypted column ends up in two variants:

  • Encrypted original
  • Unencrypted masked
  • Method Details

    • getKeyDescription

      EncryptionKey getKeyDescription()
      Get the key description for this column. This description is global to the file and is passed to the KeyProvider along with various encrypted local keys for the stripes or file footer so that it can decrypt them.
      Returns:
      the encryption key description
    • getRoot

      TypeDescription getRoot()
      Get the root column for this variant.
      Returns:
      the root column type
    • getVariantId

      int getVariantId()
      Get the encryption variant id within the file.
    • getFileFooterKey

      Key getFileFooterKey() throws IOException
      Get the local key for the footer.
      Returns:
      the local decrypted key or null if it isn't available
      Throws:
      IOException
    • getStripeKey

      Key getStripeKey(long stripe) throws IOException
      Get the local key for a stripe's data or footer.
      Parameters:
      stripe - the stripe within the file (0 to N-1)
      Returns:
      the local decrypted key or null if it isn't available
      Throws:
      IOException