code: func (c *CertificateRequest) CheckAndSetDefaults() error {
  	if c.Clock == nil {
  		return trace.BadParameter("missing parameter Clock")
  	}
  	if c.PublicKey == nil {
  		return trace.BadParameter("missing parameter PublicKey")
  	}
  	if c.Subject.CommonName == "" {
  		return trace.BadParameter("missing parameter Subject.Common name")
  	}
  	if c.NotAfter.IsZero() {
  		return trace.BadParameter("missing parameter NotAfter")
  	}
  	return nil
  }
docs: // CheckAndSetDefaults checks and sets default values