1 // Copyright (C) 2016 Lukas Lalinsky
2 // Distributed under the MIT license, see the LICENSE file for details.
3
4 #include "base64.h"
5 #include <cassert>
6
7 namespace chromaprint {
8
Base64Encode(const std::string & src,std::string & dest)9 void Base64Encode(const std::string &src, std::string &dest)
10 {
11 dest.resize(GetBase64EncodedSize(src.size()));
12 const auto end = Base64Encode(src.cbegin(), src.cend(), dest.begin());
13 assert(dest.end() == end);
14 }
15
Base64Encode(const std::string & src)16 std::string Base64Encode(const std::string &src)
17 {
18 std::string dest;
19 Base64Encode(src, dest);
20 return dest;
21 }
22
Base64Decode(const std::string & src,std::string & dest)23 void Base64Decode(const std::string &src, std::string &dest)
24 {
25 dest.resize(GetBase64DecodedSize(src.size()));
26 const auto end = Base64Decode(src.cbegin(), src.cend(), dest.begin());
27 assert(dest.end() == end);
28 }
29
Base64Decode(const std::string & src)30 std::string Base64Decode(const std::string &src)
31 {
32 std::string dest;
33 Base64Decode(src, dest);
34 return dest;
35 }
36
37 }; // namespace chromaprint
38