|
| 1 | +# 🔐 Dynamic Secure Portable Volume (DSPV) |
| 2 | + |
| 3 | +[](https://opensource.org/licenses/MIT) |
| 4 | +[](https://www.rust-lang.org/) |
| 5 | +[](https://github.com/g3noce/Dynamic-Secure-Portable-Volume/releases) |
| 6 | + |
| 7 | +> A portable, cross-platform encrypted container that creates a secure workspace on any USB drive or local folder without leaving traces on the host machine. |
| 8 | +
|
| 9 | +## ✨ Overview |
| 10 | + |
| 11 | +DSPV transforms any standard folder into an **encrypted vault**. By placing the executable in a directory or USB drive, all files placed inside the designated secure folder are encrypted on disk. |
| 12 | + |
| 13 | +Access is provided transparently via a local WebDAV server. You interact with your files through your OS's native file explorer, and DSPV handles the encryption and decryption on the fly in memory. |
| 14 | + |
| 15 | +## 🛡️ Core Features |
| 16 | + |
| 17 | +* **True Portability:** Single standalone executable. No drivers or administrative privileges required on the host machine. |
| 18 | +* **On-the-Fly Cryptography:** Uses **AES-256-XTS** for robust disk encryption, identical to standards used by VeraCrypt and BitLocker. |
| 19 | +* **Strong Key Derivation:** Master keys are derived using **Argon2id** with a random 32-byte salt to thwart brute-force attacks. |
| 20 | +* **Secure Memory Management:** Cryptographic keys and plain-text buffers are managed with strict `Zeroize` traits, ensuring sensitive data is securely wiped from RAM immediately after use. |
| 21 | +* **Chunk-Based I/O:** Files are not fully loaded into RAM. Read/Write operations are streamed and encrypted in chunks, allowing for the manipulation of massive files with minimal memory footprint. |
| 22 | + |
| 23 | +## 🚀 Usage Workflow |
| 24 | + |
| 25 | +### 1. Initialization |
| 26 | +1. Copy the `dspv` executable to the root of your USB drive or desired folder. |
| 27 | +2. Launch the executable. |
| 28 | +3. You will be prompted to enter a **volume encryption key**. |
| 29 | +4. A folder named `secure_volume` (or a custom name) is automatically created and locked with a `dspv.meta` file. |
| 30 | + |
| 31 | +### 2. Accessing Files |
| 32 | +Once unlocked, DSPV hosts a local WebDAV server acting as a gateway. |
| 33 | + |
| 34 | +* **Windows:** A network drive window opens automatically. Drag, drop, and edit files directly. |
| 35 | +* **Linux / macOS:** The server starts at `http://127.0.0.1:8080`. |
| 36 | + * **Linux:** Mount using `davfs2` or your file manager's "Connect to Server" feature (`dav://127.0.0.1:8080`). |
| 37 | + * **macOS:** Open Finder → Go → Connect to Server → `http://localhost:8080`. |
| 38 | + |
| 39 | +*Note: Automatic native mounting for Linux and macOS is currently being refined.* |
| 40 | + |
| 41 | +### 3. Closing the Vault |
| 42 | +Simply press `CTRL+C` in the terminal running DSPV. The server will gracefully shut down, flush all pending operations to disk, and purge the RAM. |
| 43 | + |
| 44 | +## 🛠️ Building from Source |
| 45 | + |
| 46 | +### Prerequisites |
| 47 | +* [Rust and Cargo](https://www.rust-lang.org/tools/install) (1.70+) |
| 48 | + |
| 49 | +### Compilation |
| 50 | +```bash |
| 51 | +git clone [https://github.com/g3noce/Dynamic-Secure-Portable-Volume.git](https://github.com/g3noce/Dynamic-Secure-Portable-Volume.git) |
| 52 | +cd Dynamic-Secure-Portable-Volume |
| 53 | +cargo build --release |
| 54 | +``` |
| 55 | +The compiled binary will be located at `target/release/dspv`. |
| 56 | + |
| 57 | +### Running Tests |
| 58 | +The project includes an extensive suite of critical resilience and cryptographic tests. |
| 59 | +```bash |
| 60 | +cargo test |
| 61 | +``` |
| 62 | + |
| 63 | +--- |
| 64 | + |
| 65 | +> [!WARNING] |
| 66 | +> **Disclaimer** |
| 67 | +> This software is provided "as is". While it implements strong cryptographic primitives, the security of your data ultimately depends on the strength of your password and the physical security of the host machine (which could be compromised by keyloggers or malware). Always keep backups of your encrypted vaults. |
0 commit comments