I have a Base 64 Encoded (http://www.adp-gmbh.ch/cpp/common/base64.html) string as follows:
KGVuYy12YWwgCiAoZWNkaCAKICAocyAjMDQwMTE3RkFBRDEwQzAwRDAxMENDOTA4NkUwRjVCMEMyN0YzQkM3REY4NENDNjMxQjM5MEFEODJEOERGOUZFNjYxOTU0NkY0NzgyREY1QkRBMjFEOTY3NTkxQzc1QTVDOTc1RUJFRDMyNUI4ODBCNzk0NDdFMTY2NUQ5Q0M0M0MxQSMpCiAgKGUgIzA0MzExNjUyNzE0QkFDRkQzOERFM0NFQTM4NDA4Q0ZBQkVFQTNGRjZGNjIwQkQyQzBBNzU1MTY0MjlBQzJERTRCOTI4OTFDOEZBQ0RDNDEyMjNGMTlGQjc2NjgzQzI4RDc5NkY5Njc4QTU4QzRDMzVDMkJDRUEyMEJEQzYzRURCQTkjKQogICkKICkKAA==
The following Bluez function is used to compress this Base 64 Encoded string to send it to a BLE device:
size_t data_from_string(const char *str, uint8_t **data)
{
char tmp[3];
size_t size, i;
info("data_from_string");
size = strlen(str) / 2;
*data = (uint8_t *)malloc(size);
if (*data == NULL)
return 0;
tmp[2] = '\0';
for (i = 0; i < size; i++) {
memcpy(tmp, str + (i * 2), 2);
(*data)[i] = (uint8_t) strtol(tmp, NULL, 16);
}
return size;
}
The data_from_string function compress the Base 64 Encoded string into the following format:
0000001200000C0A0000AC0A000A0C0A0000000000000000000000000000000000000000000A00000000000000BC000000000000000000000000000000DD000000000000000000000000000000000000000C00000000000000A400000000000000000000000000000C0A000000A000C100C00000000000000000000000A5000000000000000000000000000000000000000000000000000000000000000000000000000E0000000E00E3000000E20000000D000E0000000000C20000000000000000000E000000000000AA00
I want to convert this string back into the Base 64 Encoded string format upon receipt of this buffer. I have tried some C++ (http://alt.comp.lang.learn.c-cpp.narkive.com/ErJ18iQm/binascii-in-c) binascii::a2b_hex functionality to re-convert the buffer but to no avail.
Does anyone have any ideas how to accomplish this objective?