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
69
70
71
72
73
74
75
76
77
78
79
//! envseal — sudo can't read your keys.
//!
//! Write-only secret vault with process-level access control,
//! out-of-band GUI approval, and a master key that is sealed to the
//! physical device. Built for a world where AI agents have full
//! shell access to developer machines.
//!
//! # Security Architecture
//!
//! - **Passphrase-protected master key**: Argon2id KDF, GUI-only entry.
//! - **Hardware-sealed master key** ([`vault::hardware`]): outer wrap by
//! Windows DPAPI, macOS Secure Enclave, or Linux TPM 2.0. A copy of
//! `master.key` does not decrypt on any other machine.
//! - **Memory hardening**: `memfd_secret` on Linux 5.14+, `mlock` +
//! `prctl(PR_SET_DUMPABLE, 0)` everywhere else, `VirtualLock` on
//! Windows, zeroize on drop.
//! - **Environment sanitization**: `LD_PRELOAD`/`LD_AUDIT`/`PYTHONPATH`/
//! `NODE_OPTIONS` detection at every boundary.
//! - **Binary integrity** ([`policy::rules`]): SHA-256 hash verification
//! before injection, argv-fingerprint binding so an `Allow Always`
//! for `wrangler deploy` doesn't extend to `wrangler --shell evil`.
//! - **Policy signing**: HMAC-SHA256 tamper detection on `policy.toml`.
//! - **Sandbox tiers** ([`sandbox`]): None / Hardened / Lockdown across
//! Linux namespaces, macOS SBPL, Windows Job Objects (latter via
//! pre-spawn `CREATE_SUSPENDED` + `NtResumeProcess` so the child is
//! born inside the job).
//! - **Out-of-band approval** ([`gui`]): GUI popup or paired-device
//! relay; relay-required mode fails closed if relay is unavailable.
//! - **Developer-migration UX** ([`migration`]): preexec hooks for
//! bash/zsh/fish, shell-history scanner, drop-in compatibility
//! shims for `op` / `doppler` / `vault` CLI surfaces.
//! - **Zero CLI surface**: secrets never appear in CLI args or shell
//! history.
/// Cross-platform GUI dialog orchestration.
pub
// Backward-compatible re-exports — these submodules previously lived at the
// crate root and are now under domain subdirectories. Keep them addressable
// at their old paths so consumers (CLI, MCP, desktop, tests) don't have to
// change their imports.
pub use config as security_config;
pub use totp;
pub use inject;
pub use supervised as supervisor;
pub use file as envseal_file;
pub use relay;
pub use health as secret_health;
pub use keychain;