Bump flutter_secure_storage from 9.2.4 to 10.1.0
Type: Pull Request
State: Open
Association: Unknown
Comments: 1
(about 1 month ago)
(about 1 month ago)
Bumps flutter_secure_storage from 9.2.4 to 10.1.0.
Release notes
Sourced from flutter_secure_storage's releases.
v10.1.0
Android
- Added
storageNamespaceoption toAndroidOptionsfor full namespace isolation across storage instances (SharedPreferences, KeyStore aliases, config/key storage). Use this instead ofsharedPreferencesNamewhen running multipleFlutterSecureStorageinstances with different cipher configurations.- Deprecated
sharedPreferencesNamein favor ofstorageNamespace, which provides complete isolation rather than data-only isolation.- Added
migrateWithBackupoption toAndroidOptionsfor crash-resistant migration. When enabled, backup copies of encrypted data are created before migration starts, allowing recovery if migration fails or the app crashes mid-migration. Works in conjunction withmigrateOnAlgorithmChange.- Made
KeyCipherAlgorithmandStorageCipherAlgorithmpublic enums.Fixes:
- Fixed crash on biometric failure (not error).
- Fixed null safety issue in
MethodRunnerthat could cause a crash on Android.- Fixed config being overwritten on initialization.
- Fixed default Android key cipher not aligning with the Flutter default.
iOS / macOS
- Added
useSecureEnclaveoption toIOSOptionsandMacOsOptionsto store keys in the device's Secure Enclave for hardware-backed security.Fixes:
- Fixed
kSecAttrSynchronizablebeing silently dropped when no access control flags are set.- Fixed
readAllnot returning Secure Enclave items correctly.v10.0.0
This major release brings significant security improvements, platform updates, and modernization across all supported platforms.
Android
Due to the deprecation of Jetpack Security library, the Android implementation has been largely rewritten with custom secure ciphers, enhanced biometrics support, and migration tools.
Breaking Changes:
AndroidOptions().encryptedSharedPreferencesis now deprecated due to Jetpack Crypto package deprecation
- Migration will automatically happen due to
migrateOnAlgorithmChange: true, which can also be set to false if not wanted.- ResetOnError will now automatically be true, because most errors are unrecoverable due to key storage problems. It can still be disabled with
resetOnError: false- Default key cipher changed to
RSA_ECB_OAEPwithSHA_256andMGF1Padding- Default storage cipher changed to
AES_GCM_NoPadding- Minimum Android SDK changed from 19 to 23
- Target SDK updated to 36
- Migrated from deprecated Jetpack Crypto library to custom cipher implementation (Tink doesn't support biometrics)
- Migrated to Java Version 17
New Features:
- New named constructors:
AndroidOptions(),AndroidOptions.biometric()AndroidOptions().migrateOnAlgorithmChangeautomatically migrates data to new ciphers when enabled- Improved biometric authentication with graceful degradation when device has no security setup
- Migration tools for transitioning from deprecated encryptedSharedPreferences
- Enhanced error handling with proper exception messages for biometric unavailability
Fixes:
- Fixed biometric authentication on devices without security (PIN/pattern/password) - now gracefully degrades when
enforceBiometrics=false- Fixed storage cipher and key cipher pairing validation
- Fixed migration checks for encrypted shared preferences
- Fixed biometric permission handling
- Fixed exception when reading data after boot
... (truncated)
Commits
997c9c0fix: release of v10.1.0f099e17release of v0.3.034908eerelease of v2.1.1100ba67fix: tests for secure enclave, doc clarification1dcad37fix: missing changelog entries080b6bfMerge pull request #1107 from juliansteenbakker/dependabot/gradle/flutter_sec...aae82ceMerge branch 'develop' into dependabot/gradle/flutter_secure_storage/example/...e3521eeMerge pull request #1116 from juliansteenbakker/feat/linux-tests24a0d6cfeat: linux native testsb9ab979Merge pull request #1093 from juliansteenbakker/feat/windows-tests- Additional commits viewable in compare view
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebasewill rebase this PR@dependabot recreatewill recreate this PR, overwriting any edits that have been made to it@dependabot show <dependency name> ignore conditionswill show all of the ignore conditions of the specified dependency@dependabot ignore this major versionwill close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor versionwill close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependencywill close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Package Dependencies
Technical Details
| ID: | 15725534 |
| UUID: | 4414294734 |
| Node ID: | PR_kwDOSZFYFs7Z7jAL |
| Host: | GitHub |
| Repository: | inossan-dev/codebase-flutter |