1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef BASE_BASE64_H_ 6 #define BASE_BASE64_H_ 7 8 #include <string> 9 10 #include "base/base_export.h" 11 #include "base/containers/span.h" 12 #include "base/strings/string_piece.h" 13 14 namespace base { 15 16 // Encodes the input binary data in base64. 17 BASE_EXPORT std::string Base64Encode(span<const uint8_t> input); 18 19 // Encodes the input string in base64. 20 BASE_EXPORT void Base64Encode(const StringPiece& input, std::string* output); 21 22 // Decodes the base64 input string. Returns true if successful and false 23 // otherwise. The output string is only modified if successful. The decoding can 24 // be done in-place. 25 BASE_EXPORT bool Base64Decode(const StringPiece& input, std::string* output); 26 27 } // namespace base 28 29 #endif // BASE_BASE64_H_ 30