k3s-io/k3s · error

hash version %d does not match package version %d

Error message

hash version %d does not match package version %d

What it means

Error "hash version %d does not match package version %d" thrown in k3s-io/k3s.

Source

Thrown at pkg/authenticator/hash/scrypt.go:70

	hash := fmt.Sprintf(hashFormat, Version, salt, s.N, s.R, s.P, enc)

	return hash, nil
}

// VerifyHash will compare a secretKey and a hash, and return nil if they match
func (s SCrypt) VerifyHash(hash, secretKey string) error {
	var (
		version, n uint
		r, p       int
		enc        string
		salt       []byte
	)
	_, err := fmt.Sscanf(hash, hashFormat, &version, &salt, &n, &r, &p, &enc)
	if err != nil {
		return err
	}
	if version != Version {
		return fmt.Errorf("hash version %d does not match package version %d", version, Version)
	}

	dk, err := base64.RawStdEncoding.DecodeString(enc)
	if err != nil {
		return err
	}

	verify, err := scrypt.Key([]byte(secretKey), salt, 1<<n, r, p, len(dk))
	if err != nil {
		return err
	}

	if subtle.ConstantTimeCompare(dk, verify) != 1 {
		return errors.New("hash does not match")
	}

	return nil
}

View on GitHub (pinned to 6ba341e396)

When it happens

Trigger: Thrown at pkg/authenticator/hash/scrypt.go:70 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of k3s-io/k3s@6ba341e396 (2026-08-15). Data as JSON: /api/errors/4ac9583212acd276. Report an issue: GitHub.