Why should one want that? Most of the time, the binary consumes much less memory, and if you are randomly reading bytes from it, its also much faster. Also writing it to a file is probably faster, as it can be read from continous memory, while writing from a list would mean to follow a pointer for each next byte.

Also binaries are much easier to handle if we want to match on exact bits.

So, do not convert from a binary to a list unless you really have to, and then you should be sure to use the correct conversion function.

It seems as if you really need to actively read and understand the sources of this library to be able to use it.

My suggestion is, that you use :bytes with the key generator and then convert the resulting binary to exactly the format you really need. No surprises anymore because of bad documentation, that claims to return base64 encoded string but actually does return an Base64-URL-encoded string…