The North Carolina General Assembly has approved House Bill 958, an elections bill that would shorten the early voting period for primary elections, expand opportunities to challenge voter registrations and make changes to campaign finance and election administration laws.