[][src]Struct sha1collisiondetection::Sha1CD

pub struct Sha1CD(_);

Structure representing the state of a SHA-1 computation.

Implementations

impl Sha1CD[src]

pub fn configure() -> Builder[src]

Configures the algorithm.

pub fn update(&mut self, input: impl AsRef<[u8]>)[src]

Digest input data.

This method can be called repeatedly, e.g. for processing streaming messages.

pub fn reset(&mut self)[src]

Reset hasher instance to its initial state.

pub fn finalize_cd(self) -> Result<Output, Collision>[src]

Retrieve result and consume hasher instance, reporting collisions.

pub fn finalize_reset_cd(&mut self) -> Result<Output, Collision>[src]

Retrieve result and reset hasher instance, reporting collisions.

This method sometimes can be more efficient compared to hasher re-creation.

pub fn finalize_into_dirty_cd(
    &mut self,
    out: &mut Output
) -> Result<(), Collision>
[src]

Computes the digest and returns if a collision attack was detected.

In case of collisions, the digest will still be returned. Depending on whether or not the collision mitigation is enabled (see Builder::safe_hash), either an attacker controlled digest as produced by the SHA-1 function, or a digest computed by a modified SHA-1 function mitigating the attack.

By default, the mitigations are enabled, hence this is a safer variant of Sha1, which invalidates all signatures over any objects hashing to an attacker-controlled digest.

Trait Implementations

impl BlockInput for Sha1CD[src]

type BlockSize = U64

Block size

impl Clone for Sha1CD[src]

impl Debug for Sha1CD[src]

impl Default for Sha1CD[src]

impl FixedOutputDirty for Sha1CD[src]

type OutputSize = U20

Output size for fixed output digest

impl Reset for Sha1CD[src]

impl Update for Sha1CD[src]

impl Write for Sha1CD[src]

Auto Trait Implementations

impl RefUnwindSafe for Sha1CD

impl Send for Sha1CD

impl Sync for Sha1CD

impl Unpin for Sha1CD

impl UnwindSafe for Sha1CD

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<D> Digest for D where
    D: FixedOutput + Update + Reset + Clone + Default
[src]

type OutputSize = <D as FixedOutput>::OutputSize

Output size for Digest

impl<D> DynDigest for D where
    D: 'static + FixedOutput + Update + Reset + Clone
[src]

impl<D> FixedOutput for D where
    D: FixedOutputDirty + Reset
[src]

type OutputSize = <D as FixedOutputDirty>::OutputSize

Output size for fixed output digest

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> Same<T> for T

type Output = T

Should always be Self

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.