| 1234567891011121314151617181920212223242526272829303132333435 |
- package fwh_pro
- import (
- "testing"
- "time"
- )
- func TestGenerateTOTP(t *testing.T) {
- // RFC 6238 Appendix B SHA-1 vectors, truncated to six digits.
- secret := "GEZDGNBVGY3TQOJQGEZDGNBVGY3TQOJQ"
- tests := []struct {
- unix int64
- want string
- }{
- {59, "287082"},
- {1111111109, "081804"},
- {1111111111, "050471"},
- {1234567890, "005924"},
- {2000000000, "279037"},
- }
- for _, tt := range tests {
- got, err := generateTOTP(secret, time.Unix(tt.unix, 0))
- if err != nil || got != tt.want {
- t.Errorf("at %d: got %q, err %v; want %q", tt.unix, got, err, tt.want)
- }
- }
- }
- func TestGenerateTOTPInvalidSecret(t *testing.T) {
- for _, secret := range []string{"", "not-base32!"} {
- if _, err := generateTOTP(secret, time.Unix(59, 0)); err == nil {
- t.Errorf("expected error for %q", secret)
- }
- }
- }
|