Skip to content

[AURON #2477] Add AES_GCM_CTR_V1 encryption support for Parquet - #2478

Open
Jack1007 wants to merge 2 commits into
apache:masterfrom
Jack1007:ctr-support-dev
Open

[AURON #2477] Add AES_GCM_CTR_V1 encryption support for Parquet#2478
Jack1007 wants to merge 2 commits into
apache:masterfrom
Jack1007:ctr-support-dev

Conversation

@Jack1007

Copy link
Copy Markdown

Which issue does this PR close?

Closes #2477

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Adds support for reading/writing Parquet files encrypted with the AES_GCM_CTR_V1 algorithm by introducing an upstream arrow-rs patch that uses AES-GCM for metadata modules and AES-CTR for page data (via aws-lc-rs), enabling Auron to interoperate with CTR-encrypted Parquet tables (Issue #2477).

Changes:

  • Extends Parquet modular encryption to support AES_GCM_CTR_V1, separating page data vs metadata encryption/decryption paths.
  • Introduces AES-CTR block encryptor/decryptor implemented with aws-lc-rs and wires it through file/page encryption plumbing.
  • Updates Parquet encryption tests to validate successful reads instead of asserting NYI.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread dev/vendors/patches/arrow-rs/0009-parquet-AES_GCM_CTR_V1.patch
Comment on lines +171 to +175
+#[derive(Debug, Clone)]
+pub(crate) struct CtrBlockEncryptor {
+ key: Arc<aws_lc_rs::cipher::EncryptingKey>,
+ nonce_sequence: CounterNonce,
+}
Comment thread dev/vendors/patches/arrow-rs/0009-parquet-AES_GCM_CTR_V1.patch

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 1 out of 2 changed files in this pull request and generated 1 comment.

Comment on lines +16 to +18
# Enable Parquet modular encryption support
-encryption = ["dep:ring"]
+encryption = ["dep:ring", "dep:aws-lc-rs"]
@Jack1007 Jack1007 changed the title Add AES_GCM_CTR_V1 encryption support for Parquet [AURON #2477] Add AES_GCM_CTR_V1 encryption support for Parquet Aug 24, 2026
@Jack1007
Jack1007 requested a review from slfan1989 August 25, 2026 06:13
}

+ /// Use the AES_GCM_CTR_V1 algorithm: metadata modules use AES-GCM, page data uses AES-CTR.
+ pub fn with_aes_gcm_ctr_v1(mut self) -> Self {

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

The new writer mode is not covered by any test. The updated tests only read the pre-generated CTR fixture, and nothing calls with_aes_gcm_ctr_v1(). Also, the root workspace excludes vendored arrow-rs, so cargo test --workspace does not execute these patched tests. Please add a full Parquet write/read round-trip using this option and ensure the targeted vendored Parquet tests run in CI.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add AES_GCM_CTR_V1 encryption support for Parquet

4 participants