Skip to content

Implement Identity-based Transparency Logging#828

Draft
Hayden-IO wants to merge 2 commits into
sigstore:mainfrom
Hayden-IO:identity-transparency
Draft

Implement Identity-based Transparency Logging#828
Hayden-IO wants to merge 2 commits into
sigstore:mainfrom
Hayden-IO:identity-transparency

Conversation

@Hayden-IO

@Hayden-IO Hayden-IO commented Jun 10, 2026

Copy link
Copy Markdown
Contributor

This change provides the full implementation and tests for the Identity-based Transparency Logging Server.

This change supports the new entry type, with only Ed25519 signatures as credentials. This will be proceeded by support for OIDC tokens as credentials, and ML-DSA signatures as credentials.

Partially implements #827, with the remaining PRs to support ML-DSA and an additional GCP backend for PGI deployment.

Coding assisted with Gemini, reviewed entirely by me.

@codecov

codecov Bot commented Jun 10, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 27.88945% with 287 lines in your changes missing coverage. Please review.
✅ Project coverage is 27.90%. Comparing base (dbf96a9) to head (2299900).

Files with missing lines Patch % Lines
pkg/generated/protobuf/identity.pb.go 0.00% 90 Missing ⚠️
...generated/protobuf/rekor_identity_service.pb.gw.go 0.00% 69 Missing ⚠️
...nerated/protobuf/rekor_identity_service_grpc.pb.go 0.00% 29 Missing ⚠️
internal/server/identity_service.go 56.45% 21 Missing and 6 partials ⚠️
...kg/generated/protobuf/rekor_identity_service.pb.go 0.00% 21 Missing ⚠️
pkg/types/identity/identity.go 75.30% 12 Missing and 8 partials ⚠️
cmd/rekor-server/posix/app/serve.go 0.00% 15 Missing ⚠️
internal/server/http.go 20.00% 6 Missing and 2 partials ⚠️
internal/server/serve.go 33.33% 4 Missing and 2 partials ⚠️
internal/server/grpc.go 75.00% 1 Missing and 1 partial ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #828      +/-   ##
==========================================
- Coverage   27.97%   27.90%   -0.08%     
==========================================
  Files          61       67       +6     
  Lines        3199     3587     +388     
==========================================
+ Hits          895     1001     +106     
- Misses       2202     2466     +264     
- Partials      102      120      +18     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@Hayden-IO Hayden-IO force-pushed the identity-transparency branch from fb393e2 to 3097ca1 Compare June 11, 2026 18:43
Comment thread api/proto/rekor/v2/rekor_service.proto
@Hayden-IO Hayden-IO force-pushed the identity-transparency branch from 3097ca1 to 0ce74d5 Compare June 11, 2026 21:25
Comment thread internal/server/grpc.go
@Hayden-IO Hayden-IO force-pushed the identity-transparency branch 2 times, most recently from bbfa687 to 7c45f24 Compare June 17, 2026 22:46
Comment thread internal/server/serve.go
@Hayden-IO Hayden-IO force-pushed the identity-transparency branch 2 times, most recently from 65fd9bf to 2b2a8bd Compare July 7, 2026 23:51
@Hayden-IO Hayden-IO marked this pull request as ready for review July 7, 2026 23:52
@Hayden-IO Hayden-IO requested review from a team as code owners July 7, 2026 23:52
@Hayden-IO Hayden-IO requested a review from loosebazooka July 7, 2026 23:54

@loosebazooka loosebazooka left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Could this maybe be split up into

  1. empty server stub
  2. createEntry implementation?

Comment thread api/proto/rekor/v2/identity.proto
Comment thread internal/server/grpc.go
Comment on lines +91 to +100
if r, ok := server.(pb.RekorServer); ok {
pb.RegisterRekorServer(s, r)
}
if i, ok := server.(pb.IdentityRekorServer); ok {
pb.RegisterIdentityRekorServer(s, i)
}
if h, ok := server.(grpc_health_v1.HealthServer); ok {
grpc_health_v1.RegisterHealthServer(s, h)
}

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Type checking occurs before this call, but it appears we're not covering the full scope of the any on the function signature. Does it make sense to have some redundant runtime check here (or moving the other check from serve.go here) where the any is actually consumed.

Comment thread internal/server/identity_service.go
Comment thread internal/server/identity_service.go Outdated
Comment thread cmd/rekor-server/identity-posix/app/serve.go Outdated
@Hayden-IO Hayden-IO force-pushed the identity-transparency branch 3 times, most recently from 4a5410b to 9a1d5b7 Compare July 14, 2026 22:49
@Hayden-IO Hayden-IO marked this pull request as draft July 14, 2026 22:51
@Hayden-IO

Hayden-IO commented Jul 14, 2026

Copy link
Copy Markdown
Contributor Author

Splitting this into two PRs, #871 with the API and empty server stub first.

This change introduces a new log entry format and dedicated server backend
to support Identity-based Transparency Logging as specified in
[c2sp.org/identity-transparency](C2SP/C2SP#244).

Signed-off-by: Hayden <8418760+Hayden-IO@users.noreply.github.com>
@Hayden-IO Hayden-IO force-pushed the identity-transparency branch from 9a1d5b7 to b681160 Compare July 15, 2026 02:45
This change provides the full implementation and tests for the Identity-based Transparency Logging Server.

This change supports the new entry type, with only Ed25519 signatures as credentials. This will be proceeded by support for OIDC tokens as credentials, and ML-DSA signatures as credentials.

Partially implements sigstore#827, with the remaining PRs to support ML-DSA and an additional GCP backend for PGI deployment.

Signed-off-by: Hayden <8418760+Hayden-IO@users.noreply.github.com>
@Hayden-IO Hayden-IO force-pushed the identity-transparency branch from b681160 to 2299900 Compare July 15, 2026 02:51
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.

3 participants