Lucas
87e8c2862c
cli.c: rename key{,len} -> secret{,len} and free after use
2 years ago
Lucas
dd84a23e7e
Provide a single OTP function that accepts a configuration struct
2 years ago
Lucas
44de0c64b0
strtonum.h still references mystrtonum
2 years ago
Lucas
bfafd6b964
Fixes regarding CC0 license headers
2 years ago
Lucas
2fe090286d
Rework tests
...
Split along multiple files, produce TAP output, rely on Perl's prove for
running them. Improves clarity and hopefully makes it easier to add new
tests in the future.
2 years ago
Lucas
3093486c9f
Assume the secret is in base32 by default
2 years ago
Lucas
15bcd35557
Add base32 decoder
2 years ago
Lucas
3e8b900464
Change -h to -a
2 years ago
Lucas
fcd0f1747c
Rename step -> period
2 years ago
Lucas
a51a5b5b0d
Use getline
2 years ago
Lucas
dde97e45d0
Don't call otp if the hmac is unknown
2 years ago
Lucas
4d2024128e
Fix an overflow for 10-digits OTP
2 years ago
Lucas
0b93ea8653
Rework copyright notices
...
While at it, rename mystrtonum.[ch] to strtonum.[ch].
2 years ago
Lucas
33cc12f030
Also run tests with standard input
...
While there, add a explicit `-h sha1` to TOTP tests.
2 years ago
Lucas
bec943d06d
Read key from standard input if there are no arguments
2 years ago
Lucas
e1eb8b8d95
Be noisy when both -H and -T are given
2 years ago
Lucas
24fbaa6e82
Default counter to current seconds since epoch
2 years ago
Lucas
ecc23ff01f
Add options for configuring digits and time step
...
Default digits to 6 and time step to 30 seconds. This implies passing
`-d 8' to all TOTP test cases.
2 years ago
Lucas
95341d4ca2
Fix test cases for TOTP
...
RFC 6238 isn't clear enough in the Test Vectors section, and the
different HMAC algorithms use different secrets.
2 years ago
Lucas
4e95ab2b5d
Add -h flag for using a HMAC other than SHA1
2 years ago
Lucas
88ec5427c7
Specify the OTP width while printing
2 years ago
Lucas
41ca24d151
Add TOTP support
...
Add all the test vectors from RFC 6238, but comment the non-SHA1 ones
for the time being.
2 years ago
Lucas
22333c5d6e
Change totp to take a uint64_t instead of time_t
...
Let the application deal with converting time_t to uint64_t. For TOTP,
it's just a counter.
While there, rename 'granularity' to 'step', as it's used in RFC 6238.
2 years ago
Lucas
9a5f0f724e
Use strtonum-like functions for parsing numeric arguments
2 years ago
Lucas
55b0b396dc
Small update to err.[ch]
2 years ago
Lucas
84587a4c32
Add test cases for HOTP
2 years ago
Lucas
92539dcf58
Add basic CLI support for HOTP
2 years ago
Lucas
a28d7cca02
Add HOTP implementation
2 years ago
Lucas
46dd62038f
Initial commit
2 years ago