code: func (i *Identity) String() string {
  	var out []string
  	if i.XCert != nil {
  		out = append(out, fmt.Sprintf("cert(%v issued by %v:%v)", i.XCert.Subject.CommonName, i.XCert.Issuer.CommonName, i.XCert.Issuer.SerialNumber))
  	}
  	for j := range i.TLSCACertsBytes {
  		cert, err := tlsca.ParseCertificatePEM(i.TLSCACertsBytes[j])
  		if err != nil {
  			out = append(out, err.Error())
  		} else {
  			out = append(out, fmt.Sprintf("trust root(%v:%v)", cert.Subject.CommonName, cert.Subject.SerialNumber))
  		}
  	}
  	return fmt.Sprintf("Identity(%v, %v)", i.ID.Role, strings.Join(out, ","))
  }
docs: // String returns user-friendly representation of the identity.