aboutsummaryrefslogtreecommitdiff
path: root/src/test/base64_tests.cpp
diff options
context:
space:
mode:
authorpracticalswift <practicalswift@users.noreply.github.com>2019-12-16 09:09:17 +0000
committerpracticalswift <practicalswift@users.noreply.github.com>2019-12-16 09:23:19 +0000
commit137c80d579502e329964d7d1028a9507d4667774 (patch)
tree7a1752ee0deef0570a1e8825cddb86d6f297175f /src/test/base64_tests.cpp
parenta6fc26da55dea3b76bd89fbbca24ded170238674 (diff)
downloadbitcoin-137c80d579502e329964d7d1028a9507d4667774.tar.xz
tests: Add tests for decoding/parsing of base32, base64 and money strings containing NUL characters
Diffstat (limited to 'src/test/base64_tests.cpp')
-rw-r--r--src/test/base64_tests.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/test/base64_tests.cpp b/src/test/base64_tests.cpp
index a5fed55504..94df4d1955 100644
--- a/src/test/base64_tests.cpp
+++ b/src/test/base64_tests.cpp
@@ -20,6 +20,17 @@ BOOST_AUTO_TEST_CASE(base64_testvectors)
std::string strDec = DecodeBase64(strEnc);
BOOST_CHECK_EQUAL(strDec, vstrIn[i]);
}
+
+ // Decoding strings with embedded NUL characters should fail
+ bool failure;
+ (void)DecodeBase64(std::string("invalid", 7), &failure);
+ BOOST_CHECK_EQUAL(failure, true);
+ (void)DecodeBase64(std::string("nQB/pZw=", 8), &failure);
+ BOOST_CHECK_EQUAL(failure, false);
+ (void)DecodeBase64(std::string("nQB/pZw=\0invalid", 16), &failure);
+ BOOST_CHECK_EQUAL(failure, true);
+ (void)DecodeBase64(std::string("nQB/pZw=invalid", 15), &failure);
+ BOOST_CHECK_EQUAL(failure, true);
}
BOOST_AUTO_TEST_SUITE_END()