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 MessageEncrypter 并 MessageDecrypter 用于 一个 TLS1.2 cipher 套件)。
必需方法§
Sourcefn encrypter(
&self,
key: AeadKey,
iv: &[u8],
extra: &[u8],
) -> Box<dyn MessageEncrypter>
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。
Sourcefn decrypter(&self, key: AeadKey, iv: &[u8]) -> Box<dyn MessageDecrypter>
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。
Sourcefn key_block_shape(&self) -> KeyBlockShape
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()。
Sourcefn extract_keys(
&self,
key: AeadKey,
iv: &[u8],
explicit: &[u8],
) -> Result<ConnectionTrafficSecrets, UnsupportedOperationError>
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。