code: func (s *serfQueries) handleListKeys(q *Query) {
  	response := nodeKeyResponse{Result: false}
  	keyring := s.serf.config.MemberlistConfig.Keyring
  
  	if !s.serf.EncryptionEnabled() {
  		response.Message = "Keyring is empty (encryption not enabled)"
  		s.logger.Printf("[ERR] serf: Keyring is empty (encryption not enabled)")
  		goto SEND
  	}
  
  	s.logger.Printf("[INFO] serf: Received list-keys query")
  	for _, keyBytes := range keyring.GetKeys() {
  		// Encode the keys before sending the response. This should help take
  		// some the burden of doing this off of the asking member.
  		key := base64.StdEncoding.EncodeToString(keyBytes)
  		response.Keys = append(response.Keys, key)
  	}
  	response.Result = true
  
  SEND:
  	s.sendKeyResponse(q, &response)
  }
docs: // handleListKeys is invoked when a query is received to return a list of all
  // installed keys the Serf instance knows of. For performance, the keys are
  // encoded to base64 on each of the members to remove this burden from the
  // node asking for the results.