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