Skip to content

fix(crypto): switch to ring for non-FIPS builds, bump libdatadog#1137

Open
duncanista wants to merge 1 commit intomainfrom
jordan.gonzalez/crypto/use-ring-for-non-fips
Open

fix(crypto): switch to ring for non-FIPS builds, bump libdatadog#1137
duncanista wants to merge 1 commit intomainfrom
jordan.gonzalez/crypto/use-ring-for-non-fips

Conversation

@duncanista
Copy link
Copy Markdown
Contributor

@duncanista duncanista commented Mar 27, 2026

Overview

Switch the default crypto backend from aws-lc-rs to ring for non-FIPS builds, reducing the release binary size by ~15% (8.7MB -> 7.4MB on macOS arm64). FIPS builds continue to use aws-lc-rs via rustls/fips.

  • Bump libdatadog to 18a02650 (ring for non-FIPS)
  • Switch rustls features from aws-lc-rs to ring
  • Update crypto provider init to use ring::default_provider()

Other

  • Adapt ObfuscationConfig to new nested struct API

Testing

Layer size check
DataDog/libdatadog#1816

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Switches the non-FIPS TLS crypto backend to ring (while keeping FIPS builds on the rustls FIPS provider) and updates libdatadog + related config wiring accordingly.

Changes:

  • Switch rustls feature/provider usage from aws-lc-rs to ring for non-FIPS builds (including provider initialization in the trace HTTP client and a unit test).
  • Bump libdatadog git revisions for libdd-* crates and regenerate Cargo.lock.
  • Adapt ObfuscationConfig construction to the newer nested-struct API.

Reviewed changes

Copilot reviewed 3 out of 5 changed files in this pull request and generated no comments.

Show a summary per file
File Description
bottlecap/src/traces/trace_processor.rs Updates test-time rustls provider installation to ring.
bottlecap/src/traces/http_client.rs Installs ring as the default rustls crypto provider for custom TLS/root-cert handling.
bottlecap/src/bin/bottlecap/main.rs Updates ObfuscationConfig initialization to nested config structs + defaults.
bottlecap/Cargo.toml Switches rustls features to ring and bumps libdd-* deps to the new libdatadog rev.
bottlecap/Cargo.lock Lockfile updates reflecting libdatadog bump + new transitive deps.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@duncanista duncanista force-pushed the jordan.gonzalez/crypto/use-ring-for-non-fips branch from a45c75e to 95775c0 Compare March 27, 2026 21:34
Switch the default crypto backend from aws-lc-rs to ring for non-FIPS
builds, reducing the release binary size by ~15% (8.7MB -> 7.4MB on
macOS arm64). FIPS builds continue to use aws-lc-rs via rustls/fips.

- Bump libdatadog to 18a02650 (ring for non-FIPS)
- Switch rustls features from aws-lc-rs to ring
- Update crypto provider init to use ring::default_provider()
- Adapt ObfuscationConfig to new nested struct API
@duncanista duncanista force-pushed the jordan.gonzalez/crypto/use-ring-for-non-fips branch from 95775c0 to 6bc2de8 Compare March 27, 2026 21:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants