#ifndef CHAOS_PADDING_PADPKCS7_HPP #define CHAOS_PADDING_PADPKCS7_HPP #include #include #include #include "Service/ChaosException.hpp" namespace Chaos::Padding { class PadPkcs7 { public: template static void Pad(OutputIt begin, OutputIt end) { auto dist = std::distance(begin, end); if (dist >= 0 && dist <= std::numeric_limits::max()) { for (OutputIt it = begin; it != end; ++it) { *it = static_cast(dist); } } else { throw Service::ChaosException("PadPkcs7::Pad(): invalid range"); } } }; } // namespace Chaos::Padding #endif // CHAOS_PADDING_PADPKCS7_HPP