35 "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
37 #define ISB64CHAR(c) ((strchr (B64, (int) c) != NULL ) ? TRUE : FALSE) 60 if ((i == NULL) || (o == NULL))
63 o[0] = o[1] = o[2] = o[3] =
'\0';
68 ix[0] = b64index(i[0]);
69 ix[1] = b64index(i[1]);
70 o[0] = (ix[0] << 2) | (ix[1] >> 4);
75 ix[2] = b64index(i[2]);
77 o[1] = (ix[1] << 4) | (ix[2] >> 2);
82 ix[3] = b64index(i[3]);
84 o[2] = (ix[2] << 6) | ix[3];
112 if ((in == NULL) || (out == NULL))
115 memset(ibuf, 0,
sizeof (ibuf));
116 memset(obuf, 0,
sizeof (obuf));
121 while ((p != NULL) && (*p !=
'\0'))
131 if (
strchr(
" \t\r\n", *p))
153 if ((nout != NULL) && (no + 3 > *nout))
155 l = decode_buf64(obuf, ibuf);
162 memset(ibuf, 0,
sizeof (ibuf));
163 memset(obuf, 0,
sizeof (obuf));
171 if ((di > 0) && ((nout == NULL) || (no + 3 < *nout)))
178 l = decode_buf64(obuf, ibuf);
187 *nin = (size_t) (p - in);
189 *nout = (size_t) (q - out);
206 char *q = NULL, *bufout;
214 size_t sz_in, sz_out;
217 if ((bufin == NULL) || (strlen(bufin) == 0))
223 sz_in = strlen(bufin);
224 if ((bufout = (
char *) malloc(sz_in + 1)) == NULL)
229 memset(bufout, 0, sz_in + 1);
231 memset(ibuf, 0,
sizeof (ibuf));
232 memset(obuf, 0,
sizeof (obuf));
237 while ((p != NULL) && (*p !=
'\0'))
247 if (
strchr(
" \t\r\n", *p))
270 l = decode_buf64(obuf, ibuf);
276 memset(ibuf, 0,
sizeof (ibuf));
277 memset(obuf, 0,
sizeof (obuf));
285 if ((di > 0) && (no + 3 < sz_in))
292 l = decode_buf64(obuf, ibuf);
300 sz_out = (size_t) (q - bufout);
318 unsigned char *q = sin;
319 unsigned char bin[3];
326 memset(sout, 0, szout);
328 if (3 * szout < 4 * szin)
336 memset(bin, 0,
sizeof (bin));
337 bin[0] = (
unsigned char) q[0];
339 bin[1] = (
unsigned char) q[1];
341 bin[2] = (
unsigned char) q[2];
343 strlcpy(cin,
"====",
sizeof (cin));
345 i = (bin[0] & 0xFC) >> 2;
348 i = ((bin[0] & 0x03) << 4) | ((bin[1] & 0xF0) >> 4);
353 i = ((bin[1] & 0x0F) << 2) | ((bin[2] & 0xC0) >> 6);
#define ZE_LogMsgError(level,...)
void * new_base64_decode(char *bufin, size_t *size)
#define ZE_LogSysError(...)