summaryrefslogtreecommitdiff
path: root/src/libosfp_fingerprint.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/libosfp_fingerprint.h')
-rw-r--r--src/libosfp_fingerprint.h58
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