From 0aadd4c82cf190ae8ac9c08e7eb142716ed33a85 Mon Sep 17 00:00:00 2001 From: Jan Baier Date: Sun, 28 Jun 2020 00:12:36 +0200 Subject: Add support for using Pass::OTP Pass::OTP is alternative implementation of One-time passwords with more features, namely it can support parsing otpauth:// links and custom character classes. This can close #97 --- README.md | 2 +- otp.bash | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 2d28491..7027b42 100644 --- a/README.md +++ b/README.md @@ -195,7 +195,7 @@ URL=https://git.malte-kiefer.de/crux-ports/plain ## Requirements - `pass` 1.7.0 or later for extension support -- `oathtool` for generating 2FA codes +- `oathtool` or `Pass::OTP` for generating 2FA codes - `qrencode` for generating QR code images ### Build requirements diff --git a/otp.bash b/otp.bash index 5539a5b..c56f502 100755 --- a/otp.bash +++ b/otp.bash @@ -16,8 +16,9 @@ # along with this program. If not, see . # [] -VERSION="1.1.1" +VERSION="1.1.2" OATH=$(which oathtool) +OTPTOOL=$(which otptool) ## source: https://gist.github.com/cdown/1163649 urlencode() { @@ -335,6 +336,7 @@ cmd_otp_code() { contents=$($GPG -d "${GPG_OPTS[@]}" "$passfile") while read -r -a line; do if [[ "$line" == otpauth://* ]]; then + local uri="$line" otp_parse_uri "$line" break fi @@ -348,6 +350,7 @@ cmd_otp_code() { [[ -n "$otp_period" ]] && cmd+=" --time-step-size=$otp_period"s [[ -n "$otp_digits" ]] && cmd+=" --digits=$otp_digits" cmd+=" $otp_secret" + [[ -n "$OTPTOOL" ]] && cmd="$OTPTOOL $uri" ;; hotp) @@ -355,6 +358,7 @@ cmd_otp_code() { cmd="$OATH -b --hotp --counter=$counter" [[ -n "$otp_digits" ]] && cmd+=" --digits=$otp_digits" cmd+=" $otp_secret" + [[ -n "$OTPTOOL" ]] && cmd="$OTPTOOL $uri" ;; *) -- cgit v1.2.3