1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
//! Facade crate for [RustCrypto Traits][1], providing a single place to //! access compatible versions of all traits from the Rust Crypto project. //! //! # About //! //! The [RustCrypto Project][2] publishes and maintains independently versioned //! crates containing traits for many different kinds of cryptographic //! algorithms. //! //! However, these algorithms are often interdependent (e.g. many depend on digest //! algorithms), which requires figuring out which versions of the trait crates //! are compatible with each other. //! //! This crate will automatically pull in compatible versions of these crates, //! with each one gated under a cargo feature, providing a single place to both //! import and upgrade these crates while ensuring they remain compatible. //! //! # Traits //! //! The following traits are available as re-exports of RustCrypto crates through //! this crate's facade. To access a particular re-export you (or a crate you //! depend on) must enable the associated Cargo feature named below. //! //! | Re-export | Cargo feature | Description | //! |-----------|---------------|-------------| //! | [`aead`](https://docs.rs/aead) | `aead` | Authenticated Encryption with Associated Data (i.e. high-level symmetric encryption) | //! | [`block_cipher`](https://docs.rs/block-cipher) | `block‑cipher` | Block-based cryptographic permutations (i.e. low-level symmetric encryption) | //! | [`digest`](https://docs.rs/digest) | `digest` | Cryptographic hash functions | //! | [`elliptic_curve`](https://docs.rs/elliptic-curve) | `elliptic-curve` | Elliptic curve cryptography | //! | [`mac`](https://docs.rs/crypto-mac) | `mac` | Message Authentication Codes (i.e. symmetric message authentication) | //! | [`signature`](https://docs.rs/signature) | `signature` | Digital signatures (i.e. public key-based message authentication) | //! | [`stream_cipher`](https://docs.rs/stream-cipher) | `stream‑cipher` | Ciphers based on randomly generated keystreams (i.e. low-level symmetric encryption) | //! | [`universal_hash`](https://docs.rs/universal-hash) | `universal‑hash` | Universal Hash Functions (used to build MACs) | //! //! [1]: https://github.com/RustCrypto/traits //! [2]: https://github.com/RustCrypto #![no_std] #![doc( html_logo_url = "https://raw.githubusercontent.com/RustCrypto/meta/master/logo.svg", html_favicon_url = "https://raw.githubusercontent.com/RustCrypto/meta/master/logo.svg" )] #![forbid(unsafe_code)] #![warn(rust_2018_idioms)] #[cfg(feature = "aead")] pub use aead; #[cfg(feature = "block-cipher")] pub use block_cipher; #[cfg(feature = "digest")] pub use digest; #[cfg(feature = "elliptic-curve")] pub use elliptic_curve; #[cfg(feature = "mac")] pub use mac; #[cfg(feature = "signature")] pub use signature; #[cfg(feature = "stream-cipher")] pub use stream_cipher; #[cfg(feature = "universal-hash")] pub use universal_hash;