Skip to main content

MemoryRevocationStore

Struct MemoryRevocationStore 

Source
pub struct MemoryRevocationStore(/* private fields */);
Expand description

In-process revocation log — tests, and single-process deployments that do not need the set to survive a restart. Clones share one log, so an authority-side writer and an edge-side reader see the same set.

Implementations§

Source§

impl MemoryRevocationStore

Source

pub fn new() -> Self

Source

pub fn gc(&self, now: i64) -> u64

Drop jtis lapsed at or before now, advancing the epoch when anything went. Returns the number removed. Same contract as the SQL stores’ gc.

Trait Implementations§

Source§

impl Clone for MemoryRevocationStore

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for MemoryRevocationStore

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for MemoryRevocationStore

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl RevocationReader for MemoryRevocationStore

Source§

fn is_membership_revoked<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>( &'life0 self, _key: &'life1 RevocationKey, kind: &'life2 str, id: &'life3 str, principal: &'life4 PrincipalId, snapshot_epoch: u64, ) -> Pin<Box<dyn Future<Output = Result<bool, StoreError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, 'life3: 'async_trait, 'life4: 'async_trait,

Plaintext rows: key is not needed.

Source§

fn is_revoked<'life0, 'life1, 'async_trait>( &'life0 self, jti: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<bool, StoreError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

true if the credential with this jti has been revoked (Revoked::Jti). Cryptographic expiry is enforced separately by the TokenVerifier. Read more
Source§

fn is_device_revoked<'life0, 'life1, 'async_trait>( &'life0 self, device: &'life1 DeviceId, seq: u64, ) -> Pin<Box<dyn Future<Output = Result<bool, StoreError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

true if a standing binding of device at sequence seq is revoked: a Revoked::Device entry exists with seq < at_seq — the check a standing node binding (R732-F5) makes. A binding minted after the revoke (re-enrollment) carries a higher seq and reads false.
Source§

impl RevocationWriter for MemoryRevocationStore

Source§

fn revoke<'life0, 'life1, 'async_trait>( &'life0 self, entry: &'life1 Revoked, ) -> Pin<Box<dyn Future<Output = Result<(), StoreError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Add entry to the set, advancing the epoch (next_epoch) in the same atomic write. An identity already present keeps the larger bound (Revoked::cmp_bound); the epoch advances only when a row was inserted or its bound rose. Idempotent — re-revoking with an equal or lower bound is a no-op, not an error, and leaves the epoch alone. Propagation to edge cheers_verify::RevocationReaders is asynchronous (see the module contract).
Source§

fn snapshot<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<RevocationSnapshot, StoreError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

The current epoch and entries, read as one consistent view: the contents are exactly those the epoch was advanced to. Includes lapsed jtis that gc has not yet removed; RevocationPublisher::current filters those.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self> ⓘ

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self> ⓘ

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘ
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more