Commit Graph

321 Commits (master)

Author SHA1 Message Date
Johan Ouwerkerk 1292fc749b Make flatpak build again by copying a patch from Arch
Previously the flatpak would fail to build against a recent glib.c because fseeko.c was broken. Now it should be fixed.
2019-09-13 15:47:41 +02:00
Johan Ouwerkerk b4b8b2d25c Download oath-toolkit over HTTPS
This is a bit more secure against supply chain attacks because MITM is no longer trivial
2019-09-13 15:46:47 +02:00
Johan Ouwerkerk 4fe0d069cd Add a test to check the TOTP implementation can (at least) generate the values from the RFC test vector correctly. 2019-09-11 09:40:44 +02:00
Johan Ouwerkerk 3a4df16a1c Make the 'clock' an injectable dependency via the Account constructor.
In this way we can fake the current date/time during tests, making it possible to reliably test TOTP and derivative type tokens.
2019-09-11 09:40:44 +02:00
Johan Ouwerkerk 2d147e2427 Add a test to check the HOTP implementation can (at least) generate the values from the RFC test vector correctly. 2019-09-11 09:40:44 +02:00
Johan Ouwerkerk 750025f05c Fixup Account to make sure all HOTP/TOTP algorithm properties are properly initialised by the constructor. 2019-09-11 09:40:44 +02:00
Johan Ouwerkerk 960c96bb90 Minimal refactoring to move Account away from its previous base32 decoding implementation. 2019-09-11 09:40:44 +02:00
Johan Ouwerkerk 6d7c56f94b Add autotests for validating the new base32 decoding utilities. 2019-09-11 09:40:44 +02:00
Johan Ouwerkerk 71180195e6 Add dedicated base32 helper utilities in its own namespace. 2019-09-11 09:40:44 +02:00
Johan Ouwerkerk 4f4d1c93f8 Fixup: add license information to oath_p.h 2019-09-11 09:40:27 +02:00
Johan Ouwerkerk d372ba2a74 Create a 'private' header for interfacing with the oath library that does the C interop stuff. 2019-09-09 11:26:09 +02:00
Johan Ouwerkerk 4cb92b80df Enable C++17, and use 'standard' CMake features for doing so. 2019-09-09 11:20:32 +02:00
Bhushan Shah 03eff09a38 update readme file [skip ci] 2019-03-25 19:39:43 +05:30
Bhushan Shah 24457c878a Remove the leftover code to migrate config format 2019-03-25 19:31:48 +05:30
Bhushan Shah 5a1d26e3b8 Add animation for showing and timeout 2019-03-25 19:30:45 +05:30
Bhushan Shah 75e171a11a Show refresh button only if type is the HOTP 2019-03-25 17:50:05 +05:30
Bhushan Shah 2b013ac8c9 Use model.roleName instead of the roleName
This seems to workaround the issue with the Kirigami, and makes OTP
refresh correctly. Now it is actually usable :)
2019-03-25 17:19:34 +05:30
Bhushan Shah eeb56908ba Add pipeline status badge in the readme 2019-03-25 03:34:58 +05:30
Bhushan Shah 4167771636 Add license file [skip ci] 2019-03-25 03:32:29 +05:30
Bhushan Shah 8212bdc1c9 Add gitlab ci configuration to build the flatpak package 2019-03-25 03:01:15 +05:30
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