cipher/
lib.rs

1//! This crate defines a set of traits which describe the functionality of
2//! [block ciphers][1], [block modes][2], and [stream ciphers][3].
3//!
4//! [1]: https://en.wikipedia.org/wiki/Block_cipher
5//! [2]: https://en.wikipedia.org/wiki/Block_cipher_mode_of_operation
6//! [3]: https://en.wikipedia.org/wiki/Stream_cipher
7
8#![no_std]
9#![cfg_attr(docsrs, feature(doc_auto_cfg))]
10#![doc(
11    html_logo_url = "https://raw.githubusercontent.com/RustCrypto/media/6ee8e381/logo.svg",
12    html_favicon_url = "https://raw.githubusercontent.com/RustCrypto/media/6ee8e381/logo.svg"
13)]
14#![warn(
15    missing_docs,
16    rust_2018_idioms,
17    unused_lifetimes,
18    missing_debug_implementations
19)]
20
21#[cfg(all(feature = "block-padding", feature = "alloc"))]
22extern crate alloc;
23
24#[cfg(feature = "dev")]
25pub use blobby;
26pub use crypto_common;
27#[cfg(feature = "rand_core")]
28pub use crypto_common::rand_core;
29pub use inout;
30#[cfg(feature = "block-padding")]
31pub use inout::block_padding;
32#[cfg(feature = "zeroize")]
33pub use zeroize;
34
35pub mod block;
36#[cfg(feature = "dev")]
37mod dev;
38pub mod stream;
39pub mod tweak;
40
41pub use block::*;
42pub use stream::*;
43pub use tweak::*;
44
45pub use crypto_common::{
46    AlgorithmName, Block, BlockSizeUser, InnerIvInit, InvalidLength, Iv, IvSizeUser, IvState, Key,
47    KeyInit, KeyIvInit, KeySizeUser, ParBlocks, ParBlocksSizeUser,
48    array::{self, Array},
49    typenum::{self, consts},
50};
51pub use inout::{InOut, InOutBuf};