dexios_core/lib.rs
1//! ## What is it?
2//!
3//! Dexios-Core is a library used for managing cryptographic functions and headers that adhere to the Dexios format.
4//!
5//! ## Security
6//!
7//! Dexios-Core uses modern, secure and audited<sup>1</sup> AEADs for encryption and decryption.
8//!
9//! You may find the audits for both AES-256-GCM and XChaCha20-Poly1305 on [the NCC Group's website](https://research.nccgroup.com/2020/02/26/public-report-rustcrypto-aes-gcm-and-chacha20poly1305-implementation-review/).
10//!
11//! <sup>1</sup> Deoxys-II-256 does not have an official audit, so use it at your own risk
12//!
13//! ## Who uses Dexios-Core?
14//!
15//! This library is implemented by [Dexios](https://github.com/brxken128/dexios), a secure command-line file
16//! encryption utility.
17//!
18//! Dexios-Core makes it easy to integrate the Dexios format into your own projects (and if there's a feature that you'd like to see, please don't hesitate to [open a Github issue](https://github.com/brxken128/dexios-core/issues)).
19//!
20//! ## Donating
21//!
22//! If you like my work, and want to help support Dexios, or Dexios-Core, feel free to donate! This is not necessary by any means, so please don't feel obliged to do so.
23//!
24//! ```text
25//! XMR: 84zSGS18aHtT3CZjZUnnWpCsz1wmA5f65G6BXisbrvAiH7PxZpP8GorbdjAQYRtfeiANZywwUPjZcHu8eXJeWdafJQFK46G
26//! BTC: bc1q8x0r7khrfj40qd0zr5xv3t9nl92rz2387pu48u
27//! ETH: 0x9630f95F11dFa8703b71DbF746E5c83A31A3F2DD
28//! ```
29//!
30//! You can read more about Dexios, Dexios-Core and the technical details [in the project's main documentation](https://brxken128.github.io/dexios/)!
31//!
32//! ## Thank you!
33//!
34//! Dexios-Core exclusively uses AEADs provided by the [RustCrypto Team](https://github.com/RustCrypto), so I'd like to give them a huge thank you for their hard work (this wouldn't have been possible without them!)
35#![deny(clippy::all)]
36
37pub const CORE_VERSION: &str = env!("CARGO_PKG_VERSION");
38
39pub mod cipher;
40pub mod header;
41pub mod key;
42pub mod primitives;
43pub mod protected;
44pub mod stream;
45pub use aead::Payload;
46pub use zeroize::Zeroize;
47
48#[cfg(feature = "visual")]
49pub mod visual;