diff options
Diffstat (limited to 'src/libosfp_fingerprint.h')
| -rw-r--r-- | src/libosfp_fingerprint.h | 58 |
1 files changed, 6 insertions, 52 deletions
diff --git a/src/libosfp_fingerprint.h b/src/libosfp_fingerprint.h index c37110c..a7a47ea 100644 --- a/src/libosfp_fingerprint.h +++ b/src/libosfp_fingerprint.h @@ -1,59 +1,8 @@ #ifndef __LIBOSFP_FINGERPRINT_H__ #define __LIBOSFP_FINGERPRINT_H__ -#include "libosfp.h" - #define LIBOSFP_FINGERPRINT_VALUE_BUFFER_MAX 128 -#define LIBOSFP_TCP_OPTLENMAX 64 -#define LIBOSFP_TCP_OPTMAX 20 - -//# TCP Options (opt_type) - http://www.iana.org/assignments/tcp-parameters -#define LIBOSFP_TCP_OPT_EOL 0 //# end of option list -#define LIBOSFP_TCP_OPT_NOP 1 //# no operation -#define LIBOSFP_TCP_OPT_MSS 2 //# maximum segment size -#define LIBOSFP_TCP_OPT_WSCALE 3 //# window scale factor, RFC 1072 -#define LIBOSFP_TCP_OPT_SACKOK 4 //# SACK permitted, RFC 2018 -#define LIBOSFP_TCP_OPT_SACK 5 //# SACK, RFC 2018 -#define LIBOSFP_TCP_OPT_ECHO 6 //# echo (obsolete), RFC 1072 -#define LIBOSFP_TCP_OPT_ECHOREPLY 7 //# echo reply (obsolete), RFC 1072 -#define LIBOSFP_TCP_OPT_TIMESTAMP 8 //# timestamps, RFC 1323 -#define LIBOSFP_TCP_OPT_POCONN 9 //# partial order conn, RFC 1693 -#define LIBOSFP_TCP_OPT_POSVC 10 //# partial order service, RFC 1693 -#define LIBOSFP_TCP_OPT_CC 11 //# connection count, RFC 1644 -#define LIBOSFP_TCP_OPT_CCNEW 12 //# CC.NEW, RFC 1644 -#define LIBOSFP_TCP_OPT_CCECHO 13 //# CC.ECHO, RFC 1644 -#define LIBOSFP_TCP_OPT_ALTSUM 14 //# alt checksum request, RFC 1146 -#define LIBOSFP_TCP_OPT_ALTSUMDATA 15 //# alt checksum data, RFC 1146 -#define LIBOSFP_TCP_OPT_SKEETER 16 //# Skeeter -#define LIBOSFP_TCP_OPT_BUBBA 17 //# Bubba -#define LIBOSFP_TCP_OPT_TRAILSUM 18 //# trailer checksum -#define LIBOSFP_TCP_OPT_MD5 19 //# MD5 signature, RFC 2385 -#define LIBOSFP_TCP_OPT_SCPS 20 //# SCPS capabilities -#define LIBOSFP_TCP_OPT_SNACK 21 //# selective negative acks -#define LIBOSFP_TCP_OPT_REC 22 //# record boundaries -#define LIBOSFP_TCP_OPT_CORRUPT 23 //# corruption experienced -#define LIBOSFP_TCP_OPT_SNAP 24 //# SNAP -#define LIBOSFP_TCP_OPT_TCPCOMP 26 //# TCP compression filter -#define LIBOSFP_TCP_OPT_MAX 27 //# Quick-Start Response -#define LIBOSFP_TCP_OPT_USRTO 28 //# User Timeout Option (also, other known unauthorized use) [***][1] [RFC5482] -#define LIBOSFP_TCP_OPT_AUTH 29 //# TCP Authentication Option (TCP-AO) [RFC5925] -#define LIBOSFP_TCP_OPT_MULTIPATH 30 //# Multipath TCP (MPTCP) -#define LIBOSFP_TCP_OPT_FASTOPEN 34 //# TCP Fast Open Cookie [RFC7413] -#define LIBOSFP_TCP_OPY_ENCNEG 69 //# Encryption Negotiation (TCP-ENO) [RFC8547] -#define LIBOSFP_TCP_OPT_EXP1 253 //# RFC3692-style Experiment 1 (also improperly used for shipping products) -#define LIBOSFP_TCP_OPT_EXP2 254 //# RFC3692-style Experiment 2 (also improperly used for shipping products) - -#define LIBOSFP_TCP_OPT_SACKOK_LEN 2 -#define LIBOSFP_TCP_OPT_WS_LEN 3 -#define LIBOSFP_TCP_OPT_TS_LEN 10 -#define LIBOSFP_TCP_OPT_MSS_LEN 4 -#define LIBOSFP_TCP_OPT_SACK_MIN_LEN 10 /* hdr 2, 1 pair 8 = 10 */ -#define LIBOSFP_TCP_OPT_SACK_MAX_LEN 34 /* hdr 2, 4 pair 32= 34 */ -#define LIBOSFP_TCP_OPT_TFO_MIN_LEN 4 /* kind, len, 2 bytes cookie: 4 */ -#define LIBOSFP_TCP_OPT_TFO_MAX_LEN 18 /* kind, len, 18 */ - - typedef enum libosfp_field_id { LIBOSFP_FIELD_IP_ID, LIBOSFP_FIELD_IP_TOS, @@ -99,8 +48,13 @@ char *libosfp_fingerprint_get_field_name(libosfp_field_id_t field_id); unsigned int libosfp_fingerprint_get_field_enabled(libosfp_field_id_t field_id); unsigned int libosfp_fingerprint_get_field_importance(libosfp_field_id_t field_id); unsigned int libosfp_fingerprint_get_field_type(libosfp_field_id_t field_id); - int libosfp_fingerprint_to_json_buf(libosfp_fingerprint_t *fp, char *strbuf, unsigned int buf_len); +void libosfp_fingerprint_setup_field(libosfp_fingerprint_t *fp, libosfp_field_id_t field_id, void *value, unsigned int len); + +void libosfp_fingerprinting_tcp_option(unsigned char *pkt, unsigned int pktlen, libosfp_fingerprint_t *fp); +int libosfp_fingerprinting_tcp(struct tcphdr *tcph, libosfp_fingerprint_t *fp); +int libosfp_fingerprinting_ipv4(struct iphdr *iph, libosfp_fingerprint_t *fp); +int libosfp_fingerprinting_ipv6(struct ipv6hdr *iph, libosfp_fingerprint_t *fp); int libosfp_fingerprinting(unsigned char *iphdr, unsigned char *tcphdr, libosfp_fingerprint_t *fp); #endif |
