Not sure about the legalities of carrying any of those. To my knowledge, I don't believe you can, but I've never considered it so I haven't really paid attention to whether I can or can't. Somebody will no doubt be along to confirm my guess or prove otherwise. I'd advise you to stick around and wait for somebody that knows for certain.
In your hypothetical situation, if you're dealing with a drunken idiot that has the size and strength advantage, wouldn't you prefer to keep the distance between the two of you and maybe consider pepper spray?