code: func (cs *CredentialSupport) GetPeerCredentials() credentials.TransportCredentials {
  	cs.RLock()
  	defer cs.RUnlock()
  
  	tlsConfig := &tls.Config{
  		Certificates: []tls.Certificate{cs.clientCert},
  	}
  	certPool := x509.NewCertPool()
  	appRootCAs := [][]byte{}
  	for _, appRootCA := range cs.AppRootCAsByChain {
  		appRootCAs = append(appRootCAs, appRootCA...)
  	}
  	// also need to append statically configured root certs
  	appRootCAs = append(appRootCAs, cs.ServerRootCAs...)
  	// loop through the app root CAs
  	for _, appRootCA := range appRootCAs {
  		err := AddPemToCertPool(appRootCA, certPool)
  		if err != nil {
  			commLogger.Warningf("Failed adding certificates to peer's client TLS trust pool: %s", err)
  		}
  	}
  
  	tlsConfig.RootCAs = certPool
  	return credentials.NewTLS(tlsConfig)
  }
docs: // GetPeerCredentials returns gRPC transport credentials for use by gRPC
  // clients which communicate with remote peer endpoints.