summaryrefslogtreecommitdiffstats
path: root/src/common/base64.h
blob: d17da5c70f9a16ca1a5bcf25b51d2838b88ef116 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#pragma once

#include "fastfetch.h"

void ffBase64EncodeRaw(uint32_t size, const char* str, uint32_t* out_size, char* output);
static inline FFstrbuf ffBase64EncodeStrbuf(const FFstrbuf* in) {
    FFstrbuf out = ffStrbufCreateA(10 + in->length * 4 / 3);
    ffBase64EncodeRaw(in->length, in->chars, &out.length, out.chars);
    assert(out.length < out.allocated);

    return out;
}

bool ffBase64DecodeRaw(uint32_t size, const char* str, uint32_t* out_size, char* output);
static inline FFstrbuf ffBase64DecodeStrbuf(const FFstrbuf* in) {
    FFstrbuf out = ffStrbufCreateA(10 + in->length * 3 / 4);
    ffBase64DecodeRaw(in->length, in->chars, &out.length, out.chars);
    assert(out.length < out.allocated);

    return out;
}