| 9 | namespace butil { |
| 10 | |
| 11 | void Base64Encode(const StringPiece& input, std::string* output) { |
| 12 | std::string temp; |
| 13 | temp.resize(modp_b64_encode_len(input.size())); // makes room for null byte |
| 14 | |
| 15 | // modp_b64_encode_len() returns at least 1, so temp[0] is safe to use. |
| 16 | size_t output_size = modp_b64_encode(&(temp[0]), input.data(), input.size()); |
| 17 | |
| 18 | temp.resize(output_size); // strips off null byte |
| 19 | output->swap(temp); |
| 20 | } |
| 21 | |
| 22 | bool Base64Decode(const StringPiece& input, std::string* output) { |
| 23 | std::string temp; |