shadow_crypt/
lib.rs

1//! # Shadow Crypt
2//!
3//! Password-based file encryption with filename obfuscation.
4//!
5//! ## Features
6//!
7//! - **Strong Algorithms**: XChaCha20-Poly1305 cipher, Argon2id key derivation
8//! - **No Storage**: Sensitive data is retained only in memory during operation
9//! - **Memory Safety**: Zeroizes sensitive data in memory after use
10//! - **No Dependencies**: Pure Rust implementation
11//!
12//! ## Command Line Usage
13//!
14//! This crate provides three command-line tools:
15//!
16//! - `shadow` - Encrypt files
17//! - `unshadow` - Decrypt files  
18//! - `shadows` - List encrypted files
19//!
20//! ## Architecture
21//!
22//! The implementation is split into two main modules:
23//!
24//! - [`core`] - Core cryptographic operations and types (deterministic, no I/O)
25//! - [`shell`] - Command-line interface and file I/O operations
26//!
27//! ## Security
28//!
29//! All sensitive data is automatically zeroized from memory after use. The implementation
30//! uses well-established cryptographic primitives and follows security best practices.
31//!
32//! ## Installation
33//!
34//! ```bash
35//! cargo install shadow-crypt
36//! ```
37//!
38//! ## Examples
39//!
40//! ### Encrypt Files
41//! ```bash
42//! shadow file1.txt file*.jpg
43//! ```
44//!
45//! ### Decrypt Files
46//! ```bash
47//! unshadow mzpuTgQmBPJfTAJh.shadow RzxZGbTQAxxBseaI.shadow
48//! ```
49//!
50//! ### List Encrypted Files
51//! ```bash
52//! shadows
53//! ```
54
55// Re-export the shell crate for unified documentation
56/// Main workflows and I/O operations.
57#[doc(inline)]
58pub use shadow_crypt_shell as shell;
59
60/// Core types and deterministic operations.
61#[doc(inline)]
62pub use shadow_crypt_core as core;