Pad non-padded secrets. This lets us continue building on <= go1.8.

- Add tests for secrets using various padding methods.
- Add a new method/test to append padding to non-padded secrets.
This commit is contained in:
Aaron Bieber
2018-04-18 09:16:40 -06:00
committed by Kyle Isom
parent 5fd928f69a
commit bbc82ff8de
5 changed files with 113 additions and 4 deletions

View File

@@ -150,9 +150,9 @@ func totpFromURL(u *url.URL) (*TOTP, string, error) {
}
}
key, err := base32.StdEncoding.WithPadding(base32.NoPadding).DecodeString(secret)
key, err := base32.StdEncoding.DecodeString(Pad(secret))
if err != nil {
// secret isn't base32 encoded
// assume secret isn't base32 encoded
key = []byte(secret)
}
otp := NewTOTP(key, 0, period, digits, algo)