## 5.1.1-dev.1

* Improve `canAuthenticate` to include `InitOptions` to decide for which authenticaiton type to check.

## 5.1.0

* Fix typo in Flutter to iOS reuse duration parameter name @jefmathiot #125

## 5.1.0-rc.5

* upgrade dependency to web 1.0

## 5.1.0-rc.4

* enable building on jdk 17 and up https://github.com/authpass/biometric_storage/issues/117 thanks @connyduck

## 5.1.0-rc.3

* Split Split authenticationValidityDurationSeconds between android and iOS
  * `darwinTouchIDAuthenticationForceReuseContextDuration`: Basically the equivalent to `androidAuthenticationValidityDuration`
  * `darwinTouchIDAuthenticationAllowableReuseDuration`
* android: return correct code if no biometric is enrolled #115 @ThomasLamprecht
* web: migrate from dart:html to package:web (for wasm support).

## 5.0.1

* 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`.

## 5.0.0+4

* Add topics to pubspec.yaml

## 5.0.0+3

* Android: Upgrade AGP, fix building with AGP 8
* Android: Depend on slf4j-api.

## 5.0.0+1

* MacOS: fix building on MacOS

## 5.0.0

* Allow overriding of `promptInfo` during `read`/`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.

## 4.1.3

* iOS/MacOS: Reuse LAContext to make `touchIDAuthenticationAllowableReuseDuration` work.
    thanks @radvansky-tomas

## 4.1.2

* Android: Move File I/O and encryption to background thread. (Previously used UI Thread)
     https://github.com/authpass/biometric_storage/pull/64   

## 4.1.1

* Fix building on all platforms, add github actions to test building.

## 4.1.0

* Android: Remove Moshi dependency altogether. #53

## 4.0.1

* Update to Moshi 1.13 for Kotlin 1.6.0 compatibility. #53 

## 4.0.0

* Fixed compile errors with Flutter >= 2.8.0 (Compatible with Flutter 2.5). #47 fix #42

## 3.0.1

* Android: Validate options on `int`
  When `authenticationValidityDurationSeconds == -1`, then `androidBiometricOnly` must be `true`
* 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 a
  `UserNotAuthenticatedException` 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)

## 3.0.0

* Stable Release 🥳
* **Please check below for breaking changes in the `-rc` releases.

## 3.0.0-rc.12

* 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 of `userCanceled`)
* Android: Ignore `androidBiometricOnly` prior to Android R (30).
* Introduce `AuthExceptionCode.canceled`

## 3.0.0-rc.7

* **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 of `10`.
* **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.
  
  1. This should fix a lot of errors.
  2. This now finally also allows using `authenticationValidityDurationSeconds` = -1.
  3. `BIOMETRIC_WEAK` is no longer used, only `BIOMETRIC_STRONG`.
* Don't ask for authentication for delete.

## 3.0.0-rc.5

* **Breaking Change**: due to the introduction of iOS prompt info there is now a wrapper object
  `PromptInfo` which contains `AndroidPromptInfo` and `IosPromptInfo`.
* 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.

## 2.0.3

* 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)

## 2.0.2

* 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

## 2.0.1

* Handle android `BIOMETRIC_STATUS_UNKNOWN` response on older devices
  (Android 9/API 28(?))

## 2.0.0

* Null safety stable release.

## 2.0.0-nullsafety.1

* Null safety migration.

## 1.1.0+1

* upgrade android moshi dependency.

## 1.1.0

* Upgrade to latest Android dependencies (gradle plugin, androidx.*, gradle plugin)
  * [androidx.security:security-crypto](https://developer.android.com/jetpack/androidx/releases/security) 1.0.0-rc02 to 1.1.0-alpha02
  * [androidx.biometric:biometric](https://developer.android.com/jetpack/androidx/releases/biometric) 1.0.1 to 1.1.0-beta01

## 1.0.1+5

* Workaround to not load win32 when compiling for web.

## 1.0.1+4

* Fix windows plugin config.

## 1.0.1+1

* Support for web support: **Warning**: Unencrypted - stores into local storage on web!
* Updated README to add details about windows.

## 1.0.0

* Windows: Initial support for windows. only unauthenticated storage in Credential Manager.

## 0.4.1

* Linux: Improve snap compatibility by detecting AppArmor error to prompt users to connect
         to password-manager-service.

## 0.4.0

* Linux: Initial support for Linux - only unauthenticated storage in Keyring.

## 0.3.4+6

* Android: androidx.security 1.0.0-rc02 needs another proguard rule.
  https://github.com/google/tink/issues/361

## 0.3.4+5

* 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

## 0.3.4+4

* Android: fix PromptInfo deserialization with minification.
* Android: add proguard setting to fix protobuf exceptions.

## 0.3.4+2

* Android: updated dependencies to androidx.security, biometric, gradle tools.

## 0.3.4+1

* Android: on error send stack trace to flutter. also fixed a couple of warnings.

## 0.3.4

* Android: allow customization of the PromptInfo (labels, buttons, etc).
  @patrickhammond

## 0.3.3

* ios: added swift 5 dependency to podspec to fix compile errors
       https://github.com/authpass/biometric_storage/issues/3

## 0.3.2

* android: fingerprint failures don't cancel the dialog, so don't trigger error callback. #2
  (fixes crash)

## 0.3.1

* Use android v2 plugin API.

## 0.3.0-beta.2

* Use new plugin format for Mac OS format. Not compatible with flutter 1.9.x

## 0.2.2+2

* Use legacy plugin platforms structure to be compatible with flutter stable.

## 0.2.2+1

* fixed home page link, updated example README. 

## 0.2.2

* Android: Use codegen instead of reflection for json serialization.
  (Fixes bug that options aren't assed in correctly due to minification)

## 0.2.1

* Android: Fix for having multiple files with different configurations.
* Correctly handle UserCanceled events.
* Define correct default values on dart side (10 seconds validity timeout).

## 0.2.0

* MacOS Support

## 0.1.0

* iOS Support
* Support for non-authenticated storage (ie. secure/encrypted storage, 
  without extra biometric authenticatiton prompts)
* delete()'ing files.

## 0.0.1 - Initial release

* Android Support.