Enum XofAlgorithm

Source
pub enum XofAlgorithm {
    Shake(ShakeVariant),
}
Expand description

Extendable Output Function algorithm enumeration.

可扩展输出函数算法枚举。

§Algorithm Selection | 算法选择

Choose based on your security requirements:

  • SHAKE-128: For general-purpose applications requiring 128-bit security
  • SHAKE-256: For high-security applications requiring 256-bit security

根据您的安全要求选择:

  • SHAKE-128: 用于需要 128 位安全性的通用应用
  • SHAKE-256: 用于需要 256 位安全性的高安全性应用

Variants§

§

Shake(ShakeVariant)

SHAKE family of extendable output functions.

SHAKE 可扩展输出函数族。

Based on the Keccak sponge construction, providing variable-length output with strong security guarantees. Standardized in FIPS 202.

基于 Keccak 海绵构造,提供具有强安全保证的可变长度输出。 在 FIPS 202 中标准化。

Implementations§

Source§

impl XofAlgorithm

Source

pub fn build() -> XofAlgorithmBuilder

Creates a new XOF algorithm builder.

创建新的 XOF 算法构建器。

§Examples | 示例
use seal_crypto_wrapper::algorithms::xof::XofAlgorithm;

let shake128 = XofAlgorithm::build().shake128();
let shake256 = XofAlgorithm::build().shake256();
Source§

impl XofAlgorithm

Source

pub fn into_wrapper(self) -> XofWrapper

Converts the algorithm enum into a concrete wrapper implementation.

将算法枚举转换为具体的包装器实现。

§Purpose | 目的

This method creates a wrapper that implements the XOF algorithm trait, enabling actual cryptographic operations with variable-length output generation capabilities.

此方法创建一个实现 XOF 算法 trait 的包装器, 启用具有可变长度输出生成能力的实际密码操作。

§Returns | 返回值

An XofWrapper that can:

  • Create readers for streaming output
  • Generate arbitrary-length pseudorandom data
  • Support domain separation with salt and info parameters
  • Provide algorithm introspection

可以执行以下操作的 XofWrapper

  • 为流式输出创建读取器
  • 生成任意长度的伪随机数据
  • 支持使用盐和信息参数的域分离
  • 提供算法内省
§Examples | 示例
use seal_crypto_wrapper::algorithms::xof::XofAlgorithm;
use seal_crypto_wrapper::prelude::XofAlgorithmTrait;

let algorithm = XofAlgorithm::build().shake128();
let xof = algorithm.into_wrapper();

// Create a reader with input key material
let mut reader = xof.reader(
    b"input_key_material",
    Some(b"optional_salt"),
    Some(b"context_info")
)?;

// Read different amounts of data
let key1 = reader.read_boxed(32);  // 32-byte key
let key2 = reader.read_boxed(16);  // 16-byte key
let nonce = reader.read_boxed(12); // 12-byte nonce

Trait Implementations§

Source§

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

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 XofAlgorithm

Source§

fn clone(&self) -> XofAlgorithm

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 XofAlgorithm

Source§

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

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

impl<__Context> Decode<__Context> for XofAlgorithm

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 XofAlgorithm

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 XofAlgorithm

Source§

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

Encode a given type.
Source§

impl Hash for XofAlgorithm

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 XofAlgorithm

Source§

fn eq(&self, other: &XofAlgorithm) -> 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 XofAlgorithm

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 XofAlgorithm

Source§

impl Eq for XofAlgorithm

Source§

impl StructuralPartialEq for XofAlgorithm

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>,