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
impl XofAlgorithm
Sourcepub fn build() -> XofAlgorithmBuilder
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
impl XofAlgorithm
Sourcepub fn into_wrapper(self) -> XofWrapper
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
impl<'__de, __Context> BorrowDecode<'__de, __Context> for XofAlgorithm
Source§fn borrow_decode<__D: BorrowDecoder<'__de, Context = __Context>>(
decoder: &mut __D,
) -> Result<Self, DecodeError>
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
impl Clone for XofAlgorithm
Source§fn clone(&self) -> XofAlgorithm
fn clone(&self) -> XofAlgorithm
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreSource§impl Debug for XofAlgorithm
impl Debug for XofAlgorithm
Source§impl<__Context> Decode<__Context> for XofAlgorithm
impl<__Context> Decode<__Context> for XofAlgorithm
Source§impl<'de> Deserialize<'de> for XofAlgorithm
impl<'de> Deserialize<'de> for XofAlgorithm
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
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
impl Encode for XofAlgorithm
Source§impl Hash for XofAlgorithm
impl Hash for XofAlgorithm
Source§impl PartialEq for XofAlgorithm
impl PartialEq for XofAlgorithm
Source§impl Serialize for XofAlgorithm
impl Serialize for XofAlgorithm
impl Copy for XofAlgorithm
impl Eq for XofAlgorithm
impl StructuralPartialEq for XofAlgorithm
Auto Trait Implementations§
impl Freeze for XofAlgorithm
impl RefUnwindSafe for XofAlgorithm
impl Send for XofAlgorithm
impl Sync for XofAlgorithm
impl Unpin for XofAlgorithm
impl UnwindSafe for XofAlgorithm
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more