hash-of-wisdom/internal/pow/verifier.go

29 lines
644 B
Go

package pow
// Verifier handles validation of PoW challenges
type Verifier struct {
config *Config
}
// NewVerifier creates a new challenge verifier
func NewVerifier(config *Config) *Verifier {
return &Verifier{
config: config,
}
}
// VerifyChallenge validates challenge authenticity and expiration
func (v *Verifier) VerifyChallenge(challenge *Challenge) error {
// Check expiration first (cheap operation)
if challenge.IsExpired(v.config.ChallengeTTL) {
return ErrExpiredChallenge
}
// Check HMAC signature (expensive operation)
if err := challenge.VerifyHMAC(v.config.HMACSecret); err != nil {
return err
}
return nil
}