code: func (s *Set) allowSHA256(hash string) error {
  	// validate that the hash is the right length to be a full SHA-256 hash
  	hashLength := hex.DecodedLen(len(hash))
  	if hashLength != sha256.Size {
  		return errors.Errorf("expected a %d byte SHA-256 hash, found %d bytes", sha256.Size, hashLength)
  	}
  
  	// validate that the hash is valid hex
  	_, err := hex.DecodeString(hash)
  	if err != nil {
  		return err
  	}
  
  	// in the end, just store the original hex string in memory (in lowercase)
  	s.sha256Hashes[strings.ToLower(hash)] = true
  	return nil
  }
docs: // allowSHA256 validates a "sha256" format hash and adds a canonical version of it into the Set