A zero-knowledge, cross-platform password manager built with Flutter.
Website: passkeyra.com — Google Play: com.passkeyra.app
- Zero-knowledge architecture — your master password never leaves the device, the server (when enabled) only ever sees encrypted blobs.
- Strong cryptography — AES-256-GCM for vault encryption, PBKDF2-HMAC-SHA256 with 600 000 iterations for key derivation (legacy 150 000 still readable for backward compatibility).
- Local-first — entries stored in an encrypted Hive database; cloud sync (Firebase) and backup (Google Drive) are optional and opt-in.
- Multi-language — French, English, Spanish (i18n via Flutter ARB files).
- Free + Premium — local vault, generator, security report are free; cloud sync, multi-device, and ad removal are Premium.
| Layer | Choice |
|---|---|
| Framework | Flutter 3.8+ / Dart 3.8+ |
| Local storage | Hive (encrypted box) |
| Cryptography | pointycastle + cryptography (AES-GCM, PBKDF2) |
| Cloud sync (optional) | Firebase Auth (Google Sign-In) + Firestore |
| Cloud backup (optional) | Google Drive API |
| State | Standard Flutter (ChangeNotifier / setState) |
| Platform | Status |
|---|---|
| Android | Production (Google Play) |
| iOS | Roadmap |
| Windows / macOS / Linux | Roadmap |
| Web (PWA) | Roadmap |
flutter pub get
flutter gen-l10n
flutter build apk --release --no-tree-shake-iconsFor Google Play AAB:
flutter build appbundle --release --no-tree-shake-iconsThis repository does not include google-services.json (it would expose API keys). To run the app yourself:
- Create a Firebase project at https://console.firebase.google.com
- Add an Android app with the package name
com.passkeyra.app(or your own). - Download
google-services.jsonand place it inandroid/app/. - Same for iOS:
GoogleService-Info.plistinios/Runner/.
If you only need to build the local-only version of the app (no cloud sync), you can stub Firebase initialization — but this is not currently a supported build mode and would require code changes.
To produce a release APK/AAB, create your own android/key.properties:
storePassword=...
keyPassword=...
keyAlias=...
storeFile=/path/to/your-keystore.jksThis file is gitignored.
lib/
├── main.dart
├── app/ ← App-level setup
├── l10n/ ← Translations (fr, en, es)
├── models/ ← Data models (Hive types)
├── pages/ ← Screens
├── services/ ← Crypto, auth, sync, backup, ads
└── widgets/ ← Reusable UI components
PRs welcome. A few ground rules:
- Any UI string change must be added to all three ARB files: lib/l10n/app_fr.arb, lib/l10n/app_en.arb, lib/l10n/app_es.arb, then regenerate via
flutter gen-l10n. - No mocks in tests unless explicitly justified.
- Run
flutter analyze— it should report zero issues before opening a PR.
If you discover a vulnerability, please do not open a public issue. See SECURITY.md for the responsible disclosure process.
PassKeyra is licensed under the GNU General Public License v3.0 — see LICENSE.
Copyright © 2025 Steven Couton
- General: contact@passkeyra.com
- Website: passkeyra.com