* fix(basenc): align base32 decode with GNU
* Add GNU-style basenc base32 tests
* Expand basenc base32 tests and simplify failures
Adds the GNU-style auto-padding/truncated cases to
tests/by-util/test_basenc.rs and rewrites the failure assertions to use
the chained fails().stdout_*(…).stderr_is(…) style for clarity.
* Restore GNU expectations for b32h_5 and b32h_6
Updates util/build-gnu.sh to stop forcing those two basenc tests to
expect empty stdout, so the GNU suite again checks for the leaked five
bytes before failure.
* Allow base32 decoder to auto-pad truncated blocks
Introduce PadResult, trim/pad incomplete base32 chunks, emit decoded
prefixes, and still return error: invalid input in line with GNU basenc.
* basenc: implement --base58 encoding option
Add support for Base58 encoding to basenc as per GNU coreutils 9.8.
Base58 uses the alphabet '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz'
which excludes visually ambiguous characters (0, O, I, l).
Resolves issue #8744.
* basenc: fix clippy warnings and spelling issues
Fix explicit iteration clippy warnings. Add Base58 alphabet to spell-checker ignore list to resolve cspell errors.
Improve the performance, both in memory and time, of the encoding
performed by the basenc (except in --z85 mode), base32, and base64
programs.
These programs now perform encoding in a buffered/streaming manner,
so encoding is not constrained by the amount of available memory.