biometric_storage 1.0.0
biometric_storage: ^1.0.0 copied to clipboard
Secure Storage: Encrypted data store optionally secured by biometric lock with support for iOS, Android, MacOS, Linux (unauthenticated), Windows (unauthenticated).
biometric_storage #
Encrypted file store, optionally secured by biometric lock for Android, iOS, MacOS and Linux (partial support).
Meant as a way to store small data in a hardware encrypted fashion. E.g. to store passwords, secret keys, etc. but not massive amounts of data.
- Android: Uses androidx with KeyStore.
- iOS and MacOS: LocalAuthentication with KeyChain.
- Linux: Stores values in Keyring using libsecret. (No biometric authentication support).
Check out AuthPass Password Manager for a app which makes heavy use of this plugin.
Versions #
- Use 0.2.x for legacy plugin format for iOS and android support.
- Use 0.3.x-beta for the new platforms pubspec format which also supports mac OS.
Getting Started #
Android #
- Requirements:
-
Android: API Level >= 23
-
MainActivity must extend FlutterFragmentActivity
-
Theme for the main activity must use
Theme.AppCompat
thme. (Otherwise there will be crases on Android < 29) For example:AndroidManifest.xml:
<activity android:name=".MainActivity" android:launchMode="singleTop" android:theme="@style/LaunchTheme"
xml/styles.xml:
<style name="LaunchTheme" parent="Theme.AppCompat.NoActionBar"> <!-- Show a splash screen on the activity. Automatically removed when Flutter draws its first frame --> <item name="android:windowBackground">@drawable/launch_background</item> <item name="android:windowNoTitle">true</item> <item name="android:windowActionBar">false</item> <item name="android:windowFullscreen">true</item> <item name="android:windowContentOverlay">@null</item> </style>
-
iOS #
- include the NSFaceIDUsageDescription key in your app’s Info.plist file
- Requires at least iOS 9
Mac OS #
- include the NSFaceIDUsageDescription key in your app’s Info.plist file
- enable keychain sharing and signing. (not sure why this is required. but without it
You will probably see an error like:
SecurityError, Error while writing data: -34018: A required entitlement isn't present.
- Requires at least Mac OS 10.12