Implement QR-based pairing and mTLS trust establishment #7

Open
opened 2026-09-02 15:25:47 +02:00 by emidab · 0 comments
Owner

Summary

Implement QR-based pairing/trust establishment: each device scans the other's QR to exchange and pin its certificate/fingerprint. No PIN or password — mTLS alone is sufficient.

What to do

  1. Generate/derive per-device self-signed identity cert
  2. Render the device's fingerprint as a scannable QR code
  3. Scan another device's QR and pin its fingerprint
  4. Mutual exchange so both ends trust each other (mTLS)
  5. Persist pinned peers and allow unpairing

Acceptance criteria

  • Device shows its own pairing QR
  • Scanning a peer's QR exchanges and pins cert, both directions
  • After pairing, both devices trust each other (mTLS handshake succeeds)
  • Pinned peers persist across restarts
  • Works headless with fake camera/QR scanner on CI

Notes

  • Trust model per networking architecture doc (no central CA)
  • Prefer a well-established QR scanning package over a custom one
## Summary Implement QR-based pairing/trust establishment: each device scans the other's QR to exchange and pin its certificate/fingerprint. No PIN or password — mTLS alone is sufficient. ## What to do 1. Generate/derive per-device self-signed identity cert 2. Render the device's fingerprint as a scannable QR code 3. Scan another device's QR and pin its fingerprint 4. Mutual exchange so both ends trust each other (mTLS) 5. Persist pinned peers and allow unpairing ## Acceptance criteria - [ ] Device shows its own pairing QR - [ ] Scanning a peer's QR exchanges and pins cert, both directions - [ ] After pairing, both devices trust each other (mTLS handshake succeeds) - [ ] Pinned peers persist across restarts - [ ] Works headless with fake camera/QR scanner on CI ## Notes - Trust model per networking architecture doc (no central CA) - Prefer a well-established QR scanning package over a custom one
emidab added this to the v0.1 — MVP: P2P baby monitor milestone 2026-09-02 15:28:17 +02:00
emidab added the
area: networking
size: m
priority: high
labels 2026-09-02 15:28:18 +02:00
emidab added a new dependency 2026-09-02 15:35:15 +02:00
emidab added a new dependency 2026-09-02 15:35:21 +02:00
emidab added a new dependency 2026-09-02 15:35:26 +02:00
Sign in to join this conversation.
No description provided.