fix(base64): encode: incorrect padding if size % 3 == 2

This commit is contained in:
2024-09-28 13:21:42 +03:00
parent bce26d3a4b
commit 71ff3d4260
4 changed files with 7 additions and 9 deletions

View File

@ -21,8 +21,8 @@ TEST(base64, isValid)
std::vector<std::pair<std::string, std::string>> tests = {
{"", ""},
{"BKUEpQ==", "04a504a5"},
{"BKUEpQA=", "04a504a500"},
{"BKUEpQAA", "04a504a50000"},
{"aGVsbG8=", "68656c6c6f"},
{"aGVsbG9v", "68656c6c6f6f"},
};
TEST(base64, encode)
{
@ -49,7 +49,7 @@ TEST(base64, decode)
EXPECT_THROW(decode("FFF", 3, data.data(), data.size()), std::logic_error);
EXPECT_THROW(decode("!@#!", 4, data.data(), data.size()), std::logic_error);
EXPECT_THROW(decode("FF==", 2, data.data(), 0), std::length_error);
EXPECT_NO_THROW(decode("" , 0, data.data(), 0));
EXPECT_NO_THROW(decode("", 0, data.data(), 0));
}
TEST(base64, decode_1e7)
{