[−][src]Struct sha1collisiondetection::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]
&mut self,
out: &mut Output
) -> Result<(), Collision>
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
pub fn finalize_into_dirty(&mut self, out: &mut Output<Self>)
[src]
impl Reset for Sha1CD
[src]
impl Update for Sha1CD
[src]
pub fn update(&mut self, input: impl AsRef<[u8]>)
[src]
pub fn chain(self, data: impl AsRef<[u8]>) -> Self
[src]
impl Write for Sha1CD
[src]
pub fn write(&mut self, buf: &[u8]) -> Result<usize>
[src]
pub fn flush(&mut self) -> Result<()>
[src]
pub fn write_vectored(&mut self, bufs: &[IoSlice<'_>]) -> Result<usize, Error>
1.36.0[src]
pub fn is_write_vectored(&self) -> bool
[src]
pub fn write_all(&mut self, buf: &[u8]) -> Result<(), Error>
1.0.0[src]
pub fn write_all_vectored(
&mut self,
bufs: &mut [IoSlice<'_>]
) -> Result<(), Error>
[src]
&mut self,
bufs: &mut [IoSlice<'_>]
) -> Result<(), Error>
pub fn write_fmt(&mut self, fmt: Arguments<'_>) -> Result<(), Error>
1.0.0[src]
pub fn by_ref(&mut self) -> &mut Self
1.0.0[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]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<D> Digest for D where
D: FixedOutput + Update + Reset + Clone + Default,
[src]
D: FixedOutput + Update + Reset + Clone + Default,
type OutputSize = <D as FixedOutput>::OutputSize
Output size for Digest
pub fn new() -> D
[src]
pub fn update(&mut self, data: impl AsRef<[u8]>)
[src]
pub fn chain(self, data: impl AsRef<[u8]>) -> D
[src]
pub fn finalize(self) -> GenericArray<u8, <D as Digest>::OutputSize>
[src]
pub fn finalize_reset(&mut self) -> GenericArray<u8, <D as Digest>::OutputSize>
[src]
pub fn reset(&mut self)
[src]
pub fn output_size() -> usize
[src]
pub fn digest(data: &[u8]) -> GenericArray<u8, <D as Digest>::OutputSize>
[src]
impl<D> DynDigest for D where
D: 'static + FixedOutput + Update + Reset + Clone,
[src]
D: 'static + FixedOutput + Update + Reset + Clone,
pub fn update(&mut self, data: &[u8])
[src]
pub fn finalize_reset(&mut self) -> Box<[u8], Global>
[src]
pub fn finalize(self: Box<D, Global>) -> Box<[u8], Global>
[src]
pub fn reset(&mut self)
[src]
pub fn output_size(&self) -> usize
[src]
pub fn box_clone(&self) -> Box<dyn DynDigest + 'static, Global>
[src]
impl<D> FixedOutput for D where
D: FixedOutputDirty + Reset,
[src]
D: FixedOutputDirty + Reset,
type OutputSize = <D as FixedOutputDirty>::OutputSize
Output size for fixed output digest
pub fn finalize_into(
self,
out: &mut GenericArray<u8, <D as FixedOutput>::OutputSize>
)
[src]
self,
out: &mut GenericArray<u8, <D as FixedOutput>::OutputSize>
)
pub fn finalize_into_reset(
&mut self,
out: &mut GenericArray<u8, <D as FixedOutput>::OutputSize>
)
[src]
&mut self,
out: &mut GenericArray<u8, <D as FixedOutput>::OutputSize>
)
pub fn finalize_fixed(self) -> GenericArray<u8, Self::OutputSize>
[src]
pub fn finalize_fixed_reset(&mut self) -> GenericArray<u8, Self::OutputSize>
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> Same<T> for T
type Output = T
Should always be Self
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T
[src]
pub fn clone_into(&self, target: &mut T)
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,