Struct HmacSha2
pub struct HmacSha2(/* private fields */);Available on crate features
crypto and std only.Expand description
A reusable SHA-256 or SHA-512 HMAC key for signing and verifying messages.
Uses ring when enabled, otherwise aws-lc when enabled, and RustCrypto
when neither backend is enabled.
Implementations§
§impl HmacSha2
impl HmacSha2
pub fn try_rand_256() -> Result<HmacSha2, Box<dyn Error + Sync + Send>>
pub fn try_rand_256() -> Result<HmacSha2, Box<dyn Error + Sync + Send>>
Generate an HMAC-SHA-256 key using the operating system’s randomness.
§Errors
Returns an error if random key generation fails.
pub fn try_rand_512() -> Result<HmacSha2, Box<dyn Error + Sync + Send>>
pub fn try_rand_512() -> Result<HmacSha2, Box<dyn Error + Sync + Send>>
Generate an HMAC-SHA-512 key using the operating system’s randomness.
§Errors
Returns an error if random key generation fails.
pub fn sign(&self, data: &[u8], out: &mut [u8])
pub fn sign(&self, data: &[u8], out: &mut [u8])
Sign data, writing the full authentication tag into out.
§Panics
Panics if out.len() does not equal Self::signature_len.
pub fn signature_len(&self) -> usize
pub fn signature_len(&self) -> usize
Return the signature length in bytes: 32 for SHA-256 or 64 for SHA-512.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for HmacSha2
impl RefUnwindSafe for HmacSha2
impl Send for HmacSha2
impl Sync for HmacSha2
impl Unpin for HmacSha2
impl UnsafeUnpin for HmacSha2
impl UnwindSafe for HmacSha2
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