Add timeattack detector

This commit is contained in:
9seconds
2021-03-18 11:07:51 +03:00
parent 172b596cf1
commit f3112d4ba6
7 changed files with 124 additions and 12 deletions
+36
View File
@@ -0,0 +1,36 @@
package timeattack
import (
"fmt"
"time"
"github.com/9seconds/mtg/v2/mtglib"
)
type detector struct {
time.Duration
}
func (d detector) Valid(then time.Time) error {
now := time.Now()
diff := now.Sub(then)
if diff < 0 {
diff = -diff
}
if diff > d.Duration {
return fmt.Errorf("time is invalid. now=%d, then=%d, diff=%v",
now.Unix(),
then.Unix(),
diff)
}
return nil
}
func NewDetector(duration time.Duration) mtglib.TimeAttackDetector {
return detector{
Duration: duration,
}
}