scan_base64(3) | Library Functions Manual | scan_base64(3) |
scan_base64 - decode base64 encoded data
#include <libowfat/textcode.h>
size_t scan_base64(const char *src,char *dest,size_t* destlen);
scan_base64 decodes base64 encoded data from src into dest. It will stop when it encounters any non-valid input characters. It will then write the number of decoded bytes in dest into *destlen, and return the number of bytes decoded from src.
Note that real world base64 encoded data is sometimes permitted to contain whitespace characters or new lines. This function will not allow those and return the decoded data until then.
Many base64 variants demand padding in the last block. Some don't. This implementation will consume padding if it is there, but will not complain if it is not.
dest can be NULL. destlen can be NULL. dest can be src.
scan_base64 returns the number of bytes successfully scanned and processed from src.
scan_base64("Zm5vcmQ=",buf,&i) -> return 8, i=5, buf="fnord"
scan_base64url(3), scan_xlong(3), scan_8long(3), fmt_ulong(3)