Struct AddressTokenKey
pub struct AddressTokenKey(/* private fields */);Available on crate feature
quic and crate feature std and (crate features aws-lc or ring) only.Expand description
The key a server seals address-validation tokens with (RFC 9000 §8.1).
Retry tokens and the tokens sent in NEW_TOKEN frames are sealed with it, so servers holding
the same key can read one another’s, as can a server that keeps its key across a restart.
Reading a token is not accepting it: the address it was issued for, its lifetime and, for a
NEW_TOKEN token, whether it has been seen before all still decide. A server given no key
generates one. The same secrecy applies as for StatelessResetKey.
The material is derived with HKDF-SHA256 whichever provider is compiled in.
Implementations§
§impl AddressTokenKey
impl AddressTokenKey
pub fn from_seed(seed: &[u8; 32]) -> AddressTokenKey
pub fn from_seed(seed: &[u8; 32]) -> AddressTokenKey
Construct a key from a seed of KEY_MATERIAL_SIZE bytes.
pub fn try_from_bytes(material: &[u8]) -> Result<AddressTokenKey, ConfigError>
pub fn try_from_bytes(material: &[u8]) -> Result<AddressTokenKey, ConfigError>
Construct a key from at least KEY_MATERIAL_SIZE bytes of secret material.
Fails when the material is shorter than that.
Trait Implementations§
§impl Clone for AddressTokenKey
impl Clone for AddressTokenKey
§fn clone(&self) -> AddressTokenKey
fn clone(&self) -> AddressTokenKey
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl !RefUnwindSafe for AddressTokenKey
impl !UnwindSafe for AddressTokenKey
impl Freeze for AddressTokenKey
impl Send for AddressTokenKey
impl Sync for AddressTokenKey
impl Unpin for AddressTokenKey
impl UnsafeUnpin for AddressTokenKey
Blanket Implementations§
§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
§fn with_current_context(self) -> WithContext<Self> ⓘ
fn with_current_context(self) -> WithContext<Self> ⓘ
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a rama_grpc::Request§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
§fn and<P, B, E>(self, other: P) -> And<T, P>
fn and<P, B, E>(self, other: P) -> And<T, P>
Create a new
Policy that returns Action::Follow only if self and other return
Action::Follow. Read more