5 static const char *
base64_chars =
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
12 return isalnum(c) || (c ==
'+') || (c ==
'/');
20 unsigned char char_array_3[3], char_array_4[4];
24 char_array_3[i++] = *(bytes++);
27 char_array_4[0] = (char_array_3[0] & 0xFC) >> 2;
28 char_array_4[1] = ((char_array_3[0] & 0x03) << 4) + ((char_array_3[1] & 0xF0) >> 4);
29 char_array_4[2] = ((char_array_3[1] & 0x0F) << 2) + ((char_array_3[2] & 0xC0) >> 6);
30 char_array_4[3] = char_array_3[2] & 0x3F;
32 for(i = 0; i < 4; ++i)
42 for(j = i; j < 3; ++j)
44 char_array_3[j] =
'\0';
47 char_array_4[0] = (char_array_3[0] & 0xFC) >> 2;
48 char_array_4[1] = ((char_array_3[0] & 0x03) << 4) + ((char_array_3[1] & 0xF0) >> 4);
49 char_array_4[2] = ((char_array_3[1] & 0x0F) << 2) + ((char_array_3[2] & 0xC0) >> 6);
50 char_array_4[3] = char_array_3[2] & 0x3F;
52 for(j = 0; j < i + 1; ++j)
68 int length = bytes.length();
69 int i = 0, j = 0, in = 0;
70 unsigned char char_array_4[4], char_array_3[3];
75 while(length-- && (bytes[in] !=
'=') &&
isBase64(bytes[in]))
77 char_array_4[i++] = bytes[in]; in++;
80 for(i = 0; i < 4; ++i)
82 char_array_4[i] = container.find(char_array_4[i]);
85 char_array_3[0] = (char_array_4[0] << 2) + ((char_array_4[1] & 0x30) >> 4);
86 char_array_3[1] = ((char_array_4[1] & 0xF) << 4) + ((char_array_4[2] & 0x3C) >> 2);
87 char_array_3[2] = ((char_array_4[2] & 0x3) << 6) + char_array_4[3];
89 for(i = 0; i < 3; ++i)
91 ret += char_array_3[i];
99 for(j = i; j < 4; ++j)
104 for(j = 0; j <4; j++)
106 char_array_4[j] = container.find(char_array_4[j]);
109 char_array_3[0] = (char_array_4[0] << 2) + ((char_array_4[1] & 0x30) >> 4);
110 char_array_3[1] = ((char_array_4[1] & 0xF) << 4) + ((char_array_4[2] & 0x3C) >> 2);
111 char_array_3[2] = ((char_array_4[2] & 0x3) << 6) + char_array_4[3];
113 for(j = 0; j < i - 1; ++j)
115 ret += char_array_3[j];
TTKString base64Decode(const TTKString &bytes)
The namespace of the algorithm.
static const char * base64_chars
TTKString base64Encode(const unsigned char *bytes, unsigned int len)
static bool isBase64(unsigned char c)