summaryrefslogtreecommitdiff
path: root/vendor/github.com/pquerna/otp/otp.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/pquerna/otp/otp.go')
-rw-r--r--vendor/github.com/pquerna/otp/otp.go27
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"
+)