RandomBytes returns n random bytes by reading from crypto/rand.Reader
HMACStrategy is responsible for generating and validating challenges.
Generate generates a token and a matching signature or returns an error. This method implements rfc6819 Section 220.127.116.11.2: Use High Entropy for Secrets.
Validate validates a token and returns its signature or an error if the token is not valid.