Go to file
Johan Ouwerkerk 438e341000 Avoid operations on a possibly expired account object.
After triggering the removal of an account from storage in the UI, it may
be possible for the UI not to fully reflect this change for a while yet.
During this short time window, it is possible for an operation to occur on
an already deleted account object which is a use-after-free bug.

In particular signals from animations and timers in the QML UI might still
trigger which causes a slot to be invoked that accesses the underlying
account object.

This change introduces a guard property called 'alive' which is flipped
when the account removal operation is triggered. Slots are updated to
check for the alive status of the UI before proceeding with other logic.
2020-04-10 14:10:47 +02:00
LICENSES Fix up licensing for REUSE compliance. 2020-04-10 13:34:31 +02:00
android Fix up licensing for REUSE compliance. 2020-04-10 13:34:31 +02:00
autotests Fix up licensing for REUSE compliance. 2020-04-10 13:34:31 +02:00
src Avoid operations on a possibly expired account object. 2020-04-10 14:10:47 +02:00
.gitignore Fix up licensing for REUSE compliance. 2020-04-10 13:34:31 +02:00
.gitlab-ci.yml Fix up licensing for REUSE compliance. 2020-04-10 13:34:31 +02:00
CMakeLists.txt Fix up licensing for REUSE compliance. 2020-04-10 13:34:31 +02:00
COPYING Add license file [skip ci] 2019-03-25 03:32:29 +05:30
CTestConfig.cmake Fix up licensing for REUSE compliance. 2020-04-10 13:34:31 +02:00
Messages.sh Fix up licensing for REUSE compliance. 2020-04-10 13:34:31 +02:00
README.md Fix up licensing for REUSE compliance. 2020-04-10 13:34:31 +02:00
keysmith.svg Fix up licensing for REUSE compliance. 2020-04-10 13:34:31 +02:00
org.kde.keysmith.appdata.xml Fix up licensing for REUSE compliance. 2020-04-10 13:34:31 +02:00
org.kde.keysmith.desktop Fix up licensing for REUSE compliance. 2020-04-10 13:34:31 +02:00
org.kde.keysmith.json Remove the dependency on oath-toolkit. 2020-02-08 14:46:55 +01:00
org.kde.keysmith.json.license Fix up licensing for REUSE compliance. 2020-04-10 13:34:31 +02:00

README.md

pipeline status

Keysmith

It uses the oath-toolkit 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,

  • QR code scanning
  • Backup and Restore of accounts
  • Encrypted storage of the secret token

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