view @ 58:7e79e9126366 default tip @

misc: update copyright years
author David Demelier <>
date Thu, 04 Jan 2024 10:41:43 +0100
parents 86b259a3f272
line wrap: on
line source

libbase64 -- Base64 encoding and decoding


Base64 encoding and decoding easily in pure C99.


- base64 encoding,
- base64 decoding (with base64url support),
- no dynamic allocation required,
- only C99 required.
- less than 200 lines of code.

Quick overview

Encode data. We use -1 to read until end of input string.

	char encoded[128];
	size_t size;

	size = b64_encode("Hello world!", -1, encoded, sizeof (encoded));

Decode data. As with previous example, we use -1 to read until enf of base64
input string.

	char decoded[128];
	size_t size;

	size = b64_decode("ABx=", -1, decoded, sizeof (decoded));

Note: don't discard return value, in contrast to `b64_encode` the output buffer
      isn't NUL terminated as it may contain binary data.


See the `libbase64(3)` manual page.