iwcore
IntelliWallet Core - A secure password manager library with AES-256 encryption.
Features
- AES-256-CBC Encryption - Industry-standard encryption with PKCS7 padding
- SQLite Storage - Reliable database storage with full ACID compliance
- Hierarchical Organization - Organize items in folders with drag-and-drop support
- Custom Field Types - 20 built-in field types (email, password, credit card, etc.) plus custom labels
- Delete & Restore - Soft-delete with full undo capability for items and fields
- Backup & Restore - ZIP-based backup with versioning, auto-cleanup, and integrity verification
- Multi-language Support - 11 languages included
- Password Generator - Random and pattern-based password generation
- Search - Full-text search across item names and field values
- Export - Data export with PDF item model support
- Database Maintenance - Compact/optimize database by purging deleted records
Installation
Add to your Cargo.toml:
[]
= "0.1.11"
Or use cargo:
Quick Start
use Wallet;
use Path;
// Create a new wallet
let mut wallet = create?;
// Add an item
let item_id = wallet.add_item?;
// Add fields to the item
wallet.add_field?;
wallet.add_field?;
// Search for items
let results = wallet.search?;
for result in results
// Close the wallet
wallet.close;
Opening an Existing Wallet
use Wallet;
use Path;
let mut wallet = open?;
// Unlock with password
if wallet.unlock?
wallet.close;
Item & Field Management
// Create folders and items
let folder_id = wallet.add_item?;
let item_id = wallet.add_item?;
// Add, update, copy, move fields
let field_id = wallet.add_field?;
wallet.update_field?;
wallet.copy_field?;
wallet.move_field?;
// Move and copy items
wallet.move_item?;
let copy_id = wallet.copy_item?;
// Soft-delete and restore
wallet.delete_item?;
let deleted = wallet.get_deleted_items?;
wallet.undelete_item?;
wallet.delete_field?;
let deleted_fields = wallet.get_deleted_fields?;
wallet.undelete_field?;
// Purge all soft-deleted records permanently
let = wallet.compact?;
Password Management
// Change wallet password (re-encrypts all data including deleted records)
wallet.change_password?;
// Check password without unlocking
let valid = wallet.check_password?;
// Lock/unlock session
wallet.lock;
assert!;
wallet.unlock?;
Password Generation
use ;
// Random password with options
let options = PasswordOptions ;
let password = generate_password;
// Pattern-based password (A=uppercase, a=lowercase, 0=digit, @=special)
let password = generate_clever_password;
Backup & Restore
use ;
use Path;
let wallet = open?;
// Create backup (automatically checkpoints WAL for data consistency)
let backup_mgr = new;
let backup_path = backup_mgr.create_backup?;
// List and manage backups
let backups = backup_mgr.list_backups?;
let latest = backup_mgr.get_latest_backup?;
// Verify backup integrity
backup_mgr.verify_backup?;
// Restore backup
backup_mgr.restore_backup?;
// Cleanup old backups
backup_mgr.cleanup_old_backups?;
backup_mgr.cleanup_auto_backups?;
Custom Labels
// Add a custom field type
wallet.add_label?;
// Update label properties
wallet.update_label_name?;
wallet.update_label_icon?;
// Delete custom label
wallet.delete_label?;
Field Types
iwcore supports 20 built-in field types:
| Code | Name | Value Type |
|---|---|---|
| PASS | Password | password |
| NOTE | Note | text |
| LINK | Link | link |
| ACNT | Account | text |
| CARD | Card | text |
| NAME | Name | text |
| PHON | Phone | phone |
| PINC | PIN | text |
| USER | Username | text |
| OLDP | Old Password | password |
| DATE | Date | date |
| TIME | Time | time |
| EXPD | Expiry Date | date |
| SNUM | Serial Number | text |
| ADDR | Address | text |
| SQUE | Secret Question | text |
| SANS | Secret Answer | text |
| 2FAC | 2FA | text |
| SEED | Seed Phrase | text |
Supported Languages
- English (en)
- German (de)
- Russian (ru)
- Ukrainian (uk)
- Polish (pl)
- Portuguese (pt)
- Belarusian (be)
- Bulgarian (bg)
- Hindi (hi)
- Catalan (ca)
- Spanish (es)
License
This project is licensed under the MIT License - see the LICENSE file for details.