blob: 7685c74f3ce1402c9f482f48e14d235663c67679 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
|
# totp
`totp` is a command-line utility to generate TOTP keys from the command-line.
This is very useful for integrating 2-factor authentication support into your
existing password-management setup. `totp` supports both TOTP secret keys and
OTP URIs as input. This means you can also integrate `totp` together with
`zbarimg` to generate TOTP codes from scannable QR codes.
## Depdendencies
`totp` depends on libssl, libcrypto, and liburiparser. You probably already
have the first two. If liburiparser isn’t in your systems repositories, you can
obtain it from [here][1]
## Installation
Installation is made easy with the provided Makefile:
$ make
$ make install
## Usage
The `totp` utility reads TOTP secret keys from the standard input and prints the
corresponding codes to the standard output. You can use multiple keys:
$ printf '7KFSJ562KJDK23KD\n7YNEG7J3XBIVYR54' | totp
546316
942303
You can also provide the keys as arguments:
$ totp 7KFSJ562KJDK23KD 7YNEG7J3XBIVYR54
546316
942303
By default it is assumed that the TOTP codes have a length of 6 and are valid
for 30 seconds. You can change both of these parameters using the `-d` and `-p`
respectively, if required:
$ totp -d8 -p60 7KFSJ562KJDK23KD 7YNEG7J3XBIVYR54
71696020
18335070
It might be useful however to instead use an OTP URI. These are the URIs
embedded within 2-factor authentication QR codes, and often contain the metadata
specifying the length and period of the generated codes. To use URIs, use the
`-u` flag:
$ totp -u 'otpauth://totp/GitHub:Mango0x45?secret=7YNEG7J3XBIVYR54'
942303
This also works with the standard input:
$ echo 'otpauth://totp/GitHub:Mango0x45?secret=7YNEG7J3XBIVYR54' | totp -u
942303
## Integration with `zbarimg`
`zbarimg` is a helpful CLI utility that we can use to get an OTP URI from a QR
code. Here is an example of how we can use it to generate a TOTP code from a
2-factor authentication QR code:
$ zbarimg -q qr-code.png | sed 's/QR-Code://' | totp
546316
[1]: https://github.com/uriparser/uriparser
|