| 119 | } |
| 120 | |
| 121 | ssize_t base64_decode_quartet_using_maps(const base64_maps_t *maps, char dest[3], |
| 122 | const char src[4]) |
| 123 | { |
| 124 | signed char a; |
| 125 | signed char b; |
| 126 | signed char c; |
| 127 | signed char d; |
| 128 | |
| 129 | a = sixbit_from_b64(maps, src[0]); |
| 130 | b = sixbit_from_b64(maps, src[1]); |
| 131 | c = sixbit_from_b64(maps, src[2]); |
| 132 | d = sixbit_from_b64(maps, src[3]); |
| 133 | |
| 134 | if ((a == -1) || (b == -1) || (c == -1) || (d == -1)) { |
| 135 | return -1; |
| 136 | } |
| 137 | |
| 138 | dest[0] = (a << 2) | (b >> 4); |
| 139 | dest[1] = ((b & 0xf) << 4) | (c >> 2); |
| 140 | dest[2] = ((c & 0x3) << 6) | d; |
| 141 | |
| 142 | return 0; |
| 143 | } |
| 144 | |
| 145 | |
| 146 | ssize_t base64_decode_tail_using_maps(const base64_maps_t *maps, char dest[3], |
no test coverage detected