diff options
Diffstat (limited to 'vendor/github.com/pquerna/otp/otp.go')
| -rw-r--r-- | vendor/github.com/pquerna/otp/otp.go | 27 |
1 files changed, 21 insertions, 6 deletions
diff --git a/vendor/github.com/pquerna/otp/otp.go b/vendor/github.com/pquerna/otp/otp.go index 02b08f317..6d2ea6379 100644 --- a/vendor/github.com/pquerna/otp/otp.go +++ b/vendor/github.com/pquerna/otp/otp.go @@ -154,12 +154,7 @@ func (k *Key) Digits() Digits { q := k.url.Query() if u, err := strconv.ParseUint(q.Get("digits"), 10, 64); err == nil { - switch u { - case 8: - return DigitsEight - default: - return DigitsSix - } + return Digits(u) } // Six is the most common value. @@ -183,6 +178,19 @@ func (k *Key) Algorithm() Algorithm { } } +// Encoder returns the encoder used or the default ("") +func (k *Key) Encoder() Encoder { + q := k.url.Query() + + a := strings.ToLower(q.Get("encoder")) + switch a { + case "steam": + return EncoderSteam + default: + return EncoderDefault + } +} + // URL returns the OTP URL as a string func (k *Key) URL() string { return k.url.String() @@ -253,3 +261,10 @@ func (d Digits) Length() int { func (d Digits) String() string { return fmt.Sprintf("%d", d) } + +type Encoder string + +const ( + EncoderDefault Encoder = "" + EncoderSteam Encoder = "steam" +) |
