A secure, cross-platform vault application built with Kotlin Multiplatform and Compose Multiplatform. SecureVault provides encrypted storage for sensitive data across Android, iOS, and Desktop platforms.
- 🔒 End-to-End Encryption: All data is encrypted using AES-256-GCM encryption
- 📱 Cross-Platform: Works on Android, iOS, and Desktop (JVM)
- 🛡️ Platform-Specific Security:
- Android: Uses Android Keystore for secure key storage
- iOS: Uses iOS Keychain for secure data storage
- Desktop: Uses PKCS12 keystore with encrypted file storage
- ⚡ Real-time: Coroutine-based async operations
SecureVault/
├── composeApp/ # Main application with Compose UI
├── shared/ # Shared business logic and platform implementations
│ ├── commonMain/ # Common interfaces and data classes
│ ├── androidMain/ # Android-specific implementation
│ ├── iosMain/ # iOS-specific implementation
│ └── jvmMain/ # Desktop-specific implementation
└── iosApp/ # iOS app entry point
- Uses Android Keystore for secure key generation and storage
- AES-256-GCM encryption with random IVs
- Encrypted data stored in SharedPreferences
- Uses iOS Keychain for secure data storage
- Data accessible only when device is unlocked
- Device-only access (no iCloud sync)
- PKCS12 keystore for key management
- AES-256-GCM encryption
- Encrypted data stored in local file system
- Configurable password protection
- Android Studio Hedgehog or later
- JDK 17
- Kotlin 2.2.0+
- For iOS development: Xcode 15+ and macOS
- Save Data: Enter a key and value, then tap "Save to Vault"
- Retrieve Data: Enter a key and tap "Get from Vault"
- Security: All data is automatically encrypted before storage
- AES-256-GCM encryption for all data
- Platform-specific secure storage
- Random IVs for each encryption operation
- Secure key generation and storage
- Desktop Implementation: Uses hardcoded password "changeit" - should be configurable
- No Biometric Auth: Biometric authentication is planned but not yet implemented
- No Key Rotation: Keys are persistent and not rotated
- Local Storage Only: No cloud sync or backup functionality
- Make desktop keystore password configurable via environment variables
- Implement biometric authentication
- Add key rotation capabilities
- Add secure backup/restore functionality
- Implement secure deletion (overwrite data before deletion)
- Add audit logging for security events
composeApp/src/commonMain/: Shared UI componentsshared/src/commonMain/: Core vault interfaceshared/src/androidMain/: Android-specific implementationshared/src/iosMain/: iOS-specific implementationshared/src/jvmMain/: Desktop-specific implementation
This project is licensed under the MIT License - see the LICENSE file for details.