Decode using WithPadding as pointed out by @gl-sergei.
This makes us print the same 6 digits as oathtool for non-padded secrets like "a6mryljlbufszudtjdt42nh5by".
This commit is contained in:
2
hotp.go
2
hotp.go
@@ -88,7 +88,7 @@ func hotpFromURL(u *url.URL) (*HOTP, string, error) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
key, err := base32.StdEncoding.DecodeString(secret)
|
key, err := base32.StdEncoding.WithPadding(base32.NoPadding).DecodeString(secret)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
// secret isn't base32 encoded
|
// secret isn't base32 encoded
|
||||||
key = []byte(secret)
|
key = []byte(secret)
|
||||||
|
|||||||
2
totp.go
2
totp.go
@@ -150,7 +150,7 @@ func totpFromURL(u *url.URL) (*TOTP, string, error) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
key, err := base32.StdEncoding.DecodeString(secret)
|
key, err := base32.StdEncoding.WithPadding(base32.NoPadding).DecodeString(secret)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
// secret isn't base32 encoded
|
// secret isn't base32 encoded
|
||||||
key = []byte(secret)
|
key = []byte(secret)
|
||||||
|
|||||||
Reference in New Issue
Block a user