Skip to content

feat: Add optional FIPS support#466

Open
seanarnold wants to merge 1 commit into
temporalio:mainfrom
seanarnold:feat/optional-fips-compliance
Open

feat: Add optional FIPS support#466
seanarnold wants to merge 1 commit into
temporalio:mainfrom
seanarnold:feat/optional-fips-compliance

Conversation

@seanarnold

Copy link
Copy Markdown

Opt-in source build (TEMPORALIO_FIPS=1) that links rustls against aws-lc-rs in FIPS mode instead of ring. Default build is unchanged.

What was changed

  • New fips Cargo feature on the native extension, driven by TEMPORALIO_FIPS=1 at build time. It builds rustls on top of aws-lc-rs in FIPS mode (for both the gRPC client and the OTLP metric exporter) instead of ring, which isn't FIPS-validated.
  • Bumped the sdk-core submodule to the recent main commit that includes the OTLP TLS fix from Feature-select OTLP exporter TLS backend sdk-rust#1333 (without it, the OTLP exporter forces ring in and a ring-free build isn't possible).
  • Default worker build id now uses SHA-256 instead of MD5.
  • CI runs the FIPS build as an extra matrix leg on Linux and asserts the dependency tree is free of ring.
  • README documents the opt-in build and its requirements.

Why?

Users in FIPS regulated environments currently have to patch the Gem's source to enable FIPS-compliant cryptography. This change pushes it upstream and provides a simple way to compile the gem in a FIPS compatible mode.

Checklist

  1. Closes

  2. How was this tested:

  • Adds to the existing matrix so we can test fips mode on each
  • We check for ring in the built dependency tree (when under fips mode) and fail the job if it's present.
  1. Any docs updates needed?

Opt-in source build (TEMPORALIO_FIPS=1) that links rustls against aws-lc-rs in
FIPS mode instead of ring. Default build is unchanged.
@seanarnold seanarnold requested a review from a team as a code owner June 16, 2026 23:26
@seanarnold

Copy link
Copy Markdown
Author

@Sushisource @chris-olszewski for your review. Thanks!

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.

1 participant