diff --git a/Chaos/Padding/PadderPkcs7.hpp b/Chaos/Padding/PadderPkcs7.hpp index 59d31e4..b25f554 100644 --- a/Chaos/Padding/PadderPkcs7.hpp +++ b/Chaos/Padding/PadderPkcs7.hpp @@ -21,8 +21,7 @@ public: { auto dist = std::distance(begin, end); - // TODO: dist > 0 - if (dist >= 0 && dist <= std::numeric_limits::max()) + if (dist > 0 && dist <= std::numeric_limits::max()) { for (OutputIt it = begin; it != end; ++it) { diff --git a/ChaosTests/Padding/PadderPkcs7Tests.cpp b/ChaosTests/Padding/PadderPkcs7Tests.cpp index 10f0d21..98f456c 100644 --- a/ChaosTests/Padding/PadderPkcs7Tests.cpp +++ b/ChaosTests/Padding/PadderPkcs7Tests.cpp @@ -45,7 +45,7 @@ TEST(PadPkcs7Tests, PadTest) ASSERT_EQ(expected, fact); } - for (int i = 0; i < 256; ++i) + for (int i = 1; i < 256; ++i) { std::vector fact(i, 0x00); @@ -85,6 +85,16 @@ TEST(PadPkcs7Tests, PadInvalidRangeTest) ASSERT_EQ("PadderPkcs7::Pad(): invalid range", ex.GetMessage()); }); } + + { + std::array out = {}; + + ASSERT_THROW_EX(PadderPkcs7::Pad(out.end(), out.begin()), + Chaos::Service::ChaosException, + { + ASSERT_EQ("PadderPkcs7::Pad(): invalid range", ex.GetMessage()); + }); + } } TEST(PadPkcs7Tests, PadOutIteratorUsageTest) @@ -127,10 +137,10 @@ TEST(PadPkcs7Tests, PadOutIteratorUsageTest) std::array expected = { 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, - 0xbb, 0xbb, 0xbb, 0xbb, 0xbb + 0x01, 0xbb, 0xbb, 0xbb, 0xbb }; - PadderPkcs7::Pad(fact.begin() + 5, fact.begin() + 5); + PadderPkcs7::Pad(fact.begin() + 5, fact.begin() + 6); ASSERT_EQ(expected, fact); } }