mirror of
https://github.com/netbirdio/netbird.git
synced 2024-11-25 09:33:24 +01:00
2d1bf3982d
Co-authored-by: Zoltán Papp <zoltan.pmail@gmail.com>
36 lines
925 B
Go
36 lines
925 B
Go
package auth
|
|
|
|
import (
|
|
"time"
|
|
|
|
auth "github.com/netbirdio/netbird/relay/auth/hmac"
|
|
authv2 "github.com/netbirdio/netbird/relay/auth/hmac/v2"
|
|
)
|
|
|
|
// Validator is an interface that defines the Validate method.
|
|
type Validator interface {
|
|
Validate(any) error
|
|
// Deprecated: Use Validate instead.
|
|
ValidateHelloMsgType(any) error
|
|
}
|
|
|
|
type TimedHMACValidator struct {
|
|
authenticatorV2 *authv2.Validator
|
|
authenticator *auth.TimedHMACValidator
|
|
}
|
|
|
|
func NewTimedHMACValidator(secret []byte, duration time.Duration) *TimedHMACValidator {
|
|
return &TimedHMACValidator{
|
|
authenticatorV2: authv2.NewValidator(secret),
|
|
authenticator: auth.NewTimedHMACValidator(string(secret), duration),
|
|
}
|
|
}
|
|
|
|
func (a *TimedHMACValidator) Validate(credentials any) error {
|
|
return a.authenticatorV2.Validate(credentials)
|
|
}
|
|
|
|
func (a *TimedHMACValidator) ValidateHelloMsgType(credentials any) error {
|
|
return a.authenticator.Validate(credentials)
|
|
}
|