v8.5.0 — iOS • Android • macOS

Hardware-Backed
Biometric Signatures

Create cryptographic signatures using device biometrics with keys stored in Secure Enclave (iOS/macOS) and StrongBox/Keystore (Android).

View on Pub.dev
RSA + EC
Key Algorithms
3
Platforms Supported
ECIES
Hybrid Encryption
100%
Hardware Secured

Bank-Grade Security. Developer-Friendly API.

Everything you need to implement secure biometric authentication in your Flutter app.

🔐

Hardware Security

Keys are generated and stored in Secure Enclave (iOS/macOS) and StrongBox/Keystore (Android). Private keys never leave the secure hardware.

✍️

Cryptographic Signatures

Create RSA-2048 or ECDSA (P-256) signatures that your backend can independently verify. True proof of identity.

🔓

ECIES Decryption

Decrypt sensitive data using hybrid ECIES encryption with X9.63 key derivation, SHA-256, and AES-GCM.

👆

Biometric Authentication

Seamless integration with FaceID, TouchID, and Android BiometricPrompt. Native UI on every platform.

🚫

Key Invalidation

Optionally invalidate keys when biometric enrollment changes. Detect if fingerprints or Face ID have been modified.

🔢

Device Credential Fallback

Allow PIN, pattern, or password fallback on Android when biometrics are unavailable.

Multi-Platform Support

Native implementation on every platform. No compromises.

🍎

iOS

  • Secure Enclave
  • Face ID & Touch ID
  • RSA & ECDSA signing
  • Keychain storage
🤖

Android

  • StrongBox / Keystore
  • BiometricPrompt API
  • Device credential fallback
  • Custom UI options
💻

macOS

  • Secure Enclave
  • Touch ID on supported Macs
  • ECDSA P-256 keys
  • Keychain integration

Simple Workflow

From enrollment to verified signature in four steps.

01

Create Keys

Generate hardware-backed key pair with biometric protection.

02

Register Public Key

Send the public key to your backend for future verification.

03

Sign Data

User authenticates, hardware signs the payload.

04

Verify Signature

Backend verifies the signature using the stored public key.

Clean, Intuitive API

Integrate secure biometric signatures in minutes with our well-documented API. Full platform customization when you need it.

  • Type-safe Dart API with null safety
  • Platform-specific configuration options
  • Comprehensive error handling
  • Backend examples in Node.js, Python & Go
create_keys.dart
// Create biometric-protected keys
final result = await BiometricSignature()
  .createKeys(
    enforceBiometric: true,
    promptMessage: "Authenticate to register",
  );

if (result != null) {
  // Send public key to your backend
  await api.registerPublicKey(result.publicKey);
}
sign_data.dart
// Sign a challenge from your server
final signature = await BiometricSignature()
  .createSignature(
    options: SignatureOptions(
      payload: serverChallenge,
      promptMessage: "Confirm transaction",
    ),
  );

// Send signature to backend for verification

Ready to add hardware-backed security?

Get started in minutes. Check out the documentation and example app.