Some checks are pending
Rhai Tests / Run Rhai Tests (push) Waiting to run
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.