Crate cipher

Source
Expand description

This crate defines a set of traits which describe the functionality of block ciphers, block modes, and stream ciphers.

Re-exports§

pub use blobby;dev
pub use crypto_common;
pub use crypto_common::rand_core;rand_core
pub use inout;
pub use inout::block_padding;block-padding
pub use zeroize;zeroize
pub use crypto_common::array;
pub use crypto_common::typenum;
pub use block::*;
pub use stream::*;
pub use tweak::*;

Modules§

block
Traits used to define functionality of block ciphers and modes of operation.
consts
stream
Traits which define functionality of stream ciphers.
tweak
Traits used to define functionality of tweakable block ciphers.

Macros§

block_cipher_testdev
Define block cipher test
block_decryptor_benchdev
Define block decryptor benchmark
block_encryptor_benchdev
Define block encryptor benchmark
block_mode_dec_testdev
Define block mode decryption test
block_mode_enc_testdev
Define block mode encryption test
iv_state_testdev
Define IvState test
stream_cipher_benchdev
Create stream cipher benchmarks
stream_cipher_seek_testdev
Test stream synchronous stream cipher seeking capabilities
stream_cipher_testdev
Test core functionality of synchronous stream cipher

Structs§

Array
Array is a newtype for an inner [T; N] array where N is determined by a generic ArraySize parameter, which is a marker trait for a numeric value determined by ZSTs that impl the typenum::Unsigned trait.
InOut
Custom pointer type which contains one immutable (input) and one mutable (output) pointer, which are either equal or non-overlapping.
InOutBuf
Custom slice type which references one immutable (input) slice and one mutable (output) slice of equal length. Input and output slices are either the same or do not overlap.
InvalidLength
The error type returned when key and/or IV used in the KeyInit, KeyIvInit, and InnerIvInit slice-based methods had an invalid length.

Traits§

AlgorithmName
Trait which stores algorithm name constant, used in Debug implementations.
BlockSizeUser
Types which process data in blocks.
InnerIvInit
Types which can be initialized from another type and additional initialization vector/nonce.
IvSizeUser
Types which use initialization vector (nonce) for initialization.
IvState
Trait for loading current IV state.
KeyInit
Types which can be initialized from key.
KeyIvInit
Types which can be initialized from key and initialization vector (nonce).
KeySizeUser
Types which use key for initialization.
ParBlocksSizeUser
Types which can process blocks in parallel.

Type Aliases§

Block
Block on which BlockSizeUser implementors operate.
Iv
Initialization vector (nonce) used by IvSizeUser implementors.
Key
Key used by KeySizeUser implementors.
ParBlocks
Parallel blocks on which ParBlocksSizeUser implementors operate.