TSG-7298: QUIC解析层支持解析quic-ietf加密SNI

This commit is contained in:
刘学利
2021-08-23 11:15:11 +00:00
parent 13ba53b5a9
commit f68700112e
30 changed files with 1870 additions and 273 deletions

View File

@@ -152,6 +152,36 @@
#define TAG_RSEQ 0x52534551
#define TAG_CADR 0x43414452
#define EXTENSION_SERVER_NAME 0x0000
#define EXTENSION_SUPPORT_GROUP 0x000A
#define EXTENSION_APP_PROT_NEGO 0x0010 //application layer protocol negotiation
#define EXTENSION_SIG_ALGORITHM 0x000D
#define EXTENSION_KEY_SHARE 0x0033
#define EXTENSION_PSK_EXCHANGE 0x002D
#define EXTENSION_SUPP_SSL_VER 0x002B
#define EXTENSION_QUIC_PARAM 0xFFA5
#define EXTENSION_COMPRESS_CERT 0x001B
#define EXT_QUIC_PARAM_MAX_IDLE_TIMEOUT 0x01
#define EXT_QUIC_PARAM_MAX_UDP_PAYLOAD 0x03
#define EXT_QUIC_PARAM_MAX_INIT_DATA 0x04
#define EXT_QUIC_PARAM_MAX_STREAM_BIDI_LOCAL 0x05
#define EXT_QUIC_PARAM_MAX_STREAM_BIDI_REMOTE 0x06
#define EXT_QUIC_PARAM_MAX_STREAM_UNI 0x07
#define EXT_QUIC_PARAM_MAX_STREAMS_BIDI 0x08
#define EXT_QUIC_PARAM_MAX_STREAMS_UNI 0x09
#define EXT_QUIC_PARAM_MAX_FRAME_SIZE 0x20
#define EXT_QUIC_PARAM_INIT_SRC_CONN_ID 0x0F
#define EXT_QUIC_PARAM_USER_AGENT 0x7129
#define EXT_QUIC_PARAM_NOT_YET_SUPPORTED 0x712B
#define EXT_QUIC_PARAM_QUIC_VERSION 0x80004752
#define EXT_QUIC_PARAM_GREASE_LOW4 0x91D24E9B
#define EXT_QUIC_PARAM_GREASE_HIGH4 0xEA666DE7
#define EXTENSION_QUIC_PARAM_UA 0x7129
#define EXTENSION_QUIC_PARAM_VERSION 0x4752
//https://github.com/quicwg/base-drafts/wiki/QUIC-Versions
enum _QUIC_VERSION
{
@@ -237,6 +267,14 @@ enum _QUIC_VERSION
//Google QUIC with TLS 50 - 59 (T050 - T059)
GQUIC_VERSION_T050=0x54303530,
GQUIC_VERSION_T051=0x54303531,
GQUIC_VERSION_T052=0x54303532,
GQUIC_VERSION_T053=0x54303533,
GQUIC_VERSION_T054=0x54303534,
GQUIC_VERSION_T055=0x54303535,
GQUIC_VERSION_T056=0x54303536,
GQUIC_VERSION_T057=0x54303537,
GQUIC_VERSION_T058=0x54303538,
GQUIC_VERSION_T059=0x54303539,
//Google QUIC with TLS 99 (T099)
@@ -263,6 +301,20 @@ enum _QUIC_VERSION
//Facebook
MVFST_VERSION_00=0xfaceb000,
MVFST_VERSION_01=0xfaceb001,
MVFST_VERSION_02=0xfaceb002,
MVFST_VERSION_03=0xfaceb003,
MVFST_VERSION_04=0xfaceb004,
MVFST_VERSION_05=0xfaceb005,
MVFST_VERSION_06=0xfaceb006,
MVFST_VERSION_07=0xfaceb007,
MVFST_VERSION_08=0xfaceb008,
MVFST_VERSION_09=0xfaceb009,
MVFST_VERSION_0A=0xfaceb00A,
MVFST_VERSION_0B=0xfaceb00B,
MVFST_VERSION_0C=0xfaceb00C,
MVFST_VERSION_0D=0xfaceb00D,
MVFST_VERSION_0E=0xfaceb00E,
MVFST_VERSION_0F=0xfaceb00F,
//IETF
@@ -303,6 +355,7 @@ enum _QUIC_VERSION
struct _quic_context
{
int is_quic;
int is_decrypt;
int cb_version;
int link_state;
int call_business;