code: func NewChallenge(appID string, trustedFacets []string) (*Challenge, error) {
  	challenge := make([]byte, 32)
  	n, err := rand.Read(challenge)
  	if err != nil {
  		return nil, err
  	}
  	if n != 32 {
  		return nil, errors.New("u2f: unable to generate random bytes")
  	}
  
  	var c Challenge
  	c.Challenge = challenge
  	c.Timestamp = time.Now()
  	c.AppID = appID
  	c.TrustedFacets = trustedFacets
  	return &c, nil
  }
docs: // NewChallenge generates a challenge for the given application.