00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00018
00019 #ifndef NET_INSTAWEB_UTIL_PUBLIC_BASE64_UTIL_H_
00020 #define NET_INSTAWEB_UTIL_PUBLIC_BASE64_UTIL_H_
00021
00022 #include "net/instaweb/util/public/string.h"
00023
00024 #include "base/string_piece.h"
00025 #include "third_party/base64/base64.h"
00026
00027 namespace net_instaweb {
00028
00029 typedef base::StringPiece StringPiece;
00030
00031 inline void Web64Encode(const StringPiece& in, GoogleString* out) {
00032 *out = web64_encode(reinterpret_cast<const unsigned char*>(in.data()),
00033 in.size());
00034 }
00035
00036 inline bool Web64Decode(const StringPiece& in, GoogleString* out) {
00037 bool ret = web64_decode(in.as_string(), out);
00038 return ret;
00039 }
00040
00041 inline void Mime64Encode(const StringPiece& in, GoogleString* out) {
00042 *out = base64_encode(reinterpret_cast<const unsigned char*>(in.data()),
00043 in.size());
00044 }
00045
00046 inline bool Mime64Decode(const StringPiece& in, GoogleString* out) {
00047 bool ret = base64_decode(in.as_string(), out);
00048 return ret;
00049 }
00050
00051 }
00052
00053 #endif ///< NET_INSTAWEB_UTIL_PUBLIC_BASE64_UTIL_H_