pub struct Sha512_224Hasher(_);
Expand description

Sha512_224Hasher is a type that provides the SHA-512/224 hashing algorithm in RustyShield.

A “Hasher” in the context of cryptographic hashing refers to the object that manages the process of converting input data into a fixed-size sequence of bytes. The Hasher is responsible for maintaining the internal state of the hashing process and providing methods to add more data and retrieve the resulting hash.

The Sha512_224Hasher struct adheres to Rust’s Hasher trait, enabling you to use it interchangeably with other hashers in Rust. It can be used anywhere a type implementing Hasher is required.

Examples

The following examples demonstrate using Sha512_224Hasher with both Hash and Hasher, and how the results can differ:

 let data = b"hello";

 // Using Hash
 let mut sha512_224hasher = Sha512_224Hasher::default();
 data.hash(&mut sha512_224hasher);
 let result_via_hash = sha512_224hasher.finish();

 // Using Hasher
 let mut sha512_224hasher = Sha512_224Hasher::default();
 sha512_224hasher.write(data);
 let result_via_hasher = sha512_224hasher.finish();

 // Simulating the Hash inners
 let mut sha512_224hasher = Sha512_224Hasher::default();
 sha512_224hasher.write_usize(data.len());
 sha512_224hasher.write(data);
 let simulated_hash_result = sha512_224hasher.finish();

 assert_ne!(result_via_hash, result_via_hasher);
 assert_eq!(result_via_hash, simulated_hash_result);

Trait Implementations§

source§

impl Clone for Sha512_224Hasher

source§

fn clone(&self) -> Sha512_224Hasher

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Sha512_224Hasher

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for Sha512_224Hasher

source§

fn default() -> Sha512_224Hasher

Returns the “default value” for a type. Read more
source§

impl From<Sha512_224Hasher> for Sha512_224State

source§

fn from(value: Sha512_224Hasher) -> Self

Converts to this type from the input type.
source§

impl From<Sha512_224State> for Sha512_224Hasher

source§

fn from(value: Sha512_224State) -> Self

Converts to this type from the input type.
source§

impl Hash for Sha512_224Hasher

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl Hasher for Sha512_224Hasher

source§

fn finish(&self) -> u64

Returns the hash value for the values written so far. Read more
source§

fn write(&mut self, bytes: &[u8])

Writes some data into this Hasher. Read more
1.3.0 · source§

fn write_u8(&mut self, i: u8)

Writes a single u8 into this hasher.
1.3.0 · source§

fn write_u16(&mut self, i: u16)

Writes a single u16 into this hasher.
1.3.0 · source§

fn write_u32(&mut self, i: u32)

Writes a single u32 into this hasher.
1.3.0 · source§

fn write_u64(&mut self, i: u64)

Writes a single u64 into this hasher.
1.26.0 · source§

fn write_u128(&mut self, i: u128)

Writes a single u128 into this hasher.
1.3.0 · source§

fn write_usize(&mut self, i: usize)

Writes a single usize into this hasher.
1.3.0 · source§

fn write_i8(&mut self, i: i8)

Writes a single i8 into this hasher.
1.3.0 · source§

fn write_i16(&mut self, i: i16)

Writes a single i16 into this hasher.
1.3.0 · source§

fn write_i32(&mut self, i: i32)

Writes a single i32 into this hasher.
1.3.0 · source§

fn write_i64(&mut self, i: i64)

Writes a single i64 into this hasher.
1.26.0 · source§

fn write_i128(&mut self, i: i128)

Writes a single i128 into this hasher.
1.3.0 · source§

fn write_isize(&mut self, i: isize)

Writes a single isize into this hasher.
source§

fn write_length_prefix(&mut self, len: usize)

🔬This is a nightly-only experimental API. (hasher_prefixfree_extras)
Writes a length prefix into this hasher, as part of being prefix-free. Read more
source§

fn write_str(&mut self, s: &str)

🔬This is a nightly-only experimental API. (hasher_prefixfree_extras)
Writes a single str into this hasher. Read more
source§

impl HasherContext<BYTES_LEN> for Sha512_224Hasher

§

type Output = ByteArrayWrapper<BYTES_LEN>

source§

fn finish(&mut self) -> Self::Output

source§

impl PartialEq<Sha512_224Hasher> for Sha512_224Hasher

source§

fn eq(&self, other: &Sha512_224Hasher) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Eq for Sha512_224Hasher

source§

impl StructuralEq for Sha512_224Hasher

source§

impl StructuralPartialEq for Sha512_224Hasher

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for Twhere U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> ToOwned for Twhere T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.