2.1 KiB
2.1 KiB
Hero Vault Cryptography Examples
This directory contains examples demonstrating the Hero Vault cryptography functionality integrated into the SAL project.
Overview
Hero Vault provides cryptographic operations including:
- Key space management (creation, loading, encryption, decryption)
- Keypair management (creation, selection, listing)
- Digital signatures (signing and verification)
- Symmetric encryption (key generation, encryption, decryption)
- Ethereum wallet functionality
Directory Structure
rhai/
- Rhai script examples demonstrating Hero Vault functionalityexample.rhai
- Basic example demonstrating key management, signing, and encryptionadvanced_example.rhai
- Advanced example with error handling and more complex operationskey_persistence_example.rhai
- Demonstrates creating and saving a key space to diskload_existing_space.rhai
- Shows how to load a previously created key space and use its keypairsREADME.md
- Documentation for the Rhai scripting API
Running the Examples
You can run the examples using the herodo
tool that comes with the SAL project:
# Run a single example
herodo --path rhai/example.rhai
# Run all examples using the provided script
./run_examples.sh
Key Space Storage
Key spaces are stored in the ~/.hero-vault/key-spaces/
directory by default. Each key space is stored in a separate JSON file named after the key space (e.g., my_space.json
).
Security
Key spaces are encrypted with ChaCha20Poly1305 using a key derived from the provided password. The encryption ensures that the key material is secure at rest.
Best Practices
- Use Strong Passwords: Since the security of your key spaces depends on the strength of your passwords, use strong, unique passwords.
- Backup Key Spaces: Regularly backup your key spaces directory to prevent data loss.
- Script Organization: Split your scripts into logical units, with separate scripts for key creation and key usage.
- Error Handling: Always check the return values of functions to ensure operations succeeded before proceeding.