A United States Army veteran is facing up to three years in prison after he says he mistakenly brought a gun into Canada.