Kee Vault 2 - a password manager for multiple devices.

Overview

Kee Vault 2

Open in Visual Studio Code

Kee Vault 2 is a password manager for multiple devices. Password databases (Vaults) are encrypted using the KeePass storage format (KDBX) before being stored on the local device or sent to a remote server for synchronisation purposes.

The optional paid subscription service to enable synchronisation (among other benefits and morally good feelings) is fully compatible with the first version of Kee Vault so version 1 and 2 can be used interchangeably depending upon your specific requirements.

Initially we offer only an Android version of Kee Vault 2 but the underlying development platform (Flutter) should allow us to release versions in the future for iOS, desktop devices and/or fully replace the web app version (Kee Vault v1).

To subscribe to the Kee Vault service or view the code for version 1, see the https://github.com/kee-org/keevault repository.

Support questions, bug reports, feature requests and general feedback about the software or service should be raised and discussed in our community at https://forum.kee.pm - we'll use GitHub issues only for specific pre-approved issues at the moment so will most likely close your issue without review or comment if you initially raise an issue here.

Code quality

There are a number of "//TODO:f:" comments across the code at launch. We'll either address these in future, remove them when no longer relevant, or transcribe them into more detailed GitHub issues when time permits. They are a mixture of ideas for future improvements and reminders to improve the code when possible or investigate some uncertainties in more detail.

There are some aspects of Dart/Flutter development that are or were imperfect as of the time we worked on some areas of the app and some of the early work in 2019 might not be considered perfect practice by now. That said, we follow the latest lint guidelines and try to keep warnings and exceptions to a minimum so it shouldn't be too hard to work out what is going on.

Other than that, the initial release of the code should be of pretty high quality overall. We'd welcome any suggestions for improvements, ideally via the discussion forum first rather than a PR, unless you're happy to take a punt on the suggestion being accepted for incorporation to the project.

License

AGPL3 with permitted extra clauses

Comments
  • Fix missing context bug in VaultLoader listener

    Fix missing context bug in VaultLoader listener

    Is a specific instance of a more general fault where context could be lost during async operations. This case was noticed because the recently added code to store and flush data to shared storage takes long enough that Flutter has an increased chance to destroy the old context and this actually happened on some devices. I've investigated other instances of this problem and either developed a more defensive algorithm or commented when it is uncertain whether the problem is applicable or not.

    opened by luckyrat 0
  • Password recovery hint for service subscribers

    Password recovery hint for service subscribers

    Service changes:

    • [ ] Create a new DB field to store a hint up to 128 characters long
    • [ ] Field contents will be encrypted using same PII encryption key as used for customer email address
    • [ ] Create a new API endpoint to receive a user's request to see their hint
    • [ ] API will be public but rate-limited
    • [ ] API endpoint will record user's email address and hint (both encrypted) in a pendingHintEmail DB, along with timestamps and request metadata
    • [ ] Changes to that DB will trigger a function to send an email to the user
    • [ ] Email will contain the hint if available, general tips on trying variations of a theme and a link to start the account reset process if all else fails

    App UI changes:

    • [ ] Add a "send me my hint" button or link at the same places as the account reset process can be requested.
    • [ ] Add an optional field to the account registration page in KV1 (and 2 if Google/Apple ever allow us to register users within the app)
    • [ ] Add an optional field to the account management page in KV1 (and 2 once that is implemented for changing the password)

    Given that this is a lot of work and users can workaround the absence of this feature by recording their hint somewhere else, it's not a high priority task but it would add an additional level of reassurance to the user during the initial account signup.

    enhancement 
    opened by luckyrat 0
  • Replace search icon with loading spinner if search takes longer than a fraction of a second

    Replace search icon with loading spinner if search takes longer than a fraction of a second

    If there are hundreds of entries to filter, it can sometimes be unclear that anything is happening after text is entered, particularly on slow devices.

    enhancement good first issue help wanted 
    opened by luckyrat 0
  • When the currently filtered group disappears select the parent group

    When the currently filtered group disappears select the parent group

    We currently select the root group but it would be better for the user if we selected the next possible ancestor in the group hierarchy.

    Currently we need to handle this in group_tree.dart (reFilter) and filter_cubit.dart

    enhancement good first issue help wanted 
    opened by luckyrat 0
  • Introduce some delays to remote service retries

    Introduce some delays to remote service retries

    In remote_service.dart: _doRequest , we automatically retry a few times if the connection fails. That sorts us for 99.9% of failures but some edge cases could still be recoverable if we were to introduce some short delays to the retry attempts, depending upon what we can estimate the cause of the failure to be.

    enhancement performance 
    opened by luckyrat 0
  • More reliable way to determine new autofill save requests

    More reliable way to determine new autofill save requests

    Maybe a parcelable unique ID?

    Current implementation relies on consistent JSON stringification of Android-supplied metadata so not sure if one of these issues can occasionally occur:

    • App fails to return to normal mode after restore following aborted autofill save attempt
    • App fails to save supplied credentials if they are the same and from the same source as the most recent request to save
    question 
    opened by luckyrat 0
  • unlock of free user KDBXes unnecessarily include the 2nd read operation

    unlock of free user KDBXes unnecessarily include the 2nd read operation

    We only need this 2nd read for subscribed users that might be working on their Vault while a new one is being downloaded and merged in the background (or in the rare case when a free user first attaches to an existing remote account). So we could defer the read/unlock effort until really needed if we know we have no current User.

    Low priority since we will first investigate if we can make changes to the sync operations so that they can be really done as a background operation while the app is not even open and thus remove this 2nd read operation for all users at the same time.

    enhancement performance 
    opened by luckyrat 0
Releases(build-41_ios)
Owner
Kee
Projects to help people securely store and easily access passwords in KeePass (kdbx) databases
Kee
OOTP (Open One-time Password) is a supports multiple programming languages.

OOTP (Open One-time Password) is a supports multiple programming languages. The generated one-time passwords are fully compliant with HOTP (HMAC-based One-time Password) and TOTP (Time-based One-time Password).

Odroe 16 Nov 20, 2022
AuthPass - Password Manager based on Flutter for all platforms. Keepass 2.x (kdbx 3.x) compatible.

AuthPass.app - Open Source Password Manager for mobile and desktop AuthPass - Password Manager based on Flutter for all platforms. Keepass 2.x (kdbx 3

AuthPass 1.5k Jan 5, 2023
An opensource password manager

Passman An open source password manager Contents Description Project structure Project roadmap Getting started Built with Contributing Authors License

Developer Student Clubs KGEC 4 Aug 18, 2022
A simple, cross-platform password manager created with Flutter.

PassMan PassMan Logo © 2021 by Yash Ahir is licensed under CC BY-NC 4.0 A simple, cross-platform password manager created with Flutter. How to run thi

Yash Ahir 19 Dec 14, 2022
Password Manager Created Using Flutter And SQLite

Password Manager Created Using Flutter And SQLite

Imira Randeniya 15 Dec 24, 2022
A beautiful, cross-platform, encrypted password manager 🔐

Passwd. A beautiful, encrypted password manager, built using Flutter and Dart. Note: This project is unmaintained for now Features Fully encrypted usi

Passwd. 145 Dec 22, 2022
Pluggable dashboard to make PRs from multiple sources on multiple repos visible.

pr:mate Pluggable dashboard to make PRs from multiple sources on multiple repos visible. This repo is currently WIP. Further docs will follow. Develop

Tobias Brumhard 6 Oct 12, 2022
Munem Sarker 1 Jan 25, 2022
A package that lets you include a cool, nice looking and validated Password TextFormField in your app to enhance user experience. The package is fully & easily modifiable.

A package that lets you include a cool, nice looking and validated Password TextFormField in your app to enhance user experience. The package is fully

Muhammad Hamza 21 Jan 1, 2023
Email and Password Authentication In Flutter & Firebase in Flutter 2.2

Email and Password Authentication In Flutter & Firebase in Flutter 2.2

BackSlash Flutter 43 Nov 23, 2022
Amir Khan 47 Jan 8, 2023
Open source password generator app for Android and iOS

Parole is an open-source, free, and cross-platform service that is intended to make people secure on the internet ecosystem. Parole excels to build up

Shivam Yadav 1 Oct 19, 2021
Easy to use open source Hub 🕸️ to control your smart devices from one app.

CyBear Jinni Hub Welcome! This repository is in charge of controlling smart devices and is part of the CyBear Jinni Smart Home system. The software is

CyBear Jinni 26 Nov 23, 2022
Easy to use open source Hub 🕸️ to control your smart devices from one app.

CyBear Jinni Hub Welcome! This repository is in charge of controlling smart devices and is part of the CyBear Jinni Smart Home system. The software is

CyBear Jinni 13 Jul 22, 2021
Your grades across all your devices.

Gradely 2 A Grade Calculator App, that syncs all your Grades across all your devices, built with Flutter and with the amazing backend Appwrite. Screen

Elias Schneider 16 Dec 8, 2022
Exemplo em Flutter, para trabalhar com as câmeras dos devices

Fotografe e compartilhe! Como rodar: Clone the project to your Machine. Import the project to Android Studio. Run directly on Android or iOS device. A

null 3 Aug 23, 2021
Transform your smart devices to intelligent communicators.

Donna According to a survey of 601 people, 57.9 % of participants experienced communication difficulties, with 23.5 % reporting severe difficulties. O

Betaoverflow 9 Dec 19, 2022
A multi-plateform (Flutter) application for reading your emails, with your favorite devices, using the JMAP protocol!

A multi-plateform (Flutter) application for reading your emails, with your favorite devices, using the JMAP protocol!

LINAGORA 119 Jan 2, 2023
A Flutter plugin to retrieve and manage contacts on Android and iOS devices. Maintainer: @lukasgit

contacts_service A Flutter plugin to access and manage the device's contacts. Usage To use this plugin, add contacts_service as a dependency in your p

Lukas Dickie 166 Dec 28, 2022