Enum AeadAlgorithm

Source
pub enum AeadAlgorithm {
    AesGcm(AesKeySize),
    ChaCha20Poly1305,
    XChaCha20Poly1305,
}
Expand description

Aead encryption algorithm enumeration.

对称加密算法枚举。

§Algorithm Selection Guide | 算法选择指南

Choose based on your requirements:

根据您的要求选择:

  • High Performance + Hardware: AES-128-GCM or AES-256-GCM

  • Software Implementation: ChaCha20-Poly1305

  • Large Nonces: XChaCha20-Poly1305

  • Maximum Security: AES-256-GCM or ChaCha20-Poly1305

  • 高性能 + 硬件: AES-128-GCM 或 AES-256-GCM

  • 软件实现: ChaCha20-Poly1305

  • 大 Nonce: XChaCha20-Poly1305

  • 最大安全性: AES-256-GCM 或 ChaCha20-Poly1305

Variants§

§

AesGcm(AesKeySize)

AES in Galois/Counter Mode with configurable key size.

具有可配置密钥大小的 Galois/Counter 模式 AES。

Provides excellent performance on systems with AES hardware acceleration. Industry standard with extensive analysis and widespread adoption.

在具有 AES 硬件加速的系统上提供出色的性能。 行业标准,经过广泛分析和广泛采用。

§

ChaCha20Poly1305

ChaCha20 stream cipher with Poly1305 authenticator.

ChaCha20 流密码与 Poly1305 认证器。

Designed for high performance in software implementations. Provides excellent security with constant-time operations.

专为软件实现中的高性能而设计。 通过常数时间操作提供出色的安全性。

§

XChaCha20Poly1305

Extended-nonce ChaCha20-Poly1305 variant.

扩展 nonce 的 ChaCha20-Poly1305 变体。

Uses 192-bit nonces, reducing the risk of nonce collisions. Ideal for applications generating many encrypted messages.

使用 192 位 nonce,降低 nonce 碰撞的风险。 适用于生成许多加密消息的应用。

Implementations§

Source§

impl AeadAlgorithm

Source

pub fn build() -> AeadAlgorithmBuilder

Creates a new aead algorithm builder.

创建新的对称算法构建器。

§Examples | 示例
use seal_crypto_wrapper::algorithms::aead::AeadAlgorithm;

let algorithm = AeadAlgorithm::build().aes256_gcm();
Source§

impl AeadAlgorithm

Source

pub fn into_wrapper(self) -> AeadAlgorithmWrapper

Converts the algorithm enum into a concrete wrapper implementation.

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

§Purpose | 目的

This method bridges the gap between algorithm selection and actual cryptographic operations. It returns a wrapper that implements the aead algorithm trait, enabling type-safe encryption and decryption operations.

此方法在算法选择和实际密码操作之间架起桥梁。 它返回一个实现对称算法 trait 的包装器,启用类型安全的加密和解密操作。

§Returns | 返回值

A AeadAlgorithmWrapper that can perform:

  • Key generation
  • Encryption with authentication
  • Decryption with verification
  • Algorithm introspection

可以执行以下操作的 AeadAlgorithmWrapper

  • 密钥生成
  • 带认证的加密
  • 带验证的解密
  • 算法内省
§Examples | 示例
use seal_crypto_wrapper::algorithms::aead::AeadAlgorithm;

let algorithm = AeadAlgorithm::build().aes256_gcm();
let cipher = algorithm.into_wrapper();

// Now you can use the cipher for encryption/decryption
let key = cipher.generate_typed_key()?;

Trait Implementations§

Source§

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

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 AeadAlgorithm

Source§

fn clone(&self) -> AeadAlgorithm

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 AeadAlgorithm

Source§

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

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

impl<__Context> Decode<__Context> for AeadAlgorithm

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 AeadAlgorithm

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 AeadAlgorithm

Source§

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

Encode a given type.
Source§

impl From<AeadAlgorithm> for AeadAlgorithmWrapper

Source§

fn from(algorithm: AeadAlgorithm) -> Self

Converts to this type from the input type.
Source§

impl Hash for AeadAlgorithm

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 AeadAlgorithm

Source§

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

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 AeadAlgorithm

Source§

impl Eq for AeadAlgorithm

Source§

impl StructuralPartialEq for AeadAlgorithm

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