| 255 | } |
| 256 | |
| 257 | size_t Base64Decode(void* dst, const char* b, const char* e) { |
| 258 | static const TImpl IMPL = GetImpl(); |
| 259 | const auto size = e - b; |
| 260 | Y_ENSURE(!(size % 4), "incorrect input length for base64 decode"); |
| 261 | if (Y_LIKELY(size < 8)) { |
| 262 | return Base64DecodePlain(dst, b, e); |
| 263 | } |
| 264 | |
| 265 | size_t outLen; |
| 266 | IMPL.Decode(b, size, (char*)dst, &outLen); |
| 267 | |
| 268 | return outLen; |
| 269 | } |
| 270 | |
| 271 | size_t Base64DecodeUneven(void* dst, const TStringBuf s) { |
| 272 | const size_t tailSize = s.length() % 4; |
no test coverage detected