Skip to main content

CollisionResistance

Trait CollisionResistance 

Source
pub trait CollisionResistance {
    type CollisionResistance: Unsigned;
}
Expand description

Types with a certain collision resistance.

Required Associated Types§

Source

type CollisionResistance: Unsigned

Collision resistance in bytes.

This applies to an output size of at least 2 * CollisionResistance bytes. For a smaller output size collision resistance can be usually calculated as min(CollisionResistance, OutputSize / 2).

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementations on Foreign Types§

Source§

impl CollisionResistance for CShake128

Source§

impl CollisionResistance for CShake256

Source§

impl<const DS: u8> CollisionResistance for TurboShake128<DS>

Source§

impl<const DS: u8> CollisionResistance for TurboShake256<DS>

Implementors§

Source§

impl CollisionResistance for lib_q_hash::CShake128

Source§

impl CollisionResistance for lib_q_hash::CShake256

Source§

impl CollisionResistance for Kmac128

Source§

impl CollisionResistance for Kmac256

Source§

impl CollisionResistance for Kt128<'_>

128-bit collision resistance per RFC 9861 §7.7, conditional on output length: this figure applies at an output of at least 2 * CollisionResistance = 32 bytes, per the digest::CollisionResistance trait contract. Kt128 is a XOF with no fixed output size, so that length is the caller’s choice: at a shorter output, the same contract gives min(CollisionResistance, OutputSize / 2) bytes.

Source§

impl CollisionResistance for Kt256<'_>

256-bit collision resistance per RFC 9861 §7.8, conditional on output length: this figure applies at an output of at least 2 * CollisionResistance = 64 bytes, per the digest::CollisionResistance trait contract. Kt256 is a XOF with no fixed output size, so that length is the caller’s choice: at a shorter output, the same contract gives min(CollisionResistance, OutputSize / 2) bytes — e.g. 128-bit, not 256-bit, at the 32-byte output used in this crate’s examples.

Source§

impl CollisionResistance for ParallelHash128

Source§

impl CollisionResistance for ParallelHash256

Source§

impl CollisionResistance for lib_q_hash::Shake128

Source§

impl CollisionResistance for lib_q_hash::InternalShake128

Source§

impl CollisionResistance for lib_q_hash::Shake256

Source§

impl CollisionResistance for lib_q_hash::InternalShake256

Source§

impl CollisionResistance for TupleHash128

Source§

impl CollisionResistance for TupleHash256

Source§

impl<T, OutSize> CollisionResistance for CtOutWrapper<T, OutSize>

Source§

impl<T, S> CollisionResistance for XofFixedWrapper<T, S>

Source§

impl<const DS: u8> CollisionResistance for lib_q_hash::TurboShake128<DS>

Source§

impl<const DS: u8> CollisionResistance for lib_q_hash::TurboShake256<DS>