pub struct HmacCore<D> where
D: CoreProxy,
D::Core: HashMarker + UpdateCore + FixedOutputCore + BufferKindUser<BufferKind = Eager> + Default + Clone,
<D::Core as BlockSizeUser>::BlockSize: IsLess<U256>,
Le<<D::Core as BlockSizeUser>::BlockSize, U256>: NonZero, { /* private fields */ }
Expand description
Generic core HMAC instance, which operates over blocks.
Trait Implementations
sourceimpl<D> AlgorithmName for HmacCore<D> where
D: CoreProxy,
D::Core: HashMarker + AlgorithmName + UpdateCore + FixedOutputCore + BufferKindUser<BufferKind = Eager> + Default + Clone,
<D::Core as BlockSizeUser>::BlockSize: IsLess<U256>,
Le<<D::Core as BlockSizeUser>::BlockSize, U256>: NonZero,
impl<D> AlgorithmName for HmacCore<D> where
D: CoreProxy,
D::Core: HashMarker + AlgorithmName + UpdateCore + FixedOutputCore + BufferKindUser<BufferKind = Eager> + Default + Clone,
<D::Core as BlockSizeUser>::BlockSize: IsLess<U256>,
Le<<D::Core as BlockSizeUser>::BlockSize, U256>: NonZero,
sourcefn write_alg_name(f: &mut Formatter<'_>) -> Result
fn write_alg_name(f: &mut Formatter<'_>) -> Result
Write algorithm name into f
.
sourceimpl<D> BlockSizeUser for HmacCore<D> where
D: CoreProxy,
D::Core: HashMarker + UpdateCore + FixedOutputCore + BufferKindUser<BufferKind = Eager> + Default + Clone,
<D::Core as BlockSizeUser>::BlockSize: IsLess<U256>,
Le<<D::Core as BlockSizeUser>::BlockSize, U256>: NonZero,
impl<D> BlockSizeUser for HmacCore<D> where
D: CoreProxy,
D::Core: HashMarker + UpdateCore + FixedOutputCore + BufferKindUser<BufferKind = Eager> + Default + Clone,
<D::Core as BlockSizeUser>::BlockSize: IsLess<U256>,
Le<<D::Core as BlockSizeUser>::BlockSize, U256>: NonZero,
type BlockSize = <<D as CoreProxy>::Core as BlockSizeUser>::BlockSize
type BlockSize = <<D as CoreProxy>::Core as BlockSizeUser>::BlockSize
Size of the block in bytes.
sourcefn block_size() -> usize
fn block_size() -> usize
Return block size in bytes.
sourceimpl<D> BufferKindUser for HmacCore<D> where
D: CoreProxy,
D::Core: HashMarker + UpdateCore + FixedOutputCore + BufferKindUser<BufferKind = Eager> + Default + Clone,
<D::Core as BlockSizeUser>::BlockSize: IsLess<U256>,
Le<<D::Core as BlockSizeUser>::BlockSize, U256>: NonZero,
impl<D> BufferKindUser for HmacCore<D> where
D: CoreProxy,
D::Core: HashMarker + UpdateCore + FixedOutputCore + BufferKindUser<BufferKind = Eager> + Default + Clone,
<D::Core as BlockSizeUser>::BlockSize: IsLess<U256>,
Le<<D::Core as BlockSizeUser>::BlockSize, U256>: NonZero,
type BufferKind = Eager
type BufferKind = Eager
Block buffer kind over which type operates.
sourceimpl<D> Clone for HmacCore<D> where
D: CoreProxy,
D::Core: HashMarker + UpdateCore + FixedOutputCore + BufferKindUser<BufferKind = Eager> + Default + Clone,
<D::Core as BlockSizeUser>::BlockSize: IsLess<U256>,
Le<<D::Core as BlockSizeUser>::BlockSize, U256>: NonZero,
impl<D> Clone for HmacCore<D> where
D: CoreProxy,
D::Core: HashMarker + UpdateCore + FixedOutputCore + BufferKindUser<BufferKind = Eager> + Default + Clone,
<D::Core as BlockSizeUser>::BlockSize: IsLess<U256>,
Le<<D::Core as BlockSizeUser>::BlockSize, U256>: NonZero,
sourceimpl<D> Debug for HmacCore<D> where
D: CoreProxy,
D::Core: HashMarker + AlgorithmName + UpdateCore + FixedOutputCore + BufferKindUser<BufferKind = Eager> + Default + Clone,
<D::Core as BlockSizeUser>::BlockSize: IsLess<U256>,
Le<<D::Core as BlockSizeUser>::BlockSize, U256>: NonZero,
impl<D> Debug for HmacCore<D> where
D: CoreProxy,
D::Core: HashMarker + AlgorithmName + UpdateCore + FixedOutputCore + BufferKindUser<BufferKind = Eager> + Default + Clone,
<D::Core as BlockSizeUser>::BlockSize: IsLess<U256>,
Le<<D::Core as BlockSizeUser>::BlockSize, U256>: NonZero,
sourceimpl<D> FixedOutputCore for HmacCore<D> where
D: CoreProxy,
D::Core: HashMarker + UpdateCore + FixedOutputCore + BufferKindUser<BufferKind = Eager> + Default + Clone,
<D::Core as BlockSizeUser>::BlockSize: IsLess<U256>,
Le<<D::Core as BlockSizeUser>::BlockSize, U256>: NonZero,
impl<D> FixedOutputCore for HmacCore<D> where
D: CoreProxy,
D::Core: HashMarker + UpdateCore + FixedOutputCore + BufferKindUser<BufferKind = Eager> + Default + Clone,
<D::Core as BlockSizeUser>::BlockSize: IsLess<U256>,
Le<<D::Core as BlockSizeUser>::BlockSize, U256>: NonZero,
sourcefn finalize_fixed_core(
&mut self,
buffer: &mut Buffer<Self>,
out: &mut Output<Self>
)
fn finalize_fixed_core(
&mut self,
buffer: &mut Buffer<Self>,
out: &mut Output<Self>
)
Finalize state using remaining data stored in the provided block buffer,
write result into provided array and leave self
in a dirty state. Read more
sourceimpl<D> KeyInit for HmacCore<D> where
D: CoreProxy,
D::Core: HashMarker + UpdateCore + FixedOutputCore + BufferKindUser<BufferKind = Eager> + Default + Clone,
<D::Core as BlockSizeUser>::BlockSize: IsLess<U256>,
Le<<D::Core as BlockSizeUser>::BlockSize, U256>: NonZero,
impl<D> KeyInit for HmacCore<D> where
D: CoreProxy,
D::Core: HashMarker + UpdateCore + FixedOutputCore + BufferKindUser<BufferKind = Eager> + Default + Clone,
<D::Core as BlockSizeUser>::BlockSize: IsLess<U256>,
Le<<D::Core as BlockSizeUser>::BlockSize, U256>: NonZero,
sourcefn new_from_slice(key: &[u8]) -> Result<Self, InvalidLength>
fn new_from_slice(key: &[u8]) -> Result<Self, InvalidLength>
Create new value from variable size key.
sourceimpl<D> KeySizeUser for HmacCore<D> where
D: CoreProxy,
D::Core: HashMarker + UpdateCore + FixedOutputCore + BufferKindUser<BufferKind = Eager> + Default + Clone,
<D::Core as BlockSizeUser>::BlockSize: IsLess<U256>,
Le<<D::Core as BlockSizeUser>::BlockSize, U256>: NonZero,
impl<D> KeySizeUser for HmacCore<D> where
D: CoreProxy,
D::Core: HashMarker + UpdateCore + FixedOutputCore + BufferKindUser<BufferKind = Eager> + Default + Clone,
<D::Core as BlockSizeUser>::BlockSize: IsLess<U256>,
Le<<D::Core as BlockSizeUser>::BlockSize, U256>: NonZero,
sourceimpl<D> OutputSizeUser for HmacCore<D> where
D: CoreProxy,
D::Core: HashMarker + UpdateCore + FixedOutputCore + BufferKindUser<BufferKind = Eager> + Default + Clone,
<D::Core as BlockSizeUser>::BlockSize: IsLess<U256>,
Le<<D::Core as BlockSizeUser>::BlockSize, U256>: NonZero,
impl<D> OutputSizeUser for HmacCore<D> where
D: CoreProxy,
D::Core: HashMarker + UpdateCore + FixedOutputCore + BufferKindUser<BufferKind = Eager> + Default + Clone,
<D::Core as BlockSizeUser>::BlockSize: IsLess<U256>,
Le<<D::Core as BlockSizeUser>::BlockSize, U256>: NonZero,
type OutputSize = <<D as CoreProxy>::Core as OutputSizeUser>::OutputSize
type OutputSize = <<D as CoreProxy>::Core as OutputSizeUser>::OutputSize
Size of the output in bytes.
sourcefn output_size() -> usize
fn output_size() -> usize
Return output size in bytes.
sourceimpl<D> UpdateCore for HmacCore<D> where
D: CoreProxy,
D::Core: HashMarker + UpdateCore + FixedOutputCore + BufferKindUser<BufferKind = Eager> + Default + Clone,
<D::Core as BlockSizeUser>::BlockSize: IsLess<U256>,
Le<<D::Core as BlockSizeUser>::BlockSize, U256>: NonZero,
impl<D> UpdateCore for HmacCore<D> where
D: CoreProxy,
D::Core: HashMarker + UpdateCore + FixedOutputCore + BufferKindUser<BufferKind = Eager> + Default + Clone,
<D::Core as BlockSizeUser>::BlockSize: IsLess<U256>,
Le<<D::Core as BlockSizeUser>::BlockSize, U256>: NonZero,
sourcefn update_blocks(&mut self, blocks: &[Block<Self>])
fn update_blocks(&mut self, blocks: &[Block<Self>])
Update state using the provided data blocks.
impl<D> MacMarker for HmacCore<D> where
D: CoreProxy,
D::Core: HashMarker + UpdateCore + FixedOutputCore + BufferKindUser<BufferKind = Eager> + Default + Clone,
<D::Core as BlockSizeUser>::BlockSize: IsLess<U256>,
Le<<D::Core as BlockSizeUser>::BlockSize, U256>: NonZero,
Auto Trait Implementations
impl<D> RefUnwindSafe for HmacCore<D> where
<D as CoreProxy>::Core: RefUnwindSafe,
impl<D> Send for HmacCore<D> where
<D as CoreProxy>::Core: Send,
impl<D> Sync for HmacCore<D> where
<D as CoreProxy>::Core: Sync,
impl<D> Unpin for HmacCore<D> where
<D as CoreProxy>::Core: Unpin,
impl<D> UnwindSafe for HmacCore<D> where
<D as CoreProxy>::Core: UnwindSafe,
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more