Skip to content

Commit 5e4db7e

Browse files
committed
chore: bump version to 9.0.1 and update documentation
This commit bumps the version from 9.0.0 to 9.0.1 across the plugin and all example applications. It also includes significant documentation updates and a dependency maintenance. ### Documentation - **Biometric Decryption**: Added a new section to `README.md` describing the decryption lifecycle, accompanied by a process diagram. - **Windows Integration**: Clarified platform-specific details for Windows Hello, including the use of `KeyCredentialManager`, TPM backing, and the RSA-2048 constraint. - **Metadata**: Updated `pubspec.yaml` description to explicitly mention support for Android, iOS, macOS, and Windows. ### Maintenance - **Android**: Updated `androidx.biometric:biometric` dependency from `1.4.0-alpha04` to `1.4.0-alpha05`. - **Version Bump**: Updated version strings in `pubspec.yaml`, `pubspec.lock` files, podspecs, and the example app's UI. - **Assets**: Added `usecase-2.jpeg` to support new documentation.
1 parent d95fe57 commit 5e4db7e

File tree

20 files changed

+53
-32
lines changed

20 files changed

+53
-32
lines changed

CHANGELOG.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,10 @@
1+
## [9.0.1] - 2025-12-21
2+
3+
* **Feature:** Added "Biometric Decryption" section to `README.md` with a detailed lifecycle diagram (`usecase-2.png`) and process description.
4+
* **Improved:** Enhanced Windows platform documentation to clarify `KeyCredentialManager` usage, TPM backing, RSA-2048 constraints, and lack of decryption support.
5+
* **Metadata:** Updated `pubspec.yaml` description to explicitly include supported platforms and Windows Hello.
6+
* **Maintenance:** Updated Android native dependency.
7+
18
## [9.0.0] - 2025-12-18
29

310
* **Breaking**: Method signature changes:

README.md

Lines changed: 20 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -164,7 +164,7 @@ To get started with Biometric Signature, follow these steps:
164164

165165
```yaml
166166
dependencies:
167-
biometric_signature: ^9.0.0
167+
biometric_signature: ^9.0.1
168168
```
169169
170170
| | Android | iOS | macOS | Windows |
@@ -240,13 +240,15 @@ platform :osx, '10.15'
240240

241241
### Windows Integration
242242

243-
This plugin uses **Windows Hello** for biometric authentication on Windows 10 and later.
243+
### Windows Integration
244+
245+
This plugin uses **Windows Hello** (`Windows.Security.Credentials.KeyCredentialManager`) for biometric authentication on Windows 10 and later. Keys are typically backed by the device's **TPM (Trusted Platform Module)** for hardware-grade security.
244246

245247
**Platform Limitations:**
246-
- Windows only supports **RSA keys** (ECDSA is ignored)
247-
- Windows Hello **always authenticates** during key creation (`enforceBiometric` is effectively always `true`)
248-
- `setInvalidatedByBiometricEnrollment` and `useDeviceCredentials` are ignored
249-
- **Decryption is not supported** on Windows
248+
- **Key Type**: Windows Hello only supports **RSA-2048** keys (ECDSA requests are automatically promoted to RSA).
249+
- **Authentication**: Windows Hello **always authenticates** during key creation (`enforceBiometric` is effectively always `true`).
250+
- **Configuration**: `setInvalidatedByBiometricEnrollment` and `useDeviceCredentials` arguments are ignored on this platform.
251+
- **Decryption**: **Not supported**. The Windows Hello API is designed primarily for authentication (signing) and does not expose general decryption capabilities for these keys.
250252

251253
No additional configuration is required. The plugin will automatically use Windows Hello when available.
252254

@@ -273,6 +275,18 @@ This package simplifies server authentication using biometrics. The following im
273275

274276
When a user enrolls in biometrics, a key pair is generated. The private key is securely stored on the device, while the public key is sent to a server for registration. To authenticate, the user is prompted to use their biometrics, unlocking the private key. A cryptographic signature is then generated and sent to the server for verification. If the server successfully verifies the signature, it returns an appropriate response, authorizing the user.
275277

278+
### Biometric Decryption
279+
280+
The plugin also supports secure decryption, ensuring that sensitive data transmitted from the server can only be accessed by the authenticated user on their specific device.
281+
282+
![Biometric Decryption Lifecycle](https://raw.githubusercontent.com/chamodanethra/biometric_signature/main/assets/usecase-2.png)
283+
284+
1. **Key Creation**: The device generates a key pair (EC or RSA) in secure hardware.
285+
2. **Registration**: The public key is sent to the backend server.
286+
3. **Encryption**: The server encrypts the sensitive payload using the public key.
287+
4. **Authentication**: The encrypted payload is sent to the device. The user must authenticate biometrically to proceed.
288+
5. **Decryption**: Once authenticated, the secure hardware uses the private key to decrypt the payload, revealing the plaintext data to the app.
289+
276290
## Class: BiometricSignaturePlugin
277291

278292
This class provides methods to manage and utilize biometric authentication for secure server interactions. It supports both Android and iOS platforms.

android/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ android {
5757
}
5858

5959
dependencies {
60-
implementation("androidx.biometric:biometric:1.4.0-alpha04")
60+
implementation("androidx.biometric:biometric:1.4.0-alpha05")
6161
implementation("androidx.appcompat:appcompat:1.6.1")
6262
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:1.10.2")
6363
}

assets/usecase-2.jpeg

80.7 KB
Loading

banking_app/ios/Podfile.lock

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
PODS:
2-
- biometric_signature (9.0.0):
2+
- biometric_signature (9.0.1):
33
- Flutter
44
- Flutter (1.0.0)
55
- shared_preferences_foundation (0.0.1):
@@ -20,7 +20,7 @@ EXTERNAL SOURCES:
2020
:path: ".symlinks/plugins/shared_preferences_foundation/darwin"
2121

2222
SPEC CHECKSUMS:
23-
biometric_signature: e3da6b76957b6a9cd71e62c1664be9174d4a2d80
23+
biometric_signature: da57d4ae319902aa96e8193271f7b38ab26db278
2424
Flutter: cabc95a1d2626b1b06e7179b784ebcf0c0cde467
2525
shared_preferences_foundation: 9e1978ff2562383bd5676f64ec4e9aa8fa06a6f7
2626

banking_app/macos/Podfile.lock

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
PODS:
2-
- biometric_signature (9.0.0):
2+
- biometric_signature (9.0.1):
33
- FlutterMacOS
44
- FlutterMacOS (1.0.0)
55
- shared_preferences_foundation (0.0.1):
@@ -20,7 +20,7 @@ EXTERNAL SOURCES:
2020
:path: Flutter/ephemeral/.symlinks/plugins/shared_preferences_foundation/darwin
2121

2222
SPEC CHECKSUMS:
23-
biometric_signature: fcc23fe926798544af948f78621af1e85b35d372
23+
biometric_signature: 4e16dbaa951c17a54a809d81c5f46c4c8878a1c2
2424
FlutterMacOS: d0db08ddef1a9af05a5ec4b724367152bb0500b1
2525
shared_preferences_foundation: 9e1978ff2562383bd5676f64ec4e9aa8fa06a6f7
2626

banking_app/pubspec.lock

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ packages:
1515
path: ".."
1616
relative: true
1717
source: path
18-
version: "9.0.0"
18+
version: "9.0.1"
1919
boolean_selector:
2020
dependency: transitive
2121
description:

document_signer/ios/Podfile.lock

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
PODS:
2-
- biometric_signature (9.0.0):
2+
- biometric_signature (9.0.1):
33
- Flutter
44
- Flutter (1.0.0)
55
- shared_preferences_foundation (0.0.1):
@@ -20,7 +20,7 @@ EXTERNAL SOURCES:
2020
:path: ".symlinks/plugins/shared_preferences_foundation/darwin"
2121

2222
SPEC CHECKSUMS:
23-
biometric_signature: e3da6b76957b6a9cd71e62c1664be9174d4a2d80
23+
biometric_signature: da57d4ae319902aa96e8193271f7b38ab26db278
2424
Flutter: cabc95a1d2626b1b06e7179b784ebcf0c0cde467
2525
shared_preferences_foundation: 9e1978ff2562383bd5676f64ec4e9aa8fa06a6f7
2626

document_signer/macos/Podfile.lock

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
PODS:
2-
- biometric_signature (9.0.0):
2+
- biometric_signature (9.0.1):
33
- FlutterMacOS
44
- FlutterMacOS (1.0.0)
55
- shared_preferences_foundation (0.0.1):
@@ -20,7 +20,7 @@ EXTERNAL SOURCES:
2020
:path: Flutter/ephemeral/.symlinks/plugins/shared_preferences_foundation/darwin
2121

2222
SPEC CHECKSUMS:
23-
biometric_signature: fcc23fe926798544af948f78621af1e85b35d372
23+
biometric_signature: 4e16dbaa951c17a54a809d81c5f46c4c8878a1c2
2424
FlutterMacOS: d0db08ddef1a9af05a5ec4b724367152bb0500b1
2525
shared_preferences_foundation: 9e1978ff2562383bd5676f64ec4e9aa8fa06a6f7
2626

document_signer/pubspec.lock

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ packages:
1515
path: ".."
1616
relative: true
1717
source: path
18-
version: "9.0.0"
18+
version: "9.0.1"
1919
boolean_selector:
2020
dependency: transitive
2121
description:

0 commit comments

Comments
 (0)