10 #ifndef _PROTOCOL_PARSERS_PACKET_UTILS_
11 #define _PROTOCOL_PARSERS_PACKET_UTILS_
18 #include <arpa/inet.h>
21 #define MAC_ADDR_LENGTH 6
22 #define MAC_ADDR_STRLEN 18
23 #define IPV4_ADDR_LENGTH 4
24 #define IPV6_ADDR_LENGTH 16
31 uint8_t ipv6[IPV6_ADDR_LENGTH];
174 uint8_t*
compute_hash(uint8_t *payload,
int payload_len);
char * ip_net_to_str(ip_addr_t ip_addr)
Converts an IP (v4 or v6) address to its string representation.
Definition: packet_utils.c:205
char * ipv6_net_to_str(uint8_t ipv6[])
Converts an IPv6 address to its string representation.
Definition: packet_utils.c:168
char * mac_hex_to_str(uint8_t mac_hex[])
Definition: packet_utils.c:63
void print_payload(int length, uint8_t *data)
Definition: packet_utils.c:19
ip_addr_t ip_str_to_net(char *ip_str, uint8_t version)
Definition: packet_utils.c:226
bool compare_ipv6(uint8_t *ipv6_1, uint8_t *ipv6_2)
Compare two IPv6 addresses.
Definition: packet_utils.c:248
char * ipv4_hex_to_str(char *ipv4_hex)
Definition: packet_utils.c:131
size_t hexstr_to_payload(char *hexstring, uint8_t **payload)
Definition: packet_utils.c:44
bool compare_ip(ip_addr_t ip_1, ip_addr_t ip_2)
Compare two IP (v4 or v6) addresses.
Definition: packet_utils.c:259
char * ipv4_net_to_str(uint32_t ipv4_net)
Definition: packet_utils.c:106
uint8_t * ipv6_str_to_net(char *ipv6_str)
Definition: packet_utils.c:185
uint8_t * compute_hash(uint8_t *payload, int payload_len)
Compute SHA256 hash of a given payload.
Definition: packet_utils.c:276
uint8_t * mac_str_to_hex(char *mac_str)
Definition: packet_utils.c:84
uint32_t ipv4_str_to_net(char *ipv4_str)
Definition: packet_utils.c:118
void print_hash(uint8_t *hash)
Print a SHA256 hash.
Definition: packet_utils.c:290
char * ipv4_str_to_hex(char *ipv4_str)
Definition: packet_utils.c:150
IP (v4 or v6) address.
Definition: packet_utils.h:37
IP (v4 or v6) address value.
Definition: packet_utils.h:29