MIRROR: javascript for 馃悳's, a tiny runtime with big ambitions
1#include <stdlib.h>
2#include <libbase64.h>
3#include "base64.h"
4
5char *ant_base64_encode(const uint8_t *data, size_t len, size_t *out_len) {
6 size_t encoded_len = 4 * ((len + 2) / 3);
7 char *result = malloc(encoded_len + 1);
8 if (!result) return NULL;
9
10 base64_encode((const char *)data, len, result, out_len, 0);
11 result[*out_len] = '\0';
12 return result;
13}
14
15uint8_t *ant_base64_decode(const char *data, size_t len, size_t *out_len) {
16 size_t decoded_len = (len / 4) * 3 + 3;
17 uint8_t *result = malloc(decoded_len);
18 if (!result) return NULL;
19
20 if (!base64_decode(data, len, (char *)result, out_len, 0)) {
21 free(result);
22 return NULL;
23 }
24
25 return result;
26}