Tasmota/lib/base64-1.1.1
Theo Arends 1a6ead187d Release 6.7 2019-10-23 13:11:53 +02:00
..
src Release 6.7 2019-10-23 13:11:53 +02:00
LICENSE Release 6.7 2019-10-23 13:11:53 +02:00
Makefile Release 6.7 2019-10-23 13:11:53 +02:00
README.md Release 6.7 2019-10-23 13:11:53 +02:00
catch.cpp Release 6.7 2019-10-23 13:11:53 +02:00
catch.hpp Release 6.7 2019-10-23 13:11:53 +02:00
library.properties Release 6.7 2019-10-23 13:11:53 +02:00

README.md

base64_arduino

Base64 encoder/decoder for arduino repo

npm Build Status

Installation

Add base64.cpp and base64.hpp to your project folder or library search path, put #include "base64.hpp" in your source, and pass base64.cpp to your compiler

Usage

unsigned char binary[] = {133, 244, 117, 206, 178, 195};
unsigned char base64[9];

unsigned int base64_length = encode_base64(binary, 6, base64);

printf("%d\n", base64_length); // Prints "8"
printf((char *) base64); // Prints "hfR1zrLD"
unsigned char base64[] = "hfR1zrLD";
unsigned char binary[6];

unsigned int binary_length = decode_base64(base64, binary);

printf("[%d, %d, %d, %d, %d, %d]\n", // Prints "[133, 244, 117, 206, 178, 195]"
       binary[0], binary[1], binary[2],
       binary[3], binary[4], binary[5]);
printf("%d\n", binary_length); // Prints "6"

Details

Uses common web conventions - '+' for 62, '/' for 63, '=' for padding. Note that invalid base64 characters are interpreted as padding.

Can be compiled as C, uses .*pp extensions because it is usually used in C++ projects and is tested for C++.

License

MIT