# SAL Vault Examples This directory contains examples demonstrating the SAL Vault functionality. ## Overview SAL Vault provides secure key management and cryptographic operations including: - Vault creation and management - KeySpace operations (encrypted key-value stores) - Symmetric key generation and operations - Asymmetric key operations (signing and verification) - Secure key derivation from passwords ## Current Status ⚠️ **Note**: The vault module is currently being updated to use Lee's implementation. The Rhai scripting integration is temporarily disabled while we adapt the examples to work with the new vault API. ## Available Operations - **Vault Management**: Create and manage vault instances - **KeySpace Operations**: Open encrypted key-value stores within vaults - **Symmetric Encryption**: Generate keys and encrypt/decrypt data - **Asymmetric Operations**: Create keypairs, sign messages, verify signatures ## Example Files (Legacy - Sameh's Implementation) ⚠️ **These examples are currently archived and use the previous vault implementation**: - `_archive/example.rhai` - Basic example demonstrating key management, signing, and encryption - `_archive/advanced_example.rhai` - Advanced example with error handling and complex operations - `_archive/key_persistence_example.rhai` - Demonstrates creating and saving a key space to disk - `_archive/load_existing_space.rhai` - Shows how to load a previously created key space - `_archive/contract_example.rhai` - Demonstrates smart contract interactions (Ethereum) - `_archive/agung_send_transaction.rhai` - Demonstrates Ethereum transactions on Agung network - `_archive/agung_contract_with_args.rhai` - Shows contract interactions with arguments ## Current Implementation (Lee's Vault) The current vault implementation provides: ```rust // Create a new vault let vault = Vault::new(&path).await?; // Open an encrypted keyspace let keyspace = vault.open_keyspace("my_space", "password").await?; // Perform cryptographic operations // (API documentation coming soon) ``` ## Migration Status - ✅ **Vault Core**: Lee's implementation is active - ✅ **Archive**: Sameh's implementation preserved in `vault/_archive/` - ⏳ **Rhai Integration**: Being developed for Lee's implementation - ⏳ **Examples**: Will be updated to use Lee's API - ❌ **Ethereum Features**: Not available in Lee's implementation ## Security The vault uses: - **ChaCha20Poly1305** for symmetric encryption - **Password-based key derivation** for keyspace encryption - **Secure key storage** with proper isolation ## Next Steps 1. **Rhai Integration**: Implement Rhai bindings for Lee's vault 2. **New Examples**: Create examples using Lee's simpler API 3. **Documentation**: Complete API documentation for Lee's implementation 4. **Migration Guide**: Provide guidance for users migrating from Sameh's implementation