Something went wrong. Try again.
[AWIP] Local-first peer-to-peer connectivity and sharing across Android, Linux and Windows, made with Tauri
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293use std::fmt::{Display, Formatter};
#[derive(Debug, PartialEq, Eq, Clone)]pub enum PairingExchangeError { InvalidPairingId, InvalidDeviceId, InvalidCertificateFingerprint, InvalidCommitment, InvalidNonce, InvalidProtocolVersions, DuplicateSession, StateMismatch { expected: &'static str, got: &'static str, }, CommitmentMismatch, NonceRevealMismatch, ProtocolVersionMismatch, Expired, Cancelled, AlreadyCompleted, MissingPeerNonce, IncompleteExchange, TooManySessions, RandomFailure, SasCodeMismatch, UserDenied, InvalidSasCodeLifetime, MissingPeerIdentity, InvalidSessionToken, TrustPersistFailed, TokenExpired,}
impl Display for PairingExchangeError { fn fmt(&self, formatter: &mut Formatter<'_>) -> std::fmt::Result { match self { Self::InvalidPairingId => write!(formatter, "pairing id is invalid"), Self::InvalidDeviceId => write!(formatter, "device id is invalid"), Self::InvalidCertificateFingerprint => { write!(formatter, "certificate fingerprint is invalid") } Self::InvalidCommitment => { write!(formatter, "commitment is not canonical lowercase hex") } Self::InvalidNonce => write!(formatter, "nonce is not canonical lowercase hex"), Self::InvalidProtocolVersions => write!(formatter, "protocol versions are invalid"), Self::DuplicateSession => write!(formatter, "pairing session already exists"), Self::StateMismatch { expected, got } => write!( formatter, "pairing state mismatch: expected {expected}, got {got}" ), Self::CommitmentMismatch => write!(formatter, "nonce commitment verification failed"), Self::NonceRevealMismatch => { write!(formatter, "revealed nonce does not match commitment") } Self::ProtocolVersionMismatch => write!(formatter, "no common protocol version"), Self::Expired => write!(formatter, "pairing exchange expired"), Self::Cancelled => write!(formatter, "pairing exchange cancelled"), Self::AlreadyCompleted => write!(formatter, "pairing exchange already completed"), Self::MissingPeerNonce => write!(formatter, "peer nonce has not been received"), Self::IncompleteExchange => write!(formatter, "pairing exchange is not complete"), Self::TooManySessions => write!(formatter, "too many concurrent pairing sessions"), Self::RandomFailure => write!(formatter, "random nonce generation failed"), Self::SasCodeMismatch => write!(formatter, "pairing SAS code does not match"), Self::UserDenied => write!(formatter, "pairing was denied by the user"), Self::InvalidSasCodeLifetime => { write!( formatter, "pairing SAS code lifetime must be greater than zero" ) } Self::MissingPeerIdentity => { write!( formatter, "peer identity is missing from the pairing exchange" ) } Self::InvalidSessionToken => { write!(formatter, "pairing session token is invalid") } Self::TrustPersistFailed => { write!(formatter, "pairing trust record could not be persisted") } Self::TokenExpired => write!(formatter, "pairing session token has expired"), } }}
impl std::error::Error for PairingExchangeError {}
pub type PairingStateMachineError = PairingExchangeError;