summaryrefslogtreecommitdiff
path: root/README
diff options
context:
space:
mode:
Diffstat (limited to 'README')
-rw-r--r--README102
1 files changed, 102 insertions, 0 deletions
diff --git a/README b/README
new file mode 100644
index 0000000..7f8707a
--- /dev/null
+++ b/README
@@ -0,0 +1,102 @@
+// SPDX-FileCopyrightText: 2021 M. Shulhan <ms@kilabit.info>
+// SPDX-License-Identifier: GPL-3.0-or-later
+= gotp
+Shulhan <ms@kilabit.info>
+
+A command line interface to manage and generate Time-based One Time Password
+(TOTP).
+
+== SYNOPSIS
+
+ gotp <command> <parameters...>
+
+== DESCRIPTION
+
+add <LABEL> <HASH>:<BASE32-SECRET>[:DIGITS][:TIME-STEP][:ISSUER]
+
+ Add a TOTP secret identified by unique LABEL.
+ HASH is one of the valid hash function: SHA1, SHA256, or
+ SHA512.
+ BASE32-SECRET is the secret to generate one-time password
+ encoded in base32.
+ The DIGITS field is optional, define the number digits
+ generated for password, default to 6.
+ The TIME-STEP field is optional, its define the interval in
+ seconds, default to 30 seconds.
+ The ISSUER field is also optional, its define the name of
+ provider that generate the secret.
+
+gen <LABEL> [N]
+
+ Generate N number passwords using the secret identified by LABEL.
+
+import <PROVIDER> <FILE>
+
+ Import the TOTP configuration from other provider.
+ Currently, the only supported PROVIDER is Aegis and the supported file
+ is .txt.
+
+list
+
+ List all labels stored in the configuration.
+
+remove <LABEL>
+
+ Remove LABEL from configuration.
+
+rename <LABEL> <NEW-LABEL>
+
+ Rename a LABEL into NEW-LABEL.
+
+== ENCRYPTION
+
+On the first run, the gotp command will ask for path of private key.
+If the key exist, all the OTP values (excluding the label) will be encrypted.
+The private key must be RSA based.
+
+One can skip inputting the private key by pressing enter, and the OTP
+configuration will be stored as plain text.
+
+== FILES
+
+$USER_CONFIG_DIR/gotp/gotp.conf:: Path to file where the configuration and
+secret are stored.
+
+== EXAMPLES
+
+Add "my-totp" to configuration using SHA1 as hash function, "GEZDGNBVGY3TQOJQ"
+as the secret, with 6 digits passwords, and 30 seconds as time step.
+
+ $ gotp add my-totp SHA1:GEZDGNBVGY3TQOJQ:6:30
+
+Generate 3 recents passwords from "my-totp",
+
+ $ gotp gen my-totp 3
+ gotp: reading configuration from /home/$USER/.config/gotp/gotp.conf
+ 847945
+ 326823
+ 767317
+
+Import the exported Aegis TOTP from file,
+
+ $ gotp import aegis aegis-export-uri.txt
+ gotp: reading configuration from /home/$USER/.config/gotp/gotp.conf
+ OK
+
+List all labels stored in the configuration,
+
+ $ gotp list
+ gotp: reading configuration from /home/$USER/.config/gotp/gotp.conf
+ my-totp
+
+Remove a label "my-totp",
+
+ $ gotp remove my-totp
+ gotp: reading configuration from /home/$USER/.config/gotp/gotp.conf
+ OK
+
+Rename a label "my-totp" to "my-otp",
+
+ $ gotp rename my-totp my-otp
+ gotp: reading configuration from /home/$USER/.config/gotp/gotp.conf
+ OK