secure_prefs_plus 1.0.0
secure_prefs_plus: ^1.0.0 copied to clipboard
A secure storage solution combining SharedPreferences with AES-256-GCM encryption. Cross-platform support including web, with pure Dart implementation.
Changelog #
All notable changes to the secure_prefs_plus
package will be documented in this file.
1.0.0 - 2024-01-01 #
Added #
- Initial release of SecurePrefsPlus
- AES-256-GCM encryption using PointyCastle
- PBKDF2 key derivation for secure key generation
- SharedPreferences-like API for easy adoption
- Support for all basic data types:
- String
- int
- double
- bool
- List
- Cross-platform compatibility (iOS, Android, Web, Desktop)
- Comprehensive example application
- Complete documentation and README
- MIT license
Features #
- Automatic encryption key generation
- Manual encryption key support for maximum security
- Type-safe storage methods
- Familiar API similar to SharedPreferences
- Error handling for encryption/decryption failures
- Utility methods:
containsKey
,remove
,clear
,getKeys
,reload
Security #
- AES-256-GCM encryption for confidentiality and authenticity
- Random IV generation for each encryption operation
- PBKDF2 key derivation with configurable iterations
- Secure random number generation for cryptographic operations
1.0.1 - 2024-01-15 #
1.1.0 - 2024-02-01 #
Added #
- Migration helper from SharedPreferences to SecurePrefsPlus
- Backup and restore functionality for secure data transfer
- Key rotation support for enhanced security
- Performance optimizations for large data sets
New Methods #
migrateFromSharedPreferences()
- Migrate existing SharedPreferences dataexportEncryptedData()
- Export all data for backupimportEncryptedData()
- Import previously exported datarotateEncryptionKey()
- Re-encrypt all data with new key
Enhanced #
- Better memory handling for large encryption operations
- Improved IV generation using cryptographically secure random
- Additional validation for encryption keys
1.2.0 - 2024-03-01 #
Added #
- Flutter Web support enhancements
- Keychain integration for iOS (optional)
- Keystore integration for Android (optional)
- Biometric authentication support (optional)
New Features #
SecurePrefsPlus.withBiometric()
- Initialize with biometric protectionsetStringWithBiometric()
- Store data requiring biometric authgetStringWithBiometric()
- Retrieve data with biometric prompt
Dependencies #
- Added optional
local_auth
dependency for biometric features - Added optional
flutter_secure_storage
for platform-specific secure storage
2.0.0 - 2024-04-01 #
Breaking Changes #
- Null safety migration completed
- Minimum Flutter version increased to 3.0.0
- API cleanup - removed deprecated methods
Added #
- Sound null safety throughout the codebase
- Extended encryption support for complex objects
- Stream-based updates for reactive programming
New Methods #
setObject<T>()
- Store any serializable objectgetObject<T>()
- Retrieve typed objectswatchKey(String key)
- Stream for key changesgetAllValues()
- Get all decrypted values at once
Performance #
- Reduced memory allocation during encryption/decryption
- Faster key derivation with optimized PBKDF2 implementation
- Lazy loading of infrequently accessed data
2.1.0 - 2024-05-01 #
Added #
- Custom encryption algorithms support
- Multiple encryption key support per instance
- Data compression before encryption (optional)
- Benchmarking utilities for performance testing
Enhanced #
- Better algorithm agility - easy to switch encryption methods
- Improved key management - support for key hierarchies
- Enhanced security - protection against timing attacks
New Features #
setCompressedString()
- Store compressed and encrypted datagetCompressedString()
- Retrieve and decompress databenchmarkEncryption()
- Test encryption performance
[Unreleased] #
Planned Features #
- Support for SQLite-based encrypted storage
- Cloud backup integration with end-to-end encryption
- Advanced key management with hardware security module support
- Quantum-resistant encryption algorithms
- Multi-user support within single app instance
Known Issues #
- None currently reported
Migration Guides #
Migrating from 1.x to 2.0 #
Version 2.0 introduces null safety and requires Flutter 3.0+. Update your dependencies:
dependencies:
secure_prefs_plus: ^2.0.0