pub struct EncryptionPropertiesBuilder { /* private fields */ }Expand description
Builder for FileEncryptionProperties
See FileEncryptionProperties for example usage.
Implementations§
Source§impl EncryptionPropertiesBuilder
impl EncryptionPropertiesBuilder
Sourcepub fn new(footer_key: Vec<u8>) -> EncryptionPropertiesBuilder
pub fn new(footer_key: Vec<u8>) -> EncryptionPropertiesBuilder
Create a new EncryptionPropertiesBuilder with the given footer encryption key
Set if the footer should be stored in plaintext (not encrypted). Defaults to false.
Set retrieval metadata of key used for encryption of footer and (possibly) columns
Sourcepub fn with_column_key(self, column_name: &str, key: Vec<u8>) -> Self
pub fn with_column_key(self, column_name: &str, key: Vec<u8>) -> Self
Set the key used for encryption of a column. Note that if no column keys are configured then all columns will be encrypted with the footer key. If any column keys are configured then only the columns with a key will be encrypted.
Sourcepub fn with_column_key_and_metadata(
self,
column_name: &str,
key: Vec<u8>,
metadata: Vec<u8>,
) -> Self
pub fn with_column_key_and_metadata( self, column_name: &str, key: Vec<u8>, metadata: Vec<u8>, ) -> Self
Set the key used for encryption of a column and its metadata. The Key’s metadata field is to enable file readers to recover the key. For example, the metadata can keep a serialized ID of a data key. Note that if no column keys are configured then all columns will be encrypted with the footer key. If any column keys are configured then only the columns with a key will be encrypted.
Sourcepub fn with_column_keys(
self,
column_names: Vec<&str>,
keys: Vec<Vec<u8>>,
) -> Result<Self>
pub fn with_column_keys( self, column_names: Vec<&str>, keys: Vec<Vec<u8>>, ) -> Result<Self>
Set the keys used for encryption of columns. Analogous to with_column_key but for multiple columns. This will add column keys provided to the existing column keys. If column keys were already provided for some columns, the new keys will overwrite the old ones.
Sourcepub fn with_aad_prefix(self, aad_prefix: Vec<u8>) -> Self
pub fn with_aad_prefix(self, aad_prefix: Vec<u8>) -> Self
The AAD prefix uniquely identifies the file and allows to differentiate it e.g. from older versions of the file or from other partition files in the same data set (table). These bytes are optionally passed by a writer upon file creation. When not specified, no AAD prefix is used.
Sourcepub fn with_aad_prefix_storage(self, store_aad_prefix: bool) -> Self
pub fn with_aad_prefix_storage(self, store_aad_prefix: bool) -> Self
Should the AAD prefix be stored in the file. If false, readers will need to provide the AAD prefix to be able to decrypt data. Defaults to false.
Sourcepub fn build(self) -> Result<Arc<FileEncryptionProperties>>
pub fn build(self) -> Result<Arc<FileEncryptionProperties>>
Build the encryption properties