Salt

Trait Salt 

Source
pub trait Salt<SZ: MinSize>: Sealed { }
Expand description

Represents a salt value used in key derivation functions (KDFs).

This is only implemented for HKDF, as other KDFs require salts (such as the PBKDF family), and for FIPS compliance, as per NIST SP 800-132, Section 5.1, The Salt (S) this salt must be at least 128 bits from a valid CSPRNG.

Salt is a critical component in KDFs, used to:

  • Increase the complexity of the derived key
  • Mitigate rainbow table attacks
  • Ensure unique keys even when the same input is used multiple times

Salts may be optional, this depends on the MinSz type.

Implementations on Foreign Types§

Source§

impl Salt<Empty> for &[u8]

Source§

impl Salt<Empty> for ()

Source§

impl Salt<Min16> for &[u8; 16]

Source§

impl Salt<Min16> for &[u8; 17]

Source§

impl Salt<Min16> for &[u8; 18]

Source§

impl Salt<Min16> for &[u8; 19]

Source§

impl Salt<Min16> for &[u8; 20]

Source§

impl Salt<Min16> for &[u8; 21]

Source§

impl Salt<Min16> for &[u8; 22]

Source§

impl Salt<Min16> for &[u8; 23]

Source§

impl Salt<Min16> for &[u8; 24]

Source§

impl Salt<Min16> for &[u8; 25]

Source§

impl Salt<Min16> for &[u8; 26]

Source§

impl Salt<Min16> for &[u8; 27]

Source§

impl Salt<Min16> for &[u8; 28]

Source§

impl Salt<Min16> for &[u8; 29]

Source§

impl Salt<Min16> for &[u8; 30]

Source§

impl Salt<Min16> for &[u8; 31]

Source§

impl Salt<Min16> for &[u8; 32]

Source§

impl Salt<Min16> for &[u8; 48]

Source§

impl Salt<Min16> for &[u8; 64]

Source§

impl Salt<Min16> for [u8; 16]

Source§

impl Salt<Min16> for [u8; 17]

Source§

impl Salt<Min16> for [u8; 18]

Source§

impl Salt<Min16> for [u8; 19]

Source§

impl Salt<Min16> for [u8; 20]

Source§

impl Salt<Min16> for [u8; 21]

Source§

impl Salt<Min16> for [u8; 22]

Source§

impl Salt<Min16> for [u8; 23]

Source§

impl Salt<Min16> for [u8; 24]

Source§

impl Salt<Min16> for [u8; 25]

Source§

impl Salt<Min16> for [u8; 26]

Source§

impl Salt<Min16> for [u8; 27]

Source§

impl Salt<Min16> for [u8; 28]

Source§

impl Salt<Min16> for [u8; 29]

Source§

impl Salt<Min16> for [u8; 30]

Source§

impl Salt<Min16> for [u8; 31]

Source§

impl Salt<Min16> for [u8; 32]

Source§

impl Salt<Min16> for [u8; 48]

Source§

impl Salt<Min16> for [u8; 64]

Source§

impl Salt<NonEmpty> for &[u8; 1]

Source§

impl Salt<NonEmpty> for &[u8; 2]

Source§

impl Salt<NonEmpty> for &[u8; 3]

Source§

impl Salt<NonEmpty> for &[u8; 4]

Source§

impl Salt<NonEmpty> for &[u8; 5]

Source§

impl Salt<NonEmpty> for &[u8; 6]

Source§

impl Salt<NonEmpty> for &[u8; 7]

Source§

impl Salt<NonEmpty> for &[u8; 8]

Source§

impl Salt<NonEmpty> for &[u8; 9]

Source§

impl Salt<NonEmpty> for &[u8; 10]

Source§

impl Salt<NonEmpty> for &[u8; 11]

Source§

impl Salt<NonEmpty> for &[u8; 12]

Source§

impl Salt<NonEmpty> for &[u8; 13]

Source§

impl Salt<NonEmpty> for &[u8; 14]

Source§

impl Salt<NonEmpty> for &[u8; 15]

Source§

impl Salt<NonEmpty> for [u8; 1]

Source§

impl Salt<NonEmpty> for [u8; 2]

Source§

impl Salt<NonEmpty> for [u8; 3]

Source§

impl Salt<NonEmpty> for [u8; 4]

Source§

impl Salt<NonEmpty> for [u8; 5]

Source§

impl Salt<NonEmpty> for [u8; 6]

Source§

impl Salt<NonEmpty> for [u8; 7]

Source§

impl Salt<NonEmpty> for [u8; 8]

Source§

impl Salt<NonEmpty> for [u8; 9]

Source§

impl Salt<NonEmpty> for [u8; 10]

Source§

impl Salt<NonEmpty> for [u8; 11]

Source§

impl Salt<NonEmpty> for [u8; 12]

Source§

impl Salt<NonEmpty> for [u8; 13]

Source§

impl Salt<NonEmpty> for [u8; 14]

Source§

impl Salt<NonEmpty> for [u8; 15]

Source§

impl<T: Salt<Empty>> Salt<Empty> for Option<T>

Source§

impl<T: Salt<Empty>> Salt<Empty> for &T

Source§

impl<T: Salt<Empty>> Salt<Empty> for &mut T

Source§

impl<const C: usize> Salt<Empty> for [u8; C]

Implementors§

Source§

impl<'s> Salt<Empty> for Slice<'s, Empty>

Source§

impl<'s> Salt<Empty> for Slice<'s, Min16>

Source§

impl<'s> Salt<Empty> for Slice<'s, NonEmpty>

Source§

impl<'s> Salt<Min16> for Slice<'s, Min16>

Source§

impl<'s> Salt<NonEmpty> for Slice<'s, NonEmpty>

Source§

impl<T: Salt<Min16>> Salt<NonEmpty> for T