pub struct GHash(pub(crate) Polyval);
Expand description
GHASH: universal hash over GF(2^128) used by AES-GCM.
GHASH is a universal hash function used for message authentication in the AES-GCM authenticated encryption cipher.
Tuple Fields§
§0: Polyval
Implementations§
Trait Implementations§
source§impl BlockSizeUser for GHash
impl BlockSizeUser for GHash
source§impl KeyInit for GHash
impl KeyInit for GHash
source§fn new_from_slice(key: &[u8]) -> Result<Self, InvalidLength>
fn new_from_slice(key: &[u8]) -> Result<Self, InvalidLength>
Create new value from variable size key.
source§fn generate_key(
rng: impl CryptoRng + RngCore,
) -> GenericArray<u8, Self::KeySize>
fn generate_key( rng: impl CryptoRng + RngCore, ) -> GenericArray<u8, Self::KeySize>
Generate random key using the provided
CryptoRng
.source§impl KeySizeUser for GHash
impl KeySizeUser for GHash
source§impl UniversalHash for GHash
impl UniversalHash for GHash
source§fn update_with_backend(
&mut self,
f: impl UhfClosure<BlockSize = Self::BlockSize>,
)
fn update_with_backend( &mut self, f: impl UhfClosure<BlockSize = Self::BlockSize>, )
Update hash function state using the provided rank-2 closure.
source§fn update(&mut self, blocks: &[GenericArray<u8, Self::BlockSize>])
fn update(&mut self, blocks: &[GenericArray<u8, Self::BlockSize>])
Update hash function state with the provided block.
source§fn update_padded(&mut self, data: &[u8])
fn update_padded(&mut self, data: &[u8])
Input data into the universal hash function. If the length of the
data is not a multiple of the block size, the remaining data is
padded with zeroes up to the
BlockSize
. Read moreAuto Trait Implementations§
impl Freeze for GHash
impl RefUnwindSafe for GHash
impl Send for GHash
impl Sync for GHash
impl Unpin for GHash
impl UnwindSafe for GHash
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
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)