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_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#![forbid(unsafe_code)]
21
22#[cfg(feature = "alloc")]
23extern crate alloc;
24
25#[cfg(feature = "dev")]
26pub use blobby;
27pub use crypto_common;
28#[cfg(feature = "rand_core")]
29pub use crypto_common::rand_core;
30pub use inout;
31#[cfg(feature = "block-padding")]
32pub use inout::block_padding;
33#[cfg(feature = "zeroize")]
34pub use zeroize;
35
36pub mod block;
37#[cfg(feature = "dev")]
38pub mod dev;
39pub mod stream;
40pub mod tweak;
41
42pub use block::*;
43pub use stream::*;
44pub use tweak::*;
45
46pub use crypto_common::{
47    AlgorithmName, Block, BlockSizeUser, InnerIvInit, InvalidLength, Iv, IvSizeUser, IvState, Key,
48    KeyInit, KeyIvInit, KeySizeUser, ParBlocks, ParBlocksSizeUser,
49    array::{self, Array},
50    typenum::{self, consts},
51};
52pub use inout::{InOut, InOutBuf};