| Crates.io | zerovault |
| lib.rs | zerovault |
| version | 1.0.0 |
| created_at | 2025-04-25 14:29:33.600003+00 |
| updated_at | 2025-04-25 14:29:33.600003+00 |
| description | Fort-Knox document encryption vault with defense-in-depth security |
| homepage | |
| repository | https://github.com/ParleSec/zerovault |
| max_upload_size | |
| id | 1649065 |
| size | 117,794 |
A Fort-Knox level document encryption command-line tool with defense-in-depth security.
cargo install zerovault
# Basic encryption (will prompt for inputs)
zerovault encrypt
# Basic decryption (will prompt for inputs)
zerovault decrypt
# Encrypt a file with a password
zerovault encrypt --input document.pdf --output document.vault --password mypassword --non-interactive
# Decrypt a vault file
zerovault decrypt --input document.vault --output document.pdf --password mypassword --non-interactive
# Add a comment to describe the encrypted content
zerovault encrypt --input file.txt --comment "Confidential data"
# Force overwrite of existing files
zerovault encrypt --input file.txt --output encrypted.vault --force
# Basic decryption with output file specification
zerovault decrypt --input file.vault --output recovered.txt
# Force overwrite of existing files
zerovault decrypt --input file.vault --output recovered.txt --force
# Validate a vault file structure without decrypting
zerovault validate --input file.vault
# Show information about a vault file
zerovault info --input file.vault
# Output information in JSON format
zerovault info --input file.vault --json
# Encrypt data from stdin to stdout
cat file.txt | zerovault encrypt-stream --password mypassword > file.vault
# Decrypt data from stdin to stdout
cat file.vault | zerovault decrypt-stream --password mypassword > file_decrypted.txt
# Run self-tests to verify encryption/decryption
zerovault test
Process multiple files easily with scripts:
# Encrypt all text files in directory
for file in *.txt; do
zerovault encrypt --input "$file" --password batch_password --non-interactive
done
# Validate all vault files
for vault in *.vault; do
zerovault validate --input "$vault"
done
For integration with other tools:
zerovault info --input file.vault --json
zerovault encrypt --input file.txt --json
$ zerovault encrypt
Enter input file path: document.txt
Enter output file path [document.txt.vault]:
Enter encryption password: ********
Confirm password: ********
Enter comment (optional): My secure document
✓ File encrypted successfully
Input: document.txt
Output: document.txt.vault
Size: 1024 bytes
Comment: My secure document
You can encrypt already encrypted files for layered security:
# First layer of encryption
zerovault encrypt --input secret.txt --output layer1.vault --password inner_password
# Second layer of encryption
zerovault encrypt --input layer1.vault --output layer2.vault --password outer_password
For secure document sharing:
# 1. Sender encrypts file with comment
zerovault encrypt --input presentation.pptx --comment "For review - Confidential"
# 2. Share the vault file and password securely with recipient
# 3. Recipient verifies file metadata before decryption
zerovault info --input presentation.pptx.vault
# 4. Recipient decrypts file
zerovault decrypt --input presentation.pptx.vault
This project is licensed under the MIT License. See the LICENSE file for details.
ZeroVault is built on the zero_vault_core library, which is also available on crates.io for use in other Rust projects.