diff options
Diffstat (limited to 'xsig/src/base64.hpp')
-rw-r--r-- | xsig/src/base64.hpp | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/xsig/src/base64.hpp b/xsig/src/base64.hpp new file mode 100644 index 0000000..70d4e40 --- /dev/null +++ b/xsig/src/base64.hpp @@ -0,0 +1,33 @@ +//Chris Xiong 2022 +//License: MPL-2.0 +#include <cstdint> +#include <string> + +class Base64Encoder +{ +private: + static const char *b64c; + uint8_t counter; + uint8_t rem; + std::string ret; +public: + Base64Encoder(); + void encode_data(const void *data, size_t len); + std::string finalize(); +}; + +class Base64Decoder +{ +private: + static const uint8_t b64v[]; + size_t dlen; + bool invalid; + uint8_t rem; + uint8_t counter; + size_t bp; + std::string s; +public: + Base64Decoder(std::string &&b); + size_t decoded_length(); + size_t decode_data(const void *data, size_t len); +}; |