跳到主要内容

Tls12AeadAlgorithm

特性 Tls12AeadAlgorithm 

Source
pub trait Tls12AeadAlgorithm:
    Send
    + Sync
    + 'static {
    // Required methods
    fn encrypter(
        &self,
        key: AeadKey,
        iv: &[u8],
        extra: &[u8],
    ) -> Box<dyn MessageEncrypter>;
    fn decrypter(&self, key: AeadKey, iv: &[u8]) -> Box<dyn MessageDecrypter>;
    fn key_block_shape(&self) -> KeyBlockShape;
    fn extract_keys(
        &self,
        key: AeadKey,
        iv: &[u8],
        explicit: &[u8],
    ) -> Result<ConnectionTrafficSecrets, UnsupportedOperationError>;

    // Provided method
    fn fips(&self) -> bool { ... }
}
展开描述

Factory trait 用于 building MessageEncrypterMessageDecrypter 用于 一个 TLS1.2 cipher 套件)。

必需方法§

Source

fn encrypter( &self, key: AeadKey, iv: &[u8], extra: &[u8], ) -> Box<dyn MessageEncrypter>

构建 MessageEncrypter 用于 the given key/iv 并 extra key block (which can be 用 用于 improving explicit nonce size security, if needed)。

此 length of key is set by KeyBlockShape::enc_key_len

此 length of iv is set by KeyBlockShape::fixed_iv_len

此 length of extra is set by KeyBlockShape::explicit_nonce_len

Source

fn decrypter(&self, key: AeadKey, iv: &[u8]) -> Box<dyn MessageDecrypter>

构建 MessageDecrypter 用于 the given key/iv.

此 length of key is set by KeyBlockShape::enc_key_len

此 length of iv is set by KeyBlockShape::fixed_iv_len

Source

fn key_block_shape(&self) -> KeyBlockShape

Return 一个 KeyBlockShape that defines how large the key_block is 并 how it is split up prior 到 calling encrypter(), decrypter() 并/或 extract_keys()

Source

fn extract_keys( &self, key: AeadKey, iv: &[u8], explicit: &[u8], ) -> Result<ConnectionTrafficSecrets, UnsupportedOperationError>

Convert the 密钥材料 从 key/iv, into 一个 ConnectionTrafficSecrets item.

此 length of key is set by KeyBlockShape::enc_key_len

此 length of iv is set by KeyBlockShape::fixed_iv_len

此 length of extra is set by KeyBlockShape::explicit_nonce_len

May return UnsupportedOperationError if the AEAD 算法 is not 一个 supported variant of ConnectionTrafficSecrets

提供方法§

Source

fn fips(&self) -> bool

Return true if this is 由 FIPS 批准的实现支持。

实现者§