ArcaSafe is a privacy-focused, cross-platform encrypted vault designed to protect files and folders using modern cryptographic standards.
The goal of ArcaSafe is simple: give users full control over their data by allowing them to create secure encrypted containers protected by their own password.
Your files. Your key. Your control.
- π Encrypt individual files or complete folders
- π Password-based access control
- π Cross-platform support
- πΎ Storage independent (NTFS, FAT32, exFAT, ext4, APFS, etc.)
- π‘οΈ Integrity verification to detect data modification
- π¦ Portable encrypted vault format
- π Secure password change mechanism
ArcaSafe does not use the user password directly as an encryption key.
The architecture follows a modern key management approach:
User password
|
v
Argon2id
|
v
Key Encryption Key (KEK)
|
v
Protects the data encryption key
|
v
AES-256-GCM
|
v
Encrypted files
| Component | Purpose |
|---|---|
| Argon2id | Password-based key derivation |
| AES-256-GCM | Authenticated file encryption |
| Secure random generator | Salt and nonce generation |
| Zeroization | Secure removal of sensitive data from memory |
ArcaSafe uses a dedicated encrypted container format.
Example:
MyDocuments.vault
A vault contains:
+----------------------+
| Header |
| Version |
| Algorithm metadata |
| Salt |
| Nonce |
| Encrypted key data |
+----------------------+
| Encrypted content |
+----------------------+
| Authentication tag |
+----------------------+
The vault can be stored on:
- Local disks
- USB drives
- External drives
- NAS
- Cloud storage
The underlying filesystem is not relevant because encryption happens at the application level.
-
Language: Rust
-
Cryptography:
- Argon2id
- AES-256-GCM
- Secure random generation
Planned:
- Tauri desktop application
- Windows / Linux / macOS support
- Create encrypted vault
- Encrypt files
- Decrypt files
- Password verification
- Vault integrity checking
- Graphical interface
- Drag & drop encryption
- File explorer integration
- Automatic vault locking
- Multiple users
- Recovery key
- Secure sharing
- Public key cryptography support
- Mobile support
cargo buildFor a release build (optimized):
cargo build --releaseDisplay the help menu:
./target/debug/arcasafe --helpThe ASCII banner and all available commands will be displayed.
./target/debug/arcasafe create my-vault.vaultYou will be prompted to enter and confirm a password.
./target/debug/arcasafe encrypt my-vault.vault /path/to/file.txtYou will be prompted for the vault password. The file will be encrypted and added to the vault.
./target/debug/arcasafe list my-vault.vaultDisplays all files stored in the vault with their original and encrypted sizes.
./target/debug/arcasafe info my-vault.vaultShows vault metadata: version, algorithm, number of files, and Argon2id parameters.
./target/debug/arcasafe verify my-vault.vaultValidates that the vault structure and cryptographic parameters are correct.
Run all tests (library and integration tests):
cargo testRun tests with output:
cargo test -- --nocaptureRun a specific test module:
cargo test kdf::tests# 1. Build the application
cargo build
# 2. Create a new vault
./target/debug/arcasafe create documents.vault
# 3. Create a test file
echo "Secret data" > secret.txt
# 4. Encrypt the file
./target/debug/arcasafe encrypt documents.vault secret.txt
# 5. List files in the vault
./target/debug/arcasafe list documents.vault
# 6. Verify vault integrity
./target/debug/arcasafe verify documents.vault
# 7. Display vault information
./target/debug/arcasafe info documents.vaultArcaSafe follows these principles:
- No plaintext password storage
- User-controlled encryption keys
- Modern authenticated encryption
- Minimal metadata exposure
- Open design for future security review
ArcaSafe is currently under development.
It should not be considered a replacement for audited security software until the code has undergone independent review.
Contributions are welcome.
Areas where help is appreciated:
- Cryptography review
- Rust development
- Cross-platform testing
- UI/UX improvements
- Security auditing
This project is licensed under the GNU General Public License v3.0 (* GPL-3.0).
See the LICENSE file for details.
Created with the goal of building a transparent and user-controlled data protection tool.
ArcaSafe