diff --git a/integrity_algo.cpp b/integrity_algo.cpp
index 43035dc..dc87625 100644
--- a/integrity_algo.cpp
+++ b/integrity_algo.cpp
@@ -41,14 +41,16 @@
 
 bool AlgoSHA1::verifyIntegrityData(
     const std::vector<uint8_t>& packet, const size_t length,
-    std::vector<uint8_t>::const_iterator integrityData) const
+    std::vector<uint8_t>::const_iterator integrityDataBegin,
+    std::vector<uint8_t>::const_iterator integrityDataEnd) const
 {
     auto output = generateHMAC(
         packet.data() + message::parser::RMCP_SESSION_HEADER_SIZE, length);
 
     // Verify if the generated integrity data for the packet and the received
     // integrity data matches.
-    return (std::equal(output.begin(), output.end(), integrityData));
+    return (std::equal(output.begin(), output.end(), integrityDataBegin,
+                       integrityDataEnd));
 }
 
 std::vector<uint8_t>
@@ -105,14 +107,16 @@
 
 bool AlgoSHA256::verifyIntegrityData(
     const std::vector<uint8_t>& packet, const size_t length,
-    std::vector<uint8_t>::const_iterator integrityData) const
+    std::vector<uint8_t>::const_iterator integrityDataBegin,
+    std::vector<uint8_t>::const_iterator integrityDataEnd) const
 {
     auto output = generateHMAC(
         packet.data() + message::parser::RMCP_SESSION_HEADER_SIZE, length);
 
     // Verify if the generated integrity data for the packet and the received
     // integrity data matches.
-    return (std::equal(output.begin(), output.end(), integrityData));
+    return (std::equal(output.begin(), output.end(), integrityDataBegin,
+                       integrityDataEnd));
 }
 
 std::vector<uint8_t>
