Convert `u_char` instances to `unsigned char` to improve portability

`u_char` is not in the C standard, and so this fails to build on OSX.
It could be fixed by including `sys/types.h`, but it seems easier just
to write it out as `unsigned char` instead of pulling in yet another
header file.