1790, "infidel," earlier and also caffre (1670s), from Arabic kafir "unbeliever, infidel, impious wretch," with a literal sense of "one who does not admit (the blessings of God)," from kafara "to cover up, conceal, deny, blot out."
Technically, "a non-Muslim," but in Ottoman times it came to be used there almost exclusively as the disparaging word for "Christian." It also was used by Muslims in East Africa of the pagan black Africans; English missionaries then picked it up as an equivalent of "heathen" to refer to Bantus in South Africa (1731), from which use in English it came generally to mean "South African black" regardless of ethnicity, and to be a term of abuse at least since 1934.