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)
52 unsigned char c1, c2, c3, c4;
55 if (maxLineLength<4) {
64 for (i=0; i<by3; i++) {
65 triplet=(src[0]<<16)+(src[1]<<8)+src[2];
75 if (l+4>maxLineLength) {
87 if (l+4>=maxLineLength) {
112 triplet=(src[0]<<10)+(src[1]<<2);
146 if ((sizeGiven && size==0) || lastWasEq || !*src)
154 for (i=0; i<4; i++) {
157 while (*src && *src!=
'=')
165 if (i==0 && !sizeGiven) {
203 bytes=(24-(lastWasEq*6))/8;
int GWEN_Base64_Encode(const unsigned char *src, unsigned int size, GWEN_BUFFER *dst, unsigned int maxLineLength)
static const char GWEN_Base64_Alphabet[]
int GWEN_Base64_Decode(const unsigned char *src, unsigned int size, GWEN_BUFFER *dst)
int GWEN_Buffer_AppendString(GWEN_BUFFER *bf, const char *buffer)
int GWEN_Buffer_AppendByte(GWEN_BUFFER *bf, char c)
#define DBG_ERROR(dbg_logger, format,...)
struct GWEN_BUFFER GWEN_BUFFER
A dynamically resizeable text buffer.