This repository has been archived on 2025-09-14. You can view files and clone it, but cannot push or open issues or pull requests.
Files
stellar-stellar/decoders/lpi_plus/lpip_extend.h
2024-11-06 16:34:26 +08:00

37 lines
1.0 KiB
C

#pragma once
#include "libprotoident/libprotoident.h"
typedef enum {
LPI_PROTO_EXTEND_FRIST = LPI_PROTO_LAST,
LPI_PROTO_IKE, //unsupport
LPI_PROTO_DOH, //unsupport
LPI_PROTO_MAIL, //unsupport
LPI_PROTO_ESNI, //unsupport
LPI_PROTP_FTPS,
LPI_PROTO_EXTEND_LAST
} extend_lpi_protocol_t;
struct ovpn_ctx
{
uint64_t local_session_id;
int contain_local_session_id_pkt_num;
int valid_opcode_cnt;
};
struct lpi_plus_detect_context
{
unsigned short detected_s2c_pkt;
unsigned short detected_c2s_pkt;
unsigned char current_is_c2s_flow;
lpi_data_t lpi_data; // lpi API
union
{
struct ovpn_ctx ovpn;
};
};
int lpi_plus_match_quic(int is_c2s_flow, const unsigned char *payload, size_t payload_sz);
int lpi_plus_match_openvpn(const unsigned char *payload, size_t payload_sz, int c2s_pkt_cnt, int s2c_pkt_cnt, struct ovpn_ctx *ovpn, unsigned char trans_proto, bool is_c2s_flow);
lpi_module_t* lpi_plus_extended_guess(struct lpi_plus_detect_context *ctx, lpi_protocol_t lpi_proto, const char *payload, size_t payload_sz);