pub struct RecentPairing {
pub peer_nickname: String,
pub sas_code: String,
pub paired_at_epoch: u64,
pub self_enroll: bool,
}Expand description
One recently completed INVITER-side pairing, surfaced by status so the inviter’s human can
read the short authentication code (SAS) and compare it with the redeemer’s out-of-band —
the pairing ceremony is “both humans compare the code”: the redeemer sees it in its
PairResult; this is the inviter’s porcelain surface for the same words. DISPLAY-ONLY
ceremony state: held in-memory by the daemon (a small ring), lost on restart, NEVER an
authorization input or trust data. Surface-clean: a nickname + the SAS wordlist words +
an epoch — never an EndpointId.
Fields§
§peer_nickname: StringThe peer’s nickname as stored by the inviter (its local name for the redeemer).
sas_code: StringThe display-only SAS words (e.g. "tango-fig-cabbage") — the same code the redeemer’s
PairResult.sas_code carried. Never checked programmatically.
paired_at_epoch: u64When the pairing completed (epoch seconds) — the porcelain renders a friendly age.
self_enroll: booltrue when the ceremony was a SELF-ENROLLMENT (invite { as_self: true }, #86): the
redeemer became another device of THIS person rather than a peer, so there is no peer row
behind peer_nickname and a SAS mismatch means an impostor now presents your identity —
the remedy is device_revoke of that endpoint, not peer_remove (#214). The endpoint is
on the self_enroll audit event, not here — this row stays surface-clean. Set structurally
by the ceremony that ran, never inferred from the nickname text. Additive
(api_minor >= 62): #[serde(default, skip_serializing_if = ...)], absent = an ordinary
pairing.
Trait Implementations§
Source§impl Clone for RecentPairing
impl Clone for RecentPairing
Source§fn clone(&self) -> RecentPairing
fn clone(&self) -> RecentPairing
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more