/* * Base64 Encoding and Decoding * (C) 2010 Jack Lloyd * * Distributed under the terms of the Botan license */ #ifndef BOTAN_BASE64_CODEC_H__ #define BOTAN_BASE64_CODEC_H__ #include #include namespace Botan { /** * Perform base64 encoding * @param output an array of at least input_length*4/3 bytes * @param input is some binary data * @param input_length length of input in bytes * @param input_consumed is an output parameter which says how many * bytes of input were actually consumed. If less than * input_length, then the range input[consumed:length] * should be passed in later along with more input. * @param final_inputs true iff this is the last input, in which case padding chars will be applied if needed * @return number of bytes written to output */ size_t BOTAN_DLL base64_encode(char output[], const byte input[], size_t input_length, size_t& input_consumed, bool final_inputs); /** * Perform base64 encoding * @param input some input * @param input_length length of input in bytes * @param uppercase should output be upper or lower case? * @return base64adecimal representation of input */ std::string BOTAN_DLL base64_encode(const byte input[], size_t input_length); /** * Perform base64 encoding * @param input some input * @param uppercase should output be upper or lower case? * @return base64adecimal representation of input */ std::string BOTAN_DLL base64_encode(const MemoryRegion& input); } #endif