Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions parquet/src/encryption/encrypt.rs
Original file line number Diff line number Diff line change
Expand Up @@ -275,14 +275,14 @@ impl EncryptionPropertiesBuilder {
}

/// Build the encryption properties
pub fn build(self) -> Result<FileEncryptionProperties> {
Ok(FileEncryptionProperties {
pub fn build(self) -> Result<Arc<FileEncryptionProperties>> {
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is the main API change, and the rest of the changes mostly follow from here

Ok(Arc::new(FileEncryptionProperties {
encrypt_footer: self.encrypt_footer,
footer_key: self.footer_key,
column_keys: self.column_keys,
aad_prefix: self.aad_prefix,
store_aad_prefix: self.store_aad_prefix,
})
}))
}
}

Expand Down Expand Up @@ -314,7 +314,7 @@ impl FileEncryptor {
}

/// Get the encryptor's file encryption properties
pub fn properties(&self) -> &FileEncryptionProperties {
pub fn properties(&self) -> &Arc<FileEncryptionProperties> {
&self.properties
}

Expand Down Expand Up @@ -416,7 +416,7 @@ pub(crate) fn encrypt_thrift_object_to_vec<T: WriteThrift>(

/// Get the crypto metadata for a column from the file encryption properties
pub(crate) fn get_column_crypto_metadata(
properties: &FileEncryptionProperties,
properties: &Arc<FileEncryptionProperties>,
column: &ColumnDescPtr,
) -> Option<ColumnCryptoMetaData> {
if properties.column_keys.is_empty() {
Expand Down
8 changes: 4 additions & 4 deletions parquet/src/file/properties.rs
Original file line number Diff line number Diff line change
Expand Up @@ -458,7 +458,7 @@ pub struct WriterPropertiesBuilder {
statistics_truncate_length: Option<usize>,
coerce_types: bool,
#[cfg(feature = "encryption")]
file_encryption_properties: Option<FileEncryptionProperties>,
file_encryption_properties: Option<Arc<FileEncryptionProperties>>,
}

impl Default for WriterPropertiesBuilder {
Expand Down Expand Up @@ -506,7 +506,7 @@ impl WriterPropertiesBuilder {
statistics_truncate_length: self.statistics_truncate_length,
coerce_types: self.coerce_types,
#[cfg(feature = "encryption")]
file_encryption_properties: self.file_encryption_properties.map(Arc::new),
file_encryption_properties: self.file_encryption_properties,
}
}

Expand Down Expand Up @@ -709,7 +709,7 @@ impl WriterPropertiesBuilder {
#[cfg(feature = "encryption")]
pub fn with_file_encryption_properties(
mut self,
file_encryption_properties: FileEncryptionProperties,
file_encryption_properties: Arc<FileEncryptionProperties>,
) -> Self {
self.file_encryption_properties = Some(file_encryption_properties);
self
Expand Down Expand Up @@ -965,7 +965,7 @@ impl From<WriterProperties> for WriterPropertiesBuilder {
statistics_truncate_length: props.statistics_truncate_length,
coerce_types: props.coerce_types,
#[cfg(feature = "encryption")]
file_encryption_properties: props.file_encryption_properties.map(Arc::unwrap_or_clone),
file_encryption_properties: props.file_encryption_properties,
}
}
}
Expand Down
4 changes: 2 additions & 2 deletions parquet/src/file/writer.rs
Original file line number Diff line number Diff line change
Expand Up @@ -318,7 +318,7 @@ impl<W: Write + Send> SerializedFileWriter<W> {
/// Writes magic bytes at the beginning of the file.
#[cfg(feature = "encryption")]
fn start_file(properties: &WriterPropertiesPtr, buf: &mut TrackedWrite<W>) -> Result<()> {
let magic = get_file_magic(properties.file_encryption_properties.as_deref());
let magic = get_file_magic(properties.file_encryption_properties.as_ref());

buf.write_all(magic)?;
Ok(())
Expand Down Expand Up @@ -1020,7 +1020,7 @@ impl<W: Write + Send> PageWriter for SerializedPageWriter<'_, W> {
/// as a Parquet file.
#[cfg(feature = "encryption")]
pub(crate) fn get_file_magic(
file_encryption_properties: Option<&FileEncryptionProperties>,
file_encryption_properties: Option<&Arc<FileEncryptionProperties>>,
) -> &'static [u8; 4] {
match file_encryption_properties.as_ref() {
Some(encryption_properties) if encryption_properties.encrypt_footer() => {
Expand Down
2 changes: 1 addition & 1 deletion parquet/tests/encryption/encryption_async.rs
Original file line number Diff line number Diff line change
Expand Up @@ -471,7 +471,7 @@ async fn verify_encryption_test_file_read_async(
async fn read_and_roundtrip_to_encrypted_file_async(
path: &str,
decryption_properties: Arc<FileDecryptionProperties>,
encryption_properties: FileEncryptionProperties,
encryption_properties: Arc<FileEncryptionProperties>,
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is now nicely symmetric which I think is a good sign

) -> Result<(), ParquetError> {
let temp_file = tempfile::tempfile().unwrap();
let mut file = File::open(&path).await.unwrap();
Expand Down
2 changes: 1 addition & 1 deletion parquet/tests/encryption/encryption_util.rs
Original file line number Diff line number Diff line change
Expand Up @@ -235,7 +235,7 @@ pub(crate) fn read_encrypted_file(
pub(crate) fn read_and_roundtrip_to_encrypted_file(
file: &File,
decryption_properties: Arc<FileDecryptionProperties>,
encryption_properties: FileEncryptionProperties,
encryption_properties: Arc<FileEncryptionProperties>,
) {
// read example data
let (batches, metadata) =
Expand Down
Loading