31 "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
38 {0x21, 6}, {0x5d, 7}, {0x5e, 7}, {0x5f, 7}, {0x60, 7}, {0x61, 7},
39 {0x62, 7}, {0x63, 7}, {0x64, 7}, {0x65, 7}, {0x66, 7}, {0x67, 7},
40 {0x68, 7}, {0x69, 7}, {0x6a, 7}, {0x6b, 7}, {0x6c, 7}, {0x6d, 7},
41 {0x6e, 7}, {0x6f, 7}, {0x70, 7}, {0x71, 7}, {0x72, 7}, {0xfc, 8},
42 {0x73, 7}, {0xfd, 8}, {0x3, 5}, {0x23, 6}, {0x4, 5}, {0x24, 6},
43 {0x5, 5}, {0x25, 6}, {0x26, 6}, {0x27, 6}, {0x6, 5}, {0x74, 7},
44 {0x75, 7}, {0x28, 6}, {0x29, 6}, {0x2a, 6}, {0x7, 5}, {0x2b, 6},
45 {0x76, 7}, {0x2c, 6}, {0x8, 5}, {0x9, 5}, {0x2d, 6}, {0x77, 7},
46 {0x78, 7}, {0x79, 7}, {0x7a, 7}, {0x7b, 7}, {0x0, 5}, {0x1, 5},
47 {0x2, 5}, {0x19, 6}, {0x1a, 6}, {0x1b, 6}, {0x1c, 6}, {0x1d, 6},
48 {0x1e, 6}, {0x1f, 6}, {0x7fb, 11}, {0x18, 6}};
54 size_t input_triplets = input_length / 3;
55 size_t tail_case = input_length % 3;
56 size_t output_length = input_triplets * 4 +
tail_xtra[tail_case];
63 for (
i = 0;
i < input_triplets;
i++) {
119 while (temp_length > 8) {
132 static_cast<uint8_t>(0xff
u >> temp_length));
146 while (
out->temp_length > 8) {
147 out->temp_length -= 8;
172 size_t input_triplets = input_length / 3;
173 size_t tail_case = input_length % 3;
174 size_t output_syms = input_triplets * 4 +
tail_xtra[tail_case];
175 size_t max_output_bits = 11 * output_syms;
176 size_t max_output_length = max_output_bits / 8 + (max_output_bits % 8 != 0);
188 for (
i = 0;
i < input_triplets;
i++) {
217 if (
out.temp_length) {