MCPcopy Create free account
hub / github.com/ElementsProject/lightning / base64_decode_using_maps

Function base64_decode_using_maps

ccan/ccan/base64/base64.c:175–204  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

173}
174
175ssize_t base64_decode_using_maps(const base64_maps_t *maps,
176 char *dest, const size_t destlen,
177 const char *src, const size_t srclen)
178{
179 ssize_t dest_offset = 0;
180 ssize_t i;
181 ssize_t more;
182
183 if (destlen < base64_decoded_length(srclen)) {
184 errno = EOVERFLOW;
185 return -1;
186 }
187
188 for(i=0; srclen - i > 4; i+=4) {
189 if (base64_decode_quartet_using_maps(maps, &dest[dest_offset], &src[i]) == -1) {
190 return -1;
191 }
192 dest_offset += 3;
193 }
194
195 more = base64_decode_tail_using_maps(maps, &dest[dest_offset], &src[i], srclen - i);
196 if (more == -1) {
197 return -1;
198 }
199 dest_offset += more;
200
201 memset(&dest[dest_offset], '\0', destlen-dest_offset);
202
203 return dest_offset;
204}
205
206
207

Callers 2

base64_decodeFunction · 0.85
rune_from_base64nFunction · 0.85

Calls 3

base64_decoded_lengthFunction · 0.85

Tested by

no test coverage detected