code: func ReRegister(params ReRegisterParams) (*Identity, error) {
  	hostID, err := params.ID.HostID()
  	if err != nil {
  		return nil, trace.Wrap(err)
  	}
  	keys, err := params.Client.GenerateServerKeys(GenerateServerKeysRequest{
  		HostID:               hostID,
  		NodeName:             params.ID.NodeName,
  		Roles:                teleport.Roles{params.ID.Role},
  		AdditionalPrincipals: params.AdditionalPrincipals,
  		DNSNames:             params.DNSNames,
  		PublicTLSKey:         params.PublicTLSKey,
  		PublicSSHKey:         params.PublicSSHKey,
  		Rotation:             &params.Rotation,
  	})
  	if err != nil {
  		return nil, trace.Wrap(err)
  	}
  	keys.Key = params.PrivateKey
  
  	return ReadIdentityFromKeyPair(keys)
  }
docs: // ReRegister renews the certificates and private keys based on the client's existing identity.