20 #ifndef _ANCH_CRYPTO_B2T_BASE64_H_ 21 #define _ANCH_CRYPTO_B2T_BASE64_H_ 44 const static char _alphabet[];
47 const static char _padding;
75 template<
class CharT,
class Traits>
76 static void encode(std::basic_istream<CharT,Traits>& data,
77 std::basic_ostream<CharT,Traits>& output)
82 data.read(buffer, 1024);
83 encode(reinterpret_cast<uint8_t*>(buffer), data.gcount(), output);
95 template<
class CharT,
class Traits>
96 static std::string
encode(std::basic_istream<CharT,Traits>& data) noexcept {
97 std::ostringstream out;
108 template<
class CharT,
class Traits,
class Allocator>
109 static void encode(
const std::basic_string<CharT,Traits,Allocator>& data,
110 std::basic_ostream<CharT,Traits>& output) noexcept {
111 encode(reinterpret_cast<const uint8_t*>(data.data()), data.length(), output);
121 template<
class CharT,
class Traits,
class Allocator>
122 static std::string
encode(
const std::basic_string<CharT,Traits,Allocator>& data)
124 std::ostringstream out;
136 template<
class CharT,
class Traits>
137 static void encode(
const uint8_t* data, uint64_t length,
138 std::basic_ostream<CharT,Traits>& output)
143 uint8_t read =
encode(data, length, buffer);
158 static std::string
encode(
const uint8_t* data, uint64_t length) noexcept {
159 std::ostringstream out;
160 encode(data, length, out);
174 static uint8_t
encode(
const uint8_t* data, uint64_t length,
char buffer[5]) noexcept;
186 template<
class CharT,
class Traits>
188 std::basic_ostream<CharT,Traits>& output)
193 data.read(buffer, 1024);
194 decode(buffer, data.gcount(), output);
206 static std::string
decode(std::istream& data) noexcept {
207 std::ostringstream out;
218 template<
class CharT,
class Traits>
219 static void decode(
const std::string& data,
220 std::basic_ostream<CharT,Traits>& output) noexcept {
221 decode(data.data(), data.length(), output);
231 static std::string
decode(
const std::string& data)
233 std::ostringstream out;
245 template<
class CharT,
class Traits>
246 static void decode(
const char* data, uint64_t length,
247 std::basic_ostream<CharT,Traits>& output)
252 memset(buffer,
'\0', 3);
253 decode(data, length, buffer);
268 static std::string
decode(
const char* data, uint64_t length)
270 std::ostringstream out;
271 decode(data, length, out);
285 static void decode(
const char* data, uint64_t length, uint8_t buffer[4]) noexcept;
293 #endif // _ANCH_CRYPTO_B2T_BASE64_H_ static std::string encode(const uint8_t *data, uint64_t length) noexcept
Definition: base64.hpp:158
static void encode(const uint8_t *data, uint64_t length, std::basic_ostream< CharT, Traits > &output) noexcept
Definition: base64.hpp:137
static std::string encode(std::basic_istream< CharT, Traits > &data) noexcept
Definition: base64.hpp:96
virtual ~Base64()
Definition: base64.cpp:48
static std::string decode(const std::string &data) noexcept
Definition: base64.hpp:231
AnCH framework base namespace.
Definition: base64.hpp:28
static std::string decode(const char *data, uint64_t length) noexcept
Definition: base64.hpp:268
static void encode(std::basic_istream< CharT, Traits > &data, std::basic_ostream< CharT, Traits > &output) noexcept
Definition: base64.hpp:76
static void encode(const std::basic_string< CharT, Traits, Allocator > &data, std::basic_ostream< CharT, Traits > &output) noexcept
Definition: base64.hpp:109
static std::string encode(const std::basic_string< CharT, Traits, Allocator > &data) noexcept
Definition: base64.hpp:122
static std::string decode(std::istream &data) noexcept
Definition: base64.hpp:206
static void decode(std::istream &data, std::basic_ostream< CharT, Traits > &output) noexcept
Definition: base64.hpp:187
static void decode(const std::string &data, std::basic_ostream< CharT, Traits > &output) noexcept
Definition: base64.hpp:219
Base64 algorithm implementation.
Definition: base64.hpp:40
static void decode(const char *data, uint64_t length, std::basic_ostream< CharT, Traits > &output) noexcept
Definition: base64.hpp:246