aboutsummaryrefslogtreecommitdiffstats
path: root/libtransport/src/hicn/transport/utils/verifier.cc
diff options
context:
space:
mode:
Diffstat (limited to 'libtransport/src/hicn/transport/utils/verifier.cc')
-rw-r--r--libtransport/src/hicn/transport/utils/verifier.cc19
1 files changed, 5 insertions, 14 deletions
diff --git a/libtransport/src/hicn/transport/utils/verifier.cc b/libtransport/src/hicn/transport/utils/verifier.cc
index 4295aaab7..af19d8b5e 100644
--- a/libtransport/src/hicn/transport/utils/verifier.cc
+++ b/libtransport/src/hicn/transport/utils/verifier.cc
@@ -109,14 +109,8 @@ int Verifier::verify(const Packet &packet) {
// Copy IP+TCP/ICMP header before zeroing them
hicn_header_t header_copy;
- if (format == HF_INET_TCP_AH) {
- memcpy(&header_copy, hicn_packet, HICN_V4_TCP_HDRLEN);
- } else if (format == HF_INET6_TCP_AH) {
- memcpy(&header_copy, hicn_packet, HICN_V6_TCP_HDRLEN);
- } else {
- throw errors::RuntimeException(
- "Verifier::verify -- Packet format not expected.");
- }
+ hicn_packet_copy_header(format, (const hicn_header_t *)packet.packet_start_,
+ &header_copy, false);
std::size_t header_len = Packet::getHeaderSizeFromFormat(format);
@@ -130,7 +124,7 @@ int Verifier::verify(const Packet &packet) {
int ah_payload_len = (int)packet.getSignatureSize();
uint8_t *_signature = packet.getSignature();
- uint8_t * signature = new uint8_t[ah_payload_len];
+ uint8_t *signature = new uint8_t[ah_payload_len];
// TODO Remove signature copy at this point, by not setting to zero
// the validation payload.
@@ -185,11 +179,8 @@ int Verifier::verify(const Packet &packet) {
verifier_, key_id, hash_computed_locally, suite, signatureToVerify);
/* Restore the resetted fields */
- if (format & HFO_INET) {
- memcpy(hicn_packet, &header_copy, HICN_V4_TCP_HDRLEN);
- } else if (format & HFO_INET6) {
- memcpy(hicn_packet, &header_copy, HICN_V6_TCP_HDRLEN);
- }
+ hicn_packet_copy_header(format, &header_copy,
+ (hicn_header_t *)packet.packet_start_, false);
delete[] signature;