Phase 1: Implement PoW algorithm #1

Merged
krendelhoff merged 14 commits from phase-1-pow into master 2025-08-22 15:57:21 +03:00
Showing only changes of commit 84844cdb66 - Show all commits

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
}