Implementation of the base32 encoding scheme as defined by RFC 4648.

A stream-based encoding and decoding interface is available via [[new_encoder]]
and [[new_decoder]], which transparently encode or decode bytes to or from
base32 when reading from or writing to an underlying I/O handle.

Convenience functions for decoding to or from byte slices or strings are also
available; see [[encodeslice]], [[decodeslice]], [[encodestr]], and
[[decodestr]]. These functions dynamically allocate their return value; use the
stream interface if you require static allocation.

Each function accepts the desired base64 encoding alphabet as its first
argument. [[std_encoding]] and [[hex_encoding]], as defined by the RFC, are
provided for your convenience, but you may create your own encoding using
[[encoding_init]].

Due to security concerns described by the RFC, this implementation rejects
invalid padding.

https://datatracker.ietf.org/doc/html/rfc4648#section-12
