#include #include #include #include #include "Padding/PadPkcs7.hpp" #include "Service/ChaosException.hpp" using namespace Chaos::Padding; TEST(PadPkcs7Tests, PadTest) { { std::array fact = {}; std::array expected = { 0x01 }; PadPkcs7::Pad(fact.begin(), fact.end()); ASSERT_EQ(expected, fact); } { std::array fact = {}; std::array expected = { 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07 }; PadPkcs7::Pad(fact.begin(), fact.end()); ASSERT_EQ(expected, fact); } { std::array fact = {}; std::array expected = { 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a }; PadPkcs7::Pad(fact.begin(), fact.end()); ASSERT_EQ(expected, fact); } for (int i = 0; i < 256; ++i) { std::vector fact(i, 0x00); PadPkcs7::Pad(fact.begin(), fact.end()); ASSERT_EQ(std::vector(i, i), fact); } } TEST(PadPkcs7Tests, PadInvalidRangeTest) { { std::array out = {}; ASSERT_THROW(PadPkcs7::Pad(out.begin(), out.end()), Chaos::Service::ChaosException); } { std::array out = {}; ASSERT_THROW(PadPkcs7::Pad(out.begin(), out.end()), Chaos::Service::ChaosException); } { std::array out = {}; ASSERT_THROW(PadPkcs7::Pad(out.end(), out.begin()), Chaos::Service::ChaosException); } } TEST(PadPkcs7Tests, PadOutIteratorUsageTest) { { std::array fact = {}; std::array expected = { 0x00, 0x00, 0x00, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x00, 0x00, 0x00 }; PadPkcs7::Pad(fact.begin() + 3, fact.end() - 3); ASSERT_EQ(expected, fact); } { std::array fact = {}; std::array expected = { 0x00, 0x00, 0x00, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x00, 0x00, 0x00 }; PadPkcs7::Pad(fact.begin() + 3, fact.end() - 3); ASSERT_EQ(expected, fact); } { std::array fact = { 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb }; std::array expected = { 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb }; PadPkcs7::Pad(fact.begin() + 5, fact.begin() + 5); ASSERT_EQ(expected, fact); } }