pub struct TicketRotator { /* private fields */ }Available on crate feature
std only.Expand description
A ticketer that has a ‘current’ sub-ticketer and a single ‘previous’ ticketer. It creates a new ticketer every so often, demoting the current ticketer.
Implementations§
Source§impl TicketRotator
impl TicketRotator
Sourcepub fn new(
lifetime: Duration,
generator: fn() -> Result<Box<dyn TicketProducer>, Error>,
) -> Result<Self, Error>
pub fn new( lifetime: Duration, generator: fn() -> Result<Box<dyn TicketProducer>, Error>, ) -> Result<Self, Error>
Creates a new TicketRotator, which rotates through sub-ticketers
based on the passage of time.
lifetime is in seconds, and is how long the current ticketer
is used to generate new tickets. Tickets are accepted for no
longer than twice this duration. This means a given ticket will
be usable for at least one lifetime, and at most two lifetimes
(depending on when its creation falls in the replacement cycle.)
generator produces a new TicketProducer implementation.
Trait Implementations§
Source§impl Debug for TicketRotator
impl Debug for TicketRotator
Source§impl TicketProducer for TicketRotator
impl TicketProducer for TicketRotator
Source§fn encrypt(&self, message: &[u8]) -> Option<Vec<u8>>
fn encrypt(&self, message: &[u8]) -> Option<Vec<u8>>
Encrypt and authenticate
plain, returning the resulting
ticket. Return None if plain cannot be encrypted for
some reason: an empty ticket will be sent and the connection
will continue.Source§fn decrypt(&self, ciphertext: &[u8]) -> Option<Vec<u8>>
fn decrypt(&self, ciphertext: &[u8]) -> Option<Vec<u8>>
Decrypt
cipher, validating its authenticity protection
and recovering the plaintext. cipher is fully attacker
controlled, so this decryption must be side-channel free,
panic-proof, and otherwise bullet-proof. If the decryption
fails, return None.Auto Trait Implementations§
impl !Freeze for TicketRotator
impl RefUnwindSafe for TicketRotator
impl Send for TicketRotator
impl Sync for TicketRotator
impl Unpin for TicketRotator
impl UnwindSafe for TicketRotator
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more