/**************************************************************************************************************************** cencoder.h - c source to a base64 decoding algorithm implementation For any WiFi shields, such as WiFiNINA W101, W102, W13x, or custom, such as ESP8266/ESP32-AT, Ethernet, etc WiFiWebServer is a library for the ESP32-based WiFi shields to run WebServer Forked and modified from ESP8266 https://github.com/esp8266/Arduino/releases Forked and modified from Arduino WiFiNINA library https://www.arduino.cc/en/Reference/WiFiNINA Built by Khoi Hoang https://github.com/khoih-prog/WiFiWebServer Licensed under MIT license Original author: @file Esp8266WebServer.h @author Ivan Grokhotkov *****************************************************************************************************************************/ #pragma once // Reintroduce to prevent duplication compile error if other lib/core already has LIB64 // pragma once can't prevent that #ifndef BASE64_CENCODE_H #define BASE64_CENCODE_H #define base64_encode_expected_len(n) ((((4 * n) / 3) + 3) & ~3) #ifdef __cplusplus extern "C" { #endif typedef enum { step_A, step_B, step_C } base64_encodestep; typedef struct { base64_encodestep step; char result; int stepcount; } base64_encodestate; void base64_init_encodestate(base64_encodestate* state_in); char base64_encode_value(char value_in); int base64_encode_block(const char* plaintext_in, int length_in, char* code_out, base64_encodestate* state_in); int base64_encode_blockend(char* code_out, base64_encodestate* state_in); int base64_encode_chars(const char* plaintext_in, int length_in, char* code_out); #ifdef __cplusplus } // extern "C" #endif #endif /* BASE64_CENCODE_H */