check for 0 length strings in pubkey parser.

We check length later, but we assumed it was always 1 bytes long. Not
always the case. I'm a little depressed that this bug was there.