Skip to content

Make key identifier hashing selectable (FIPS mode support) - #551

Open
pzduniak wants to merge 1 commit into
letsencrypt:mainfrom
zoom:pzduniak/fips-safe-ski
Open

Make key identifier hashing selectable (FIPS mode support)#551
pzduniak wants to merge 1 commit into
letsencrypt:mainfrom
zoom:pzduniak/fips-safe-ski

Conversation

@pzduniak

@pzduniak pzduniak commented Aug 4, 2026

Copy link
Copy Markdown

Preserves legacy RFC 5280 SHA-1 subject key identifiers by default and allows callers and binary configuration to explicitly select RFC 7093 SHA-256. This allows the users to run Pebble with GOFIPS140=v1.0.0.

Options idiom was introduced to allow for API backwards compatibility for projects that use Pebble as a library.

Tests:

  • go test ./...
  • GOFIPS140=v1.0.0 go test ./...
  • GODEBUG=fips140=only GOFIPS140=v1.0.0 go test ./ca

Made-with: Codex

Preserve legacy RFC 5280 SHA-1 subject key identifiers by default and allow callers and binary configuration to explicitly select RFC 7093 SHA-256.

Made-with: Codex
@pzduniak pzduniak changed the title Make key identifier hashing selectable Make key identifier hashing selectable (FIPS mode support) Aug 4, 2026

@aarongable aarongable 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.

No need for legacy, optionality, or backwards compatibility. Pebble is not intended as a long-lived system for issuing trusted certificates, it is intended as a test harness.

I think the correct action here should be simply changing Pebble to always produce Subject Key Identifiers which are produced according to RFC 7093, Section 2, Paragraph (3). In other words, they should be the leftmost 160 bits of the SHA512 hash of the subjectPublicKey bit string. This should allow Pebble to do away with all use of SHA1, which still behaving differently from Boulder to ensure flexibility in the ecosystem.

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