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_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)