Enum ShakeVariant

Source
pub enum ShakeVariant {
    V128,
    V256,
}
Expand description

SHAKE algorithm variants with different security levels.

具有不同安全级别的 SHAKE 算法变体。

§Performance vs Security | 性能与安全性

SHAKE-128 offers better performance while SHAKE-256 provides higher security. Both are suitable for most applications, with the choice depending on specific security requirements.

SHAKE-128 提供更好的性能,而 SHAKE-256 提供更高的安全性。 两者都适用于大多数应用,选择取决于特定的安全要求。

Variants§

§

V128

SHAKE-128: 128-bit security level.

SHAKE-128: 128 位安全级别。

§Properties | 属性
  • Security level: 128-bit
  • Rate: 1344 bits (168 bytes)
  • Capacity: 256 bits (32 bytes)
  • Performance: High
§Use Cases | 使用场景

Suitable for most applications requiring variable-length output. Recommended for general-purpose key derivation and random generation.

适用于大多数需要可变长度输出的应用。 推荐用于通用密钥派生和随机生成。

§

V256

SHAKE-256: 256-bit security level.

SHAKE-256: 256 位安全级别。

§Properties | 属性
  • Security level: 256-bit
  • Rate: 1088 bits (136 bytes)
  • Capacity: 512 bits (64 bytes)
  • Performance: Medium
§Use Cases | 使用场景

For applications requiring higher security margins or long-term protection. Recommended for high-value or sensitive applications.

用于需要更高安全边际或长期保护的应用。 推荐用于高价值或敏感应用。

Trait Implementations§

Source§

impl<'__de, __Context> BorrowDecode<'__de, __Context> for ShakeVariant

Source§

fn borrow_decode<__D: BorrowDecoder<'__de, Context = __Context>>( decoder: &mut __D, ) -> Result<Self, DecodeError>

Attempt to decode this type with the given BorrowDecode.
Source§

impl Clone for ShakeVariant

Source§

fn clone(&self) -> ShakeVariant

Returns a duplicate 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 ShakeVariant

Source§

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

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

impl<__Context> Decode<__Context> for ShakeVariant

Source§

fn decode<__D: Decoder<Context = __Context>>( decoder: &mut __D, ) -> Result<Self, DecodeError>

Attempt to decode this type with the given Decode.
Source§

impl<'de> Deserialize<'de> for ShakeVariant

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl Encode for ShakeVariant

Source§

fn encode<__E: Encoder>(&self, encoder: &mut __E) -> Result<(), EncodeError>

Encode a given type.
Source§

impl Hash for ShakeVariant

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 PartialEq for ShakeVariant

Source§

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

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

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

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Serialize for ShakeVariant

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl Copy for ShakeVariant

Source§

impl Eq for ShakeVariant

Source§

impl StructuralPartialEq for ShakeVariant

Auto Trait Implementations§

Blanket Implementations§

Source§

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

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

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

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

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

Source§

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

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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 T
where 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> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

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 T
where U: Into<T>,

Source§

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 T
where U: TryFrom<T>,

Source§

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.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> ConditionallySerde for T
where T: Serialize + for<'de> Deserialize<'de>,

Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,