Files
keypitecc/main/encoding.h
2026-02-27 22:17:33 +01:00

30 lines
952 B
C++

#ifndef ENCODING_H
#define ENCODING_H
#include <atca_helpers.h>
#include <cstring>
#include <mbedtls/base64.h>
#include <string>
static bool b64url_encode_buf(const uint8_t *data, size_t data_len,
char *out_buf, size_t out_max_len) {
size_t b64_len = out_max_len;
ATCA_STATUS status = atcab_base64encode_(data, data_len, out_buf, &b64_len,
atcab_b64rules_urlsafe());
return (status == ATCA_SUCCESS && b64_len < out_max_len);
}
static bool b64url_decode_buf(const char *in_str, uint8_t *out_buf,
size_t expected_len) {
if (!in_str || !out_buf)
return false;
size_t out_len = expected_len;
ATCA_STATUS status = atcab_base64decode_(in_str, strlen(in_str), out_buf,
&out_len, atcab_b64rules_urlsafe());
return (status == ATCA_SUCCESS && out_len == expected_len);
}
#endif // ENCODING_H