pub struct PairingToken {
pub controller_did: String,
pub endpoint: String,
pub short_code: String,
pub session_id: String,
pub ephemeral_pubkey: String,
pub expires_at: DateTime<Utc>,
pub capabilities: Vec<Capability>,
pub kem_slot: Option<KemSlot>,
pub daemon_spki_sha256: Option<String>,
}Expand description
A pairing token for initiating cross-device identity linking.
Fields§
§controller_did: String§endpoint: String§short_code: String§session_id: String§ephemeral_pubkey: String§expires_at: DateTime<Utc>§capabilities: Vec<Capability>§kem_slot: Option<KemSlot>Optional hybrid-KEM slot. None on classical builds and
classical sessions; Some(KemSlot::MlKem768 { .. }) when the
initiator is running a pq-hybrid-enabled build. Parsers on
default builds accept but do not act on a populated slot
(they cannot — they have no ML-KEM code). An active hybrid
peer MUST NOT silently downgrade when this field is Some.
daemon_spki_sha256: Option<String>Optional SPKI SHA-256 fingerprint (base64url, 32 bytes
decoded) of the daemon’s TLS certificate. Populated when the
daemon is built with the tls feature; the phone pins
against this value on connect so no CA is required. None
means the daemon is serving plaintext.
Implementations§
Source§impl PairingToken
impl PairingToken
Sourcepub fn generate(
now: DateTime<Utc>,
controller_did: String,
endpoint: String,
capabilities: Vec<Capability>,
) -> Result<PairingSession, ProtocolError>
pub fn generate( now: DateTime<Utc>, controller_did: String, endpoint: String, capabilities: Vec<Capability>, ) -> Result<PairingSession, ProtocolError>
Generate a new pairing token with a 5-minute expiry.
Sourcepub fn generate_with_expiry(
now: DateTime<Utc>,
controller_did: String,
endpoint: String,
capabilities: Vec<Capability>,
expiry: Duration,
) -> Result<PairingSession, ProtocolError>
pub fn generate_with_expiry( now: DateTime<Utc>, controller_did: String, endpoint: String, capabilities: Vec<Capability>, expiry: Duration, ) -> Result<PairingSession, ProtocolError>
Generate a new pairing token with custom expiry.
pub fn is_expired(&self, now: DateTime<Utc>) -> bool
Sourcepub fn from_uri(uri: &str) -> Result<Self, ProtocolError>
pub fn from_uri(uri: &str) -> Result<Self, ProtocolError>
Parse a pairing token from an auths:// URI.
Sourcepub fn ephemeral_pubkey_bytes(&self) -> Result<Vec<u8>, ProtocolError>
pub fn ephemeral_pubkey_bytes(&self) -> Result<Vec<u8>, ProtocolError>
Decode the ephemeral P-256 ECDH public key from the token’s base64url field.
Trait Implementations§
Source§impl Clone for PairingToken
impl Clone for PairingToken
Source§fn clone(&self) -> PairingToken
fn clone(&self) -> PairingToken
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more