# Pastebin 9PKybAkK size_t base64Encode(const char* data, size_t length, char** result){ size_t lengthOfEncodedData = length*4/3 + (length%3?0:3) + 1; unsigned char * encodedData = (unsigned char *)calloc(lengthOfEncodedData, sizeof(unsigned char)); lengthOfEncodedData = EVP_EncodeBlock(encodedData, data, length); // it includes NUL terminator *result = encodedData; return lengthOfEncodedData; }