Skip to main content

ic_auth_protocol_types/
logout.rs

1//! Caller-authenticated logout transport; no proof or target identity is accepted.
2use serde::{Deserialize, Serialize};
3
4/// The host authenticates the caller and selects its installed trust domain.
5#[derive(Clone, Copy, Debug, Default, Deserialize, Serialize, Eq, PartialEq)]
6pub struct LogoutRequest {}
7
8/// Acknowledges only this destination's committed revocation, never global logout.
9#[derive(Clone, Copy, Debug, Deserialize, Serialize, Eq, PartialEq)]
10pub enum LogoutResult {
11    Revoked { deny_until_ns: u64 },
12    InvalidCaller,
13    Unavailable(LogoutUnavailable),
14}
15
16/// No successful revocation is implied; transport failures also remain unknown.
17#[derive(Clone, Copy, Debug, Deserialize, Serialize, Eq, PartialEq)]
18pub enum LogoutUnavailable {
19    Capacity,
20    Storage,
21    Clock,
22    ResetPending,
23}