keys are binary data and so should be unsigned char