30 #define DISABLE_DEBUGLOG
34 #include <gwenhywfar/misc.h>
35 #include <gwenhywfar/debug.h>
36 #include <gwenhywfar/text.h>
41 "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
46 unsigned int maxLineLength) {
51 unsigned char c1, c2, c3, c4;
54 if (maxLineLength<4) {
63 for (i=0; i<by3; i++) {
64 triplet=(src[0]<<16)+(src[1]<<8)+src[2];
74 if (l+4>maxLineLength) {
86 if (l+4>=maxLineLength) {
111 triplet=(src[0]<<10)+(src[1]<<2);
144 if ((sizeGiven && size==0) || lastWasEq || !*src)
152 for (i=0; i<4; i++) {
155 while (*src && *src!=
'=')
163 if (i==0 && !sizeGiven) {
201 bytes=(24-(lastWasEq*6))/8;
int GWEN_Base64_Decode(const unsigned char *src, unsigned int size, GWEN_BUFFER *dst)
int GWEN_Base64_Encode(const unsigned char *src, unsigned int size, GWEN_BUFFER *dst, unsigned int maxLineLength)
int GWEN_Buffer_AppendByte(GWEN_BUFFER *bf, char c)
struct GWEN_BUFFER GWEN_BUFFER
A dynamically resizeable text buffer.
#define DBG_ERROR(dbg_logger, format, args...)
static const char GWEN_Base64_Alphabet[]
int GWEN_Buffer_AppendString(GWEN_BUFFER *bf, const char *buffer)