Null bytes in the 'secret' cause a ValueError #11
When hex data is passed into the secret, embedded null bytes cause a failure with a ValueError.
Excluding null bytes from randomized hex input reduces the key space significantly, for example, for a 32 byte value the key space is reduced by over 12%.
The underlying libgfshare.h C library appears to handle null bytes without a problem. The issue here begins on line 177 of gfshare.c, where PyArg_ParseTupleAndKeywords() is using a 'y' in the format string, this results in rejecting null bytes from that parameter: https://docs.python.org/3/c-api/arg.html#strings-and-buffers
The solution would be to use