From 25809666ff0050b10e786714ae97c0c00df48918 Mon Sep 17 00:00:00 2001 From: Shulhan Date: Sat, 6 Aug 2022 23:12:42 +0700 Subject: all: fix base32 decoding on secret The base32 decoding should be without padding otherwise it will return an error (for some base32 string): illegal base32 data at input byte 48 --- cli.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/cli.go b/cli.go index ed655ee..f22e626 100644 --- a/cli.go +++ b/cli.go @@ -150,12 +150,12 @@ func (cli *Cli) Add(issuer *Issuer) (err error) { return nil } -// // Generate n number of OTP from given issuer name. -// func (cli *Cli) Generate(label string, n int) (listOtp []string, err error) { var ( - logp = "Generate" + logp = `Generate` + b32Enc = base32.StdEncoding.WithPadding(base32.NoPadding) + cryptoHash totp.CryptoHash ) @@ -164,7 +164,7 @@ func (cli *Cli) Generate(label string, n int) (listOtp []string, err error) { return nil, fmt.Errorf("%s: %w", logp, err) } - secret, err := base32.StdEncoding.DecodeString(issuer.Secret) + secret, err := b32Enc.DecodeString(issuer.Secret) if err != nil { return nil, fmt.Errorf("%s: secret is not a valid base32 encoding: %w", logp, err) } -- cgit v1.3