mirror of
https://github.com/1f349/twofactor.git
synced 2024-12-22 07:24:12 +00:00
made const and vars private
This commit is contained in:
parent
f4058aa3ac
commit
73ce7eaf59
18
totp.go
18
totp.go
@ -21,18 +21,18 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
BACKOFF_MINUTES = 5 // this is the time to wait before verifying another token
|
backoff_minutes = 5 // this is the time to wait before verifying another token
|
||||||
MAX_FAILURES = 3 // total amount of failures, after that the user needs to wait for the backoff time
|
max_failures = 3 // total amount of failures, after that the user needs to wait for the backoff time
|
||||||
COUNTER_SIZE = 8 // this is defined in the RFC 4226
|
counter_size = 8 // this is defined in the RFC 4226
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
INITIALIZATION_FAILED = errors.New("Totp has not been initialized correctly")
|
initialization_failed_error = errors.New("Totp has not been initialized correctly")
|
||||||
)
|
)
|
||||||
|
|
||||||
type Totp struct {
|
type Totp struct {
|
||||||
key []byte // this is the secret key
|
key []byte // this is the secret key
|
||||||
counter [COUNTER_SIZE]byte // this is the counter used to synchronize with the client device
|
counter [counter_size]byte // this is the counter used to synchronize with the client device
|
||||||
digits int // total amount of digits of the code displayed on the device
|
digits int // total amount of digits of the code displayed on the device
|
||||||
issuer string // the company which issues the 2FA
|
issuer string // the company which issues the 2FA
|
||||||
account string // usually the suer email or the account id
|
account string // usually the suer email or the account id
|
||||||
@ -125,11 +125,11 @@ func (otp *Totp) Validate(userCode string) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// check against the total amount of failures
|
// check against the total amount of failures
|
||||||
if otp.totalVerificationFailures >= MAX_FAILURES && !validBackoffTime(otp.lastVerificationTime) {
|
if otp.totalVerificationFailures >= max_failures && !validBackoffTime(otp.lastVerificationTime) {
|
||||||
return errors.New("The verification is locked down, because of too many trials.")
|
return errors.New("The verification is locked down, because of too many trials.")
|
||||||
}
|
}
|
||||||
|
|
||||||
if otp.totalVerificationFailures >= MAX_FAILURES && validBackoffTime(otp.lastVerificationTime) {
|
if otp.totalVerificationFailures >= max_failures && validBackoffTime(otp.lastVerificationTime) {
|
||||||
// reset the total verification failures counter
|
// reset the total verification failures counter
|
||||||
otp.totalVerificationFailures = 0
|
otp.totalVerificationFailures = 0
|
||||||
}
|
}
|
||||||
@ -174,7 +174,7 @@ func (otp *Totp) Validate(userCode string) error {
|
|||||||
// Checks the time difference between the function call time and the parameter
|
// Checks the time difference between the function call time and the parameter
|
||||||
// if the difference of time is greater than BACKOFF_MINUTES it returns true, otherwise false
|
// if the difference of time is greater than BACKOFF_MINUTES it returns true, otherwise false
|
||||||
func validBackoffTime(lastVerification time.Time) bool {
|
func validBackoffTime(lastVerification time.Time) bool {
|
||||||
diff := lastVerification.UTC().Add(BACKOFF_MINUTES * time.Minute)
|
diff := lastVerification.UTC().Add(backoff_minutes * time.Minute)
|
||||||
return time.Now().UTC().After(diff)
|
return time.Now().UTC().After(diff)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -570,7 +570,7 @@ func TOTPFromBytes(data []byte) (*Totp, error) {
|
|||||||
// this method checks the proper initialization of the Totp object
|
// this method checks the proper initialization of the Totp object
|
||||||
func totpHasBeenInitialized(otp *Totp) error {
|
func totpHasBeenInitialized(otp *Totp) error {
|
||||||
if otp.key == nil || len(otp.key) == 0 {
|
if otp.key == nil || len(otp.key) == 0 {
|
||||||
return INITIALIZATION_FAILED
|
return initialization_failed_error
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user