hob64 is a Header-Only Base64 library written in portable ANSI C.
- Portable ANSI C (C89), tested with GCC (Windows and Linux), Clang (macOS), and MSVC
- Encodes and decodes Base64 strings
- Checks to-be-decoded strings for validity
Define the implementation before including hob64.
#define HOB64_IMPLEMENTATION #include "hob64.h"As usual with header-only libraries, the implementation's definition can be limited to just a single file. This will depend on your specific build configuration.
Encode binary data to Base64 by providing the data and its length, getting a Base64-encoded string and its length (via an output parameter) as a result.
const char* unencodedData = "hob64 is a Header-Only Base64 library."; size_t encodedLength; char* encoded = hob64_encode((const unsigned char*)unencodedData, strlen(unencodedData), &encodedLength); free(encoded);Remember to free the data when you're done with it.
Decode Base64-encoded strings by providing the string and its length, getting an array of bytes and its length (via an output parameter) as a result.
const unsigned char* encodedString = "aG9iNjQgaXMgYSBIZWFkZXItT25seSBCYXNlNjQgbGlicmFyeS4="; size_t decodedLength; unsigned char* decoded = hob64_decode(encodedData, strlen(encodedString), &decodedLength); free(decoded);