aboutsummaryrefslogtreecommitdiffstats
path: root/library/cpp/string_utils/base64/base64.h
diff options
context:
space:
mode:
authorbvdvlg <bvdvlg@yandex-team.com>2024-06-20 10:36:59 +0300
committerbvdvlg <bvdvlg@yandex-team.com>2024-06-20 10:49:09 +0300
commitd21e541fb10f20b63b156d0a457153c4287112c8 (patch)
tree0c204849e305e923866440453e910d3514ea95e7 /library/cpp/string_utils/base64/base64.h
parent515aa2dfa47824063f196b1af06264a0f393d8d5 (diff)
downloadydb-d21e541fb10f20b63b156d0a457153c4287112c8.tar.gz
Add Base64EncodeNoPadding Method
23b4ac85c9195fa9b0e7b0624cc3a61d010745be
Diffstat (limited to 'library/cpp/string_utils/base64/base64.h')
-rw-r--r--library/cpp/string_utils/base64/base64.h16
1 files changed, 16 insertions, 0 deletions
diff --git a/library/cpp/string_utils/base64/base64.h b/library/cpp/string_utils/base64/base64.h
index 22e6b4b542..43fda2a977 100644
--- a/library/cpp/string_utils/base64/base64.h
+++ b/library/cpp/string_utils/base64/base64.h
@@ -99,6 +99,7 @@ constexpr size_t Base64EncodeBufSize(const size_t len) noexcept {
char* Base64Encode(char* outstr, const unsigned char* instr, size_t len);
char* Base64EncodeUrl(char* outstr, const unsigned char* instr, size_t len);
+char* Base64EncodeNoPadding(char* outstr, const unsigned char* instr, size_t len);
/// Make base64 string which stay unchaged after applying 'urlencode' function
/// as it doesn't contain character, which cannot be used in urls
@@ -114,6 +115,10 @@ inline TStringBuf Base64Encode(const TStringBuf src, void* output) {
return TStringBuf(static_cast<const char*>(output), Base64Encode(static_cast<char*>(output), reinterpret_cast<const unsigned char*>(src.data()), src.size()));
}
+inline TStringBuf Base64EncodeNoPadding(const TStringBuf src, void* output) {
+ return TStringBuf(static_cast<const char*>(output), Base64EncodeNoPadding(static_cast<char*>(output), reinterpret_cast<const unsigned char*>(src.data()), src.size()));
+}
+
inline TStringBuf Base64EncodeUrl(const TStringBuf src, void* output) {
return TStringBuf(static_cast<const char*>(output), Base64EncodeUrl(static_cast<char*>(output), reinterpret_cast<const unsigned char*>(src.data()), src.size()));
}
@@ -127,6 +132,11 @@ inline void Base64Encode(const TStringBuf src, TString& dst) {
dst.resize(Base64Encode(src, dst.begin()).size());
}
+inline void Base64EncodeNoPadding(const TStringBuf src, TString& dst) {
+ dst.ReserveAndResize(Base64EncodeBufSize(src.size()));
+ dst.resize(Base64EncodeNoPadding(src, dst.begin()).size());
+}
+
inline void Base64EncodeUrl(const TStringBuf src, TString& dst) {
dst.ReserveAndResize(Base64EncodeBufSize(src.size()));
dst.resize(Base64EncodeUrl(src, dst.begin()).size());
@@ -143,6 +153,12 @@ inline TString Base64Encode(const TStringBuf s) {
return ret;
}
+inline TString Base64EncodeNoPadding(const TStringBuf s) {
+ TString ret;
+ Base64EncodeNoPadding(s, ret);
+ return ret;
+}
+
inline TString Base64EncodeUrl(const TStringBuf s) {
TString ret;
Base64EncodeUrl(s, ret);