Commit Graph

13 Commits (master)

Author SHA1 Message Date
Johan Ouwerkerk 92e92557fa feat: add a page to recover when an account turns out to be already used while adding it
This page is a bit of a bodge for the fact that the current Accounts model must be 'unlocked' before it can be used.
In turn, this means that it is not straightforward to check that an account is still 'available' when presenting the user with the option to add an account received via URI from the commandline.
The solution implemented here is to check and let the user recover after unlocking, if necessary.

Issues: #7, #14
2020-10-30 13:24:39 +01:00
Johan Ouwerkerk 72cfaee9bf feat: introduce a generic "error page" component
This new component can be used to inject an interstitial page, letting the user know something went wrong and allowing them to decide whether to continue or to quit Keysmith.
This is especially useful when Keysmith was launched automatically from some other context (i.e. another app) without the user necessarily being fully aware of it.

Issues: #7, #14
2020-10-27 18:59:03 +01:00
Johan Ouwerkerk 28211b7791 feat: rework token details UX in add account form
- Hide token details by default
 - Only show relevant token details depending on token type

Issues: #7
2020-08-08 09:17:55 +02:00
Johan Ouwerkerk b3984dd054 refactor: prepare code for reworking account details when adding new accounts
- Introduce re-usable account name + issuer form. This will help to support overriding account name/issuer when adding accounts via OTP token URI/QR code
 - Move common settings out of TokenDetailsForm into AddAccount.qml

Issues: #7
2020-08-08 09:17:55 +02:00
Johan Ouwerkerk bf67a42cb1 Rework account entry list delegate QML
- Refactor code to have delegates per account-type & simplify code
 - Rework layouting in terms of anchors
 - Fix positioning of account name and token labels to be vertically
   centered
 - Make health indicator/token life timer for TOTP accounts sit flush
   with the bottom of the TOTP delegate UI itself and extend along the
   whole width. This resolves issue #11
2020-04-30 17:08:45 +02:00
Johan Ouwerkerk d048adf921 UI/UX to ask for the accounts password on start up
With this change Keysmith now prompts the user to either:

 - setup a new password
 - supply an existing password (if detected)

Additionally the organisation/structure of the QML is cleaned up a bit.
All QML pages are dedicated QML files and a few signals are introduced
to provide slightly better encapsulation/decouple interdependencies.
2020-04-23 19:00:36 +02:00
Johan Ouwerkerk b451bd2556 Fix up licensing for REUSE compliance.
This adds licensing and copyright information where missing and normalises
existing licensing/copyright statements to SPDX metadata tags.
2020-04-10 13:34:31 +02:00
Johan Ouwerkerk 768ccdba97 Refactor and update input validation
This change fixes input validation for the following cases:

 - Check that entered account names are still available
 - Working validation for time steps (input mask was completely broken)
 - Allow longer tokens: liboath is no longer used, Keysmith can handle it

Additionally the QML code is refactored significantly:

 - Extracted the main accounts overview page
 - Extracted the add an account page
 - Completed the internal renaming of "Oath" to "Keysmith" for QML types
2020-04-04 11:22:15 +02:00
Johan Ouwerkerk 6ae5f7be21 Rework main page UX:
- Get rid of cards in favour of a more plain list view
 - Implement removing (deleting) accounts
2020-01-28 17:56:39 +01:00
Johan Ouwerkerk a0caf83da2 Use the new Account models.
Drop the AccountDetailsPage instead of trying to update it: see issue #7

With this change issue #2 should be fixed
2020-01-28 06:49:06 +00:00
Johan Ouwerkerk 4d7bf2f975 Add a rudimentary details page for accounts and wire up navigation to/from it.
The account details page has a kind of modality:

 - hide mode: in which the user is shown the account info but sensitive information such as secret keys should not be displayed openly visible.
 - show mode: the same, but in this case all details are openly visible. This will be useful for showing QR codes explicitly.
 - edit mode: in which the user may edit account details (all except the name).
2019-10-20 14:09:39 +02:00
Johan Ouwerkerk c64273355a Refactor: extract the token details form UI to its own re-usable component. 2019-10-20 14:09:39 +02:00
Bhushan Shah 8819d205f9 Initial code for OTP client
It uses the oath-toolkit[1] provided library liboath to generate the 2FA
codes, both TOTP and HOTP based. Currently it is largely untested. From
initial rough testing it seems that auto-refreshing of code is not
working. Also button to refresh token for HOTP is also dummy at moment.

Some todo items include,

- Verify the generated oath code is correct
- Make refreshing token work
- QR code scanning
- Backup and Restore of accounts
- Clipboard support to automatically copy code.
- Encrypted storage of the secret token

This code is largely based on the authenticator-ng[2] application by the
Rodney Dawes and Michael Zanetti for the Ubuntu Touch.

[1] https://www.nongnu.org/oath-toolkit/
[2] https://github.com/dobey/authenticator-ng
2019-03-25 02:58:56 +05:30