Add challenge verifier

This commit is contained in:
Savely Krendelhoff 2025-08-22 18:06:52 +07:00
parent 19ebf54673
commit 84844cdb66
No known key found for this signature in database
GPG key ID: F70DFD34F40238DE

28
internal/pow/verifier.go Normal file
View file

@ -0,0 +1,28 @@
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
}