diff options
author | bvdvlg <bvdvlg@yandex-team.com> | 2024-06-20 10:36:59 +0300 |
---|---|---|
committer | bvdvlg <bvdvlg@yandex-team.com> | 2024-06-20 10:49:09 +0300 |
commit | d21e541fb10f20b63b156d0a457153c4287112c8 (patch) | |
tree | 0c204849e305e923866440453e910d3514ea95e7 /library/cpp/string_utils/base64/base64.h | |
parent | 515aa2dfa47824063f196b1af06264a0f393d8d5 (diff) | |
download | ydb-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.h | 16 |
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); |