Conversation
aarongable
requested changes
Aug 20, 2026
aarongable
left a comment
Contributor
There was a problem hiding this comment.
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.
Always generate subject key identifiers as the leftmost 160 bits of SHA-512 so Pebble can run in FIPS mode and stays distinct from Boulder's truncated SHA-256 method. Co-authored-by: Cursor <cursoragent@cursor.com>
pzduniak
force-pushed
the
pzduniak/fips-safe-ski
branch
from
September 11, 2026 18:37
5a4924f to
e3adc27
Compare
aarongable
approved these changes
Sep 11, 2026
aarongable
requested changes
Sep 11, 2026
| if err != nil { | ||
| t.Fatal(err) | ||
| } | ||
| x, y := elliptic.Unmarshal(elliptic.P256(), publicKeyBytes) |
Contributor
There was a problem hiding this comment.
See lint finding: use crypto/ecdh instead of elliptic.Unmarshal
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Always generate Subject Key Identifiers according to RFC 7093 Section 2 method 3: the leftmost 160 bits of the SHA-512 hash of the
subjectPublicKeyBIT STRING.This removes Pebble's use of SHA-1, so it can run with
GOFIPS140=v1.0.0/GODEBUG=fips140=only. It also stays distinct from Boulder, which uses RFC 7093 Section 2 method 1 (truncated SHA-256).No configuration or library options: Pebble is a test harness and does not need SHA-1 legacy compatibility.
Tests:
go test ./ca ./cmd/pebbleGOFIPS140=v1.0.0 go test ./caGODEBUG=fips140=only GOFIPS140=v1.0.0 go test ./ca