Johan Ouwerkerk
f0b5f8121f
Refactor: extract strip_spaces() utility function.
2019-10-02 21:34:33 +02:00
Johan Ouwerkerk
668e912dfe
Apply the name validator to the account name input field in the QML UI.
2019-09-30 20:25:56 +02:00
Johan Ouwerkerk
3bc3a14575
Introduce a validator for name input fields (account name).
2019-09-30 20:25:56 +02:00
Johan Ouwerkerk
bccf2565b8
Refactor: extract the common logic/boilerplate of a validator test to a helper utility (header)
...
With this change adding tests for new validators will be much less work.
2019-09-29 19:51:00 +02:00
Johan Ouwerkerk
73acbb68ae
Add the new base32 secret validator to the UI: attach it to the secret input field.
2019-09-29 12:57:07 +02:00
Johan Ouwerkerk
b791bbad45
Add QML bindings for custom validators
...
- Add convenience function to set up QML bindings under the Oath.Validators namespace
- Wire up the validator library in the otpclient application
2019-09-29 12:53:49 +02:00
Johan Ouwerkerk
eeeac7511c
Introduce a custom base32 secret validator to perform input validation.
...
- Add a new static library "validator_lib" covering the "validators" namespace in C++
- Introduce the Base32Validator to perform input field validation with fixup support
2019-09-29 12:48:25 +02:00
Johan Ouwerkerk
c37bf03b8e
Fix typo: OAth -> Oath (the name is oath or OATH).
2019-09-29 12:40:22 +02:00
Johan Ouwerkerk
8d40008201
Use a SpinBox for more appropriate UI/UX when entering token lengths
...
Due to our use of liboath for generating the actual tokens, we also support only a limited range of valid token lengths.
This means that it is more user friendly to express those limits directly in the UI through a SpinBox instead of allowing the user type in values we do not currently support.
2019-09-28 00:22:55 +02:00
Johan Ouwerkerk
29e9348097
Modernise AccountModel C++ code a bit
2019-09-25 15:38:25 +02:00
Johan Ouwerkerk
8b03fe5123
Modernise Account C++ code a bit
2019-09-25 14:40:53 +02:00
Johan Ouwerkerk
4cff5519ed
Automatically show the "add OTP" form when there are no OTP tokens yet on start up.
...
This is a small UX improvement to make it a little easier to get started with the app.
2019-09-25 11:17:48 +02:00
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