Skip to content

feat: send content-signing public key during device registration#23

Merged
felippemsc merged 3 commits intomainfrom
feature/cross-layer-binding
Feb 17, 2026
Merged

feat: send content-signing public key during device registration#23
felippemsc merged 3 commits intomainfrom
feature/cross-layer-binding

Conversation

@felippemsc
Copy link
Contributor

Summary

  • Add required publicKey field to DeviceCreateRequest (maps to public_key in JSON)
  • Inject SecureEnclaveService into SignedShotClient and call getPublicKeyBase64() during registration
  • Share the same SecureEnclaveService instance between client and MediaIntegrityService in the example app

Context

The API now requires public_key at device registration to enable cross-layer binding.
The server computes SHA-256(base64_decode(public_key)) and includes the fingerprint in the JWT.

The public key format is the same one already used in the sidecar's media_integrity.public_key: Base64 of the 65-byte uncompressed EC point (0x04 + X + Y) from the Secure Enclave.

Test plan

  • APIModelsTests updated for publicKey encoding/decoding
  • Build and run on device — verify registration succeeds with the new field
  • Decode the JWT from a capture flow and confirm device_public_key_fingerprint is presen
  • Verify SHA-256(base64_decode(sidecar.media_integrity.public_key)) matches the JWT claim

@felippemsc felippemsc marked this pull request as ready for review February 17, 2026 22:55
@felippemsc felippemsc force-pushed the feature/cross-layer-binding branch from 9d00db9 to 92e5676 Compare February 17, 2026 23:20
@felippemsc felippemsc merged commit a7db0cc into main Feb 17, 2026
2 checks passed
@felippemsc felippemsc deleted the feature/cross-layer-binding branch February 17, 2026 23:53
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