Table of Contents

Class EncryptionConfiguration

Namespace
ParquetSharp.Encryption
Assembly
ParquetSharp.dll

Configures how data should be encrypted when writing a ParquetFile with a KMS

public sealed class EncryptionConfiguration : IDisposable
Inheritance
EncryptionConfiguration
Implements
Inherited Members

Constructors

EncryptionConfiguration(string)

Create a new EncryptionConfiguration

public EncryptionConfiguration(string footerKey)

Parameters

footerKey string

ID of the master key for footer encryption and signing

Properties

CacheLifetimeSeconds

Lifetime of cached entities (key encryption keys, local wrapping keys, KMS client objects) in seconds.

public double CacheLifetimeSeconds { get; set; }

Property Value

double

ColumnKeys

Map from master key IDs to the names of columns encrypted with this key

public IReadOnlyDictionary<string, IReadOnlyList<string>> ColumnKeys { get; set; }

Property Value

IReadOnlyDictionary<string, IReadOnlyList<string>>

DataKeyLengthBits

Length of data encryption keys (DEKs), randomly generated by parquet key management tools. Can be 128, 192 or 256 bits. The default is 128 bits.

public int DataKeyLengthBits { get; set; }

Property Value

int

DoubleWrapping

Whether double wrapping should be used, where data encryption keys (DEKs) are encrypted with key encryption keys (KEKs), which in turn are encrypted with master keys. If false, single wrapping is used, where data encryption keys are encrypted directly with master keys.

public bool DoubleWrapping { get; set; }

Property Value

bool

EncryptionAlgorithm

The encryption algorithm to use

public ParquetCipher EncryptionAlgorithm { get; set; }

Property Value

ParquetCipher

FooterKey

ID of the master key for footer encryption and signing

public string FooterKey { get; set; }

Property Value

string

InternalKeyMaterial

Store key material inside Parquet file footers; this mode doesn’t produce additional files. By default, true. If set to false, key material is stored in separate files in the same folder, which enables key rotation for immutable Parquet files.

public bool InternalKeyMaterial { get; set; }

Property Value

bool

PlaintextFooter

Whether the footer should be stored unencrypted

public bool PlaintextFooter { get; set; }

Property Value

bool

UniformEncryption

Whether the footer and columns are all encrypted with the same key

public bool UniformEncryption { get; set; }

Property Value

bool

Methods

Dispose()

Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.

public void Dispose()