@@ -29,11 +29,28 @@ BOOST_AUTO_TEST_CASE(base32_testvectors)
2929 BOOST_CHECK_MESSAGE (std::ranges::equal (*dec, vstrIn[i]), vstrOut[i]);
3030 }
3131
32+ BOOST_CHECK (!DecodeBase32 (" AWSX3VPPinvalid" )); // invalid size
33+ BOOST_CHECK ( DecodeBase32 (" AWSX3VPP" )); // valid
34+
3235 // Decoding strings with embedded NUL characters should fail
33- BOOST_CHECK (!DecodeBase32 (" invalid\0 " s)); // correct size, invalid due to \0
34- BOOST_CHECK (DecodeBase32 (" AWSX3VPP" s)); // valid
35- BOOST_CHECK (!DecodeBase32 (" AWSX3VPP\0 invalid" s)); // correct size, invalid due to \0
36- BOOST_CHECK (!DecodeBase32 (" AWSX3VPPinvalid" s)); // invalid size
36+ BOOST_CHECK (!DecodeBase32 (" invalid\0 " sv)); // correct size, invalid due to \0
37+ BOOST_CHECK (!DecodeBase32 (" AWSX3VPP\0 invalid" sv)); // correct size, invalid due to \0
38+ }
39+
40+ BOOST_AUTO_TEST_CASE (base32_padding)
41+ {
42+ // Is valid without padding
43+ BOOST_CHECK_EQUAL (EncodeBase32 (" fooba" ), " mzxw6ytb" );
44+
45+ // Valid size
46+ BOOST_CHECK (!DecodeBase32 (" ========" ));
47+ BOOST_CHECK (!DecodeBase32 (" a=======" ));
48+ BOOST_CHECK ( DecodeBase32 (" aa======" ));
49+ BOOST_CHECK (!DecodeBase32 (" aaa=====" ));
50+ BOOST_CHECK ( DecodeBase32 (" aaaa====" ));
51+ BOOST_CHECK ( DecodeBase32 (" aaaaa===" ));
52+ BOOST_CHECK (!DecodeBase32 (" aaaaaa==" ));
53+ BOOST_CHECK ( DecodeBase32 (" aaaaaaa=" ));
3754}
3855
3956BOOST_AUTO_TEST_SUITE_END ()
0 commit comments