- Fix typo in Flutter to iOS reuse duration parameter name @jefmathiot #125
- upgrade dependency to web 1.0
- enable building on jdk 17 and up #117 thanks @connyduck
- Split Split authenticationValidityDurationSeconds between android and iOS
darwinTouchIDAuthenticationForceReuseContextDuration
: Basically the equivalent toandroidAuthenticationValidityDuration
darwinTouchIDAuthenticationAllowableReuseDuration
- android: return correct code if no biometric is enrolled #115 @ThomasLamprecht
- web: migrate from dart:html to package:web (for wasm support).
- Add option for iOS/MacOS to allow non-biometric authentication (
darwinBiometricOnly
) #101- Improve [canAuthenticate] to differentiate between no available biometry and no available user code.
- Bump dart sdk requirement to
3.2
.
- Add topics to pubspec.yaml
- Android: Upgrade AGP, fix building with AGP 8
- Android: Depend on slf4j-api.
- MacOS: fix building on MacOS
- Allow overriding of
promptInfo
duringread
/write
thanks @luckyrat - Android: (POTENTIALLY BREAKING): Completely removed deprecated old file backend
based on
androidx.security
. This was deprecated since version 3.0.0 and users should have been migrated on every read or write. (this is only internally, does not change anything of the API). - Update dependencies.
- iOS/MacOS: Reuse LAContext to make
touchIDAuthenticationAllowableReuseDuration
work. thanks @radvansky-tomas
- Android: Move File I/O and encryption to background thread. (Previously used UI Thread) #64
- Fix building on all platforms, add github actions to test building.
- Android: Remove Moshi dependency altogether. #53
- Update to Moshi 1.13 for Kotlin 1.6.0 compatibility. #53
- Fixed compile errors with Flutter >= 2.8.0 (Compatible with Flutter 2.5). #47 fix #42
- Android: Validate options on
int
WhenauthenticationValidityDurationSeconds == -1
, thenandroidBiometricOnly
must betrue
- Android: if
authenticationValidityDurationSeconds
is> 0
only show authentication prompt when necessary. (It will simply try to use the key, and show the auth prompt only when aUserNotAuthenticatedException
is thrown). - Android: When biometric key is invalidated (e.g. because biometric security is changed on the device), we simply delete the old key and data! (KeyPermanentlyInvalidatedException)
- Stable Release 🥳
- **Please check below for breaking changes in the
-rc
releases.
- Android: Fix a few bugs with
authenticationValidityDurationSeconds
== -1 - iOS/MacOS: Don't set timeout for
authenticationValidityDurationSeconds
== -1 - iOS/MacOS: Don't raise an error on
delete
if item was not found. - Android: Fix user cancel code.
(Previously an
unknown
exception was thrown instead ofuserCanceled
) - Android: Ignore
androidBiometricOnly
prior to Android R (30). - Introduce
AuthExceptionCode.canceled
-
Breaking Change:
authenticationValidityDurationSeconds
is now-1
by default, which was not supported before hand. If you need backward compatibility, make sure to override this value to the previous value of10
. -
Breaking Change: No more support for Android v1 Plugin registration.
-
Breaking Change: No longer using androidx.security, but instead handle encryption directly. Temporarily there is a fallback to read old content. This requires either reencrypting everything, or old data will no longer be readable.
- This should fix a lot of errors.
- This now finally also allows using
authenticationValidityDurationSeconds
= -1. BIOMETRIC_WEAK
is no longer used, onlyBIOMETRIC_STRONG
.
-
Don't ask for authentication for delete.
- Breaking Change: due to the introduction of iOS prompt info there is now a wrapper object
PromptInfo
which containsAndroidPromptInfo
andIosPromptInfo
. - Android: Add support for local (non-biometric) storage (#28, thanks @killalad)
- Android: Update all gradle dependencies, removed gradle-wrapper from plugin folder.
- iOS: Add support for customizing prompt strings.
- MacOS: Add support for customizing prompt strings.
- Android
- compatibility with kotlin 1.5.20
- Remove jcenter() references.
- androidx.core:core:1.3.2 to 1.6.0
- moshi from 1.11.0 to 1.12.0 (this is the kotlin 1.5.20 compatibility problem)
- Android upgrade dependencies:
- androidx.security:security-crypto from 1.1.0-alpha02 to 1.1.0-alpha03
- androidx.biometric:biometric from 1.1.0-beta01 to 1.2.0-alpha03
- Update README to clarify minSdkVersion and kotlin version
- Handle android
BIOMETRIC_STATUS_UNKNOWN
response on older devices (Android 9/API 28(?))
- Null safety stable release.
- Null safety migration.
- upgrade android moshi dependency.
- Upgrade to latest Android dependencies (gradle plugin, androidx.*, gradle plugin)
- androidx.security:security-crypto 1.0.0-rc02 to 1.1.0-alpha02
- androidx.biometric:biometric 1.0.1 to 1.1.0-beta01
- Workaround to not load win32 when compiling for web.
- Fix windows plugin config.
- Support for web support: Warning: Unencrypted - stores into local storage on web!
- Updated README to add details about windows.
- Windows: Initial support for windows. only unauthenticated storage in Credential Manager.
- Linux: Improve snap compatibility by detecting AppArmor error to prompt users to connect to password-manager-service.
- Linux: Initial support for Linux - only unauthenticated storage in Keyring.
- Android: androidx.security 1.0.0-rc02 needs another proguard rule. tink-crypto/tink#361
- Android: Upgrade to androidx.security 1.0.0-rc02 which should fix protobuf incompatibilities #6 https://developer.android.com/jetpack/androidx/releases/security#security-crypto-1.0.0-rc02
- Android: fix PromptInfo deserialization with minification.
- Android: add proguard setting to fix protobuf exceptions.
- Android: updated dependencies to androidx.security, biometric, gradle tools.
- Android: on error send stack trace to flutter. also fixed a couple of warnings.
- Android: allow customization of the PromptInfo (labels, buttons, etc). @patrickhammond
- ios: added swift 5 dependency to podspec to fix compile errors #3
- android: fingerprint failures don't cancel the dialog, so don't trigger error callback. #2 (fixes crash)
- Use android v2 plugin API.
- Use new plugin format for Mac OS format. Not compatible with flutter 1.9.x
- Use legacy plugin platforms structure to be compatible with flutter stable.
- fixed home page link, updated example README.
- Android: Use codegen instead of reflection for json serialization. (Fixes bug that options aren't assed in correctly due to minification)
- Android: Fix for having multiple files with different configurations.
- Correctly handle UserCanceled events.
- Define correct default values on dart side (10 seconds validity timeout).
- MacOS Support
- iOS Support
- Support for non-authenticated storage (ie. secure/encrypted storage, without extra biometric authenticatiton prompts)
- delete()'ing files.
- Android Support.