Repository navigation
Conversation
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #164 +/- ##
==========================================
+ Coverage 58.44% 59.02% +0.57%
==========================================
Files 4 4
Lines 580 593 +13
Branches 147 152 +5
==========================================
+ Hits 339 350 +11
+ Misses 140 139 -1
- Partials 101 104 +3 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
Embed the server's ECMR public key as a `tang_pub` field in the recovery response so that clients can obtain it at recovery time instead of persisting it on disk. The public key is a deep copy with private material stripped via jose_jwk_pub(), ensuring no secret data leaks. The field is additive: old clients ignore the unknown JSON field, so existing Clevis bindings and recovery flows are unaffected. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> Signed-off-by: Sergio Arroutbi <sarroutb@redhat.com>
74cc7ad to
e2c7fa4
Compare
Embed the server's ECMR public key as a `tang_pub` field in the POST /rec/$kid response so that clients can obtain it at recovery time instead of persisting it on disk. Private material is stripped via jose_jwk_pub() before inclusion. Add a Tang-Capabilities: tang_pub header to the GET /adv response so clients can detect server support before creating a binding. Both changes are additive: old clients ignore the unknown JSON field and HTTP header, so existing bindings and recovery flows are unaffected. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> Signed-off-by: Sergio Arroutbi <sarroutb@redhat.com>
Replace the Tang-Capabilities HTTP header with a dedicated
GET /version endpoint that returns structured JSON describing
server capabilities.
The response format:
{"features":{"tang_pub":true},"tang_version":"15"}
Clients calling /version on an old Tang server receive a 404,
which cleanly signals the server lacks capability discovery and
the client should fall back to legacy binding behavior.
The /version endpoint respects the -e (endpoint) option, so
/endpoint/version works consistently with /endpoint/adv and
/endpoint/rec.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Sergio Arroutbi <sarroutb@redhat.com>
|
If I understand correctly, updated Clevis will stop storing the Tang public key in new bindings, regardless of capability discovery. Could we clarify the "fall back to legacy binding behavior" wording to reflect that? I think compatibility here means continuing to read existing legacy bindings, rather than creating new ones that retain the public key. |
No. |
Old Tang servers return 404 for this endpoint, giving clients a clean signal to fall back to legacy binding behavior.
Embed the server's ECMR public key as a
tang_pubfield in the recovery response so that clients can obtain it at recovery time instead of persisting it on disk. The public key is a deep copy with private material stripped viajose_jwk_pub(), ensuring no secret data leaks.The field is additive: old clients ignore the unknown JSON field, so existing Clevis bindings and recovery flows are unaffected.