TSG-8261,TSG-8291: 部分QUIC RFC9000未解析出SNI/User-Agent字段
This commit is contained in:
@@ -170,26 +170,37 @@ int is_quic_port(struct streaminfo *pstream)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int get_value(unsigned char *payload, int *offset, int len)
|
||||
static long get_value(unsigned char *payload, int *offset, int len)
|
||||
{
|
||||
switch(len)
|
||||
{
|
||||
case 1:
|
||||
return (int)(payload[(*offset)++]);
|
||||
return (long)(payload[(*offset)++]);
|
||||
break;
|
||||
case 2:
|
||||
(*offset)+=len;
|
||||
return (int)ntohs(*(unsigned short *)(payload+*offset-len));
|
||||
return (long)ntohs(*(unsigned short *)(payload+*offset-len));
|
||||
break;
|
||||
case 3:
|
||||
(*offset)+=len;
|
||||
return ((int)*(payload-2+*offset)<<16|
|
||||
(int)*(payload-1+*offset)<<8|
|
||||
(int)*(payload+*offset)<<0);
|
||||
return ((long)*(payload-2+*offset)<<16|
|
||||
(long)*(payload-1+*offset)<<8|
|
||||
(long)*(payload+*offset)<<0);
|
||||
break;
|
||||
case 4:
|
||||
(*offset)+=len;
|
||||
return (int)ntohl(*(unsigned int *)(payload+*offset-len));
|
||||
return (long)ntohl(*(unsigned int *)(payload+*offset-len));
|
||||
break;
|
||||
case 8:
|
||||
(*offset)+=len;
|
||||
return ((long)*(payload-7+*offset)<<56|
|
||||
(long)*(payload-6+*offset)<<48|
|
||||
(long)*(payload-5+*offset)<<40|
|
||||
(long)*(payload-4+*offset)<<32|
|
||||
(long)*(payload-3+*offset)<<24|
|
||||
(long)*(payload-2+*offset)<<16|
|
||||
(long)*(payload-1+*offset)<<8|
|
||||
(long)*(payload+*offset)<<0);
|
||||
break;
|
||||
case 32:
|
||||
(*offset)+=len;
|
||||
@@ -1062,7 +1073,7 @@ int parse_gquic_Q046(struct streaminfo *pstream, struct _quic_context* _context,
|
||||
frame_type=payload[*used_len];
|
||||
*used_len+=1; //skip frame_type
|
||||
|
||||
if(frame_type&IQUIC_FRAME_STREAM_HEX08) //0x08=Q048
|
||||
if((frame_type>>4)&IQUIC_FRAME_STREAM_HEX08) //0x08=Q048
|
||||
{
|
||||
stream_id=get_stream_id(pstream, _context, payload, payload_len, frame_type, used_len);
|
||||
if(stream_id<0)
|
||||
@@ -1085,54 +1096,80 @@ int parse_gquic_Q046(struct streaminfo *pstream, struct _quic_context* _context,
|
||||
return APP_STATE_GIVEME;
|
||||
}
|
||||
|
||||
int parameter_type_len(unsigned char flags)
|
||||
{
|
||||
switch(flags)
|
||||
{
|
||||
case 0:
|
||||
return 1;
|
||||
break;
|
||||
case 1:
|
||||
return 2;
|
||||
break;
|
||||
case 2:
|
||||
return 4;
|
||||
break;
|
||||
case 3:
|
||||
return 8;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
int parse_encrypt_parameter(struct _quic_stream *quic_stream, unsigned char *payload, int payload_len, int thread_seq)
|
||||
{
|
||||
int used_len=0,length=0;
|
||||
int para_type_len=0;
|
||||
unsigned long para_type=0;
|
||||
|
||||
while(payload_len>used_len)
|
||||
{
|
||||
if(payload[used_len]> 0x00 && payload[used_len]<=0x20)
|
||||
{
|
||||
get_value(payload, &used_len, 1); //type=1
|
||||
length=get_value(payload, &used_len, 1); // length=1
|
||||
used_len+=length;
|
||||
|
||||
continue;
|
||||
}
|
||||
|
||||
if((*(unsigned short *)(payload+used_len)) == htons(EXT_QUIC_PARAM_USER_AGENT))
|
||||
para_type_len=parameter_type_len(payload[used_len]>>6);
|
||||
para_type=get_value(payload, &used_len, para_type_len); //type=
|
||||
switch(para_type&0xFFFF)
|
||||
{
|
||||
case EXT_QUIC_PARAM_USER_AGENT: // 2021-10-20 deprecated
|
||||
quic_stream->ua_idx=quic_stream->ext_tag_num++;
|
||||
get_value(payload, &used_len, 2); //type=2
|
||||
length=get_value(payload, &used_len, 1); // length=1
|
||||
get_quic_tlv((char *)payload+used_len, &(quic_stream->ext_tags[quic_stream->ua_idx]), length, EXT_QUIC_PARAM_USER_AGENT, thread_seq);
|
||||
used_len+=length;
|
||||
|
||||
continue;
|
||||
}
|
||||
|
||||
if(*(unsigned int *)(payload+used_len) == htonl(EXT_QUIC_PARAM_QUIC_VERSION))
|
||||
{
|
||||
break;
|
||||
case EXT_QUIC_PARAM_QUIC_VERSION:
|
||||
quic_stream->ver_idx=quic_stream->ext_tag_num++;
|
||||
get_value(payload, &used_len, 4); //type=4
|
||||
length=get_value(payload, &used_len, 1); // length=1
|
||||
get_quic_tlv((char *)payload+used_len, &(quic_stream->ext_tags[quic_stream->ver_idx]), length, EXT_QUIC_PARAM_QUIC_VERSION, thread_seq);
|
||||
*(unsigned int *)quic_stream->ext_tags[quic_stream->ver_idx].value=(unsigned int)htonl(*(unsigned int *)quic_stream->ext_tags[quic_stream->ver_idx].value);
|
||||
used_len+=length;
|
||||
|
||||
continue;
|
||||
}
|
||||
|
||||
if((*(unsigned int *)(payload+used_len))== htonl(EXT_QUIC_PARAM_GREASE_HIGH4) && (*(unsigned int *)(payload+used_len+4))== htonl(EXT_QUIC_PARAM_GREASE_LOW4))
|
||||
{
|
||||
used_len+=8; //type=8
|
||||
break;
|
||||
case EXT_QUIC_PARAM_INIT_RTT:
|
||||
case EXT_QUIC_PARAM_GOOGLE_CONN_OPTIONS:
|
||||
case EXT_QUIC_PARAM_ORIGINAL_DST_CONN_ID:
|
||||
case EXT_QUIC_PARAM_MAX_IDLE_TIMEOUT:
|
||||
case EXT_QUIC_PARAM_STATELESS_RST_TOKEN:
|
||||
case EXT_QUIC_PARAM_MAX_UDP_PAYLOAD:
|
||||
case EXT_QUIC_PARAM_MAX_INIT_DATA:
|
||||
case EXT_QUIC_PARAM_MAX_STREAM_BIDI_LOCAL:
|
||||
case EXT_QUIC_PARAM_MAX_STREAM_BIDI_REMOTE:
|
||||
case EXT_QUIC_PARAM_MAX_STREAM_UNI:
|
||||
case EXT_QUIC_PARAM_MAX_STREAMS_BIDI:
|
||||
case EXT_QUIC_PARAM_MAX_STREAMS_UNI:
|
||||
case EXT_QUIC_PARAM_ACK_DELAY_EXPONENT:
|
||||
case EXT_QUIC_PARAM_MAX_ACK_DELAY:
|
||||
case EXT_QUIC_PARAM_DISABLE_ACTIVE_MIGRATION:
|
||||
case EXT_QUIC_PARAM_PREFERRED_ADDRESS:
|
||||
case EXT_QUIC_PARAM_ACTIVE_CONN_ID_LINIT:
|
||||
case EXT_QUIC_PARAM_INIT_SRC_CONN_ID:
|
||||
case EXT_QUIC_PARAM_RETRY_SRC_CONN_ID:
|
||||
case EXT_QUIC_PARAM_MAX_DATAGRAM_FRAME_SIZE:
|
||||
default:
|
||||
length=get_value(payload, &used_len, 1); // length=1
|
||||
used_len+=length;
|
||||
|
||||
continue;
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -1226,7 +1263,8 @@ int parse_encrypt_client_hello(struct streaminfo *pstream, struct _quic_stream *
|
||||
}
|
||||
flags=1;
|
||||
break;
|
||||
case EXTENSION_QUIC_PARAM:
|
||||
case EXTENSION_QUIC_PARAM_TLS_13:
|
||||
case EXTENSION_QUIC_PARAM_TLS_33:
|
||||
parse_encrypt_parameter(quic_stream, payload+used_len, skip_len, pstream->threadnum);
|
||||
break;
|
||||
case EXTENSION_SUPPORT_GROUP:
|
||||
@@ -1247,12 +1285,70 @@ int parse_encrypt_client_hello(struct streaminfo *pstream, struct _quic_stream *
|
||||
return flags;
|
||||
}
|
||||
|
||||
static int get_decrypt_payload(unsigned char * payload, int payload_len, unsigned char *join_payload, int *join_payload_len, int *used_len)
|
||||
{
|
||||
int join_length=0;
|
||||
unsigned char frame_type=0;
|
||||
unsigned short offset=0;
|
||||
unsigned short length=0;
|
||||
|
||||
for(; *used_len<payload_len; )
|
||||
{
|
||||
frame_type=get_value(payload, used_len, 1); // Frame Type=1
|
||||
if(frame_type==IQUIC_FRAME_PADDING || frame_type==IQUIC_FRAME_PING)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if((payload+(*used_len))[0]&0x40)
|
||||
{
|
||||
offset=(get_value(payload, used_len, 2))&0x0FFF; // offset=12bit
|
||||
}
|
||||
else
|
||||
{
|
||||
offset=get_value(payload, used_len, 1); // offset=8bit
|
||||
}
|
||||
|
||||
if((payload+(*used_len))[0]&0x40)
|
||||
{
|
||||
length=(get_value(payload, used_len, 2))&0x0FFF; // length=12bit
|
||||
}
|
||||
else
|
||||
{
|
||||
length=get_value(payload, used_len, 1); // length=8bit
|
||||
}
|
||||
|
||||
if((*join_payload_len)<join_length+length)
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
#if 0
|
||||
if(frame_type==IQUIC_FRAME_CRYPTO && offset==0 && join_length==0)
|
||||
{
|
||||
memcpy(join_payload, payload+(*used_len), length);
|
||||
join_length+=length;
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
memcpy(join_payload+offset, payload+(*used_len), length);
|
||||
join_length+=length;
|
||||
*used_len+=length;
|
||||
}
|
||||
|
||||
(*join_payload_len)=join_length;
|
||||
|
||||
return join_length;
|
||||
}
|
||||
|
||||
int parse_decrypt_quic(struct streaminfo *pstream, struct _quic_context* _context, void *a_packet, unsigned char * payload, int payload_len, int *used_len)
|
||||
{
|
||||
unsigned char join_payload[2048]={0};
|
||||
int join_payload_len=sizeof(join_payload);
|
||||
|
||||
int ret=0,state=APP_STATE_GIVEME;
|
||||
unsigned int quic_version=_context->quic_info.quic_hdr.quic_version;
|
||||
|
||||
get_value(payload, used_len, 4); //Frame Type=1, offset=1, length=2
|
||||
|
||||
if( (quic_version>=MVFST_VERSION_00 && quic_version<=MVFST_VERSION_0F) ||
|
||||
(quic_version>=GQUIC_VERSION_T050 && quic_version<=GQUIC_VERSION_T059) ||
|
||||
@@ -1260,7 +1356,12 @@ int parse_decrypt_quic(struct streaminfo *pstream, struct _quic_context* _contex
|
||||
(quic_version==IQUIC_VERSION_RFC9000)
|
||||
)
|
||||
{
|
||||
if(payload[*used_len] == 0x01)
|
||||
join_payload_len=get_decrypt_payload(payload, payload_len, join_payload, &join_payload_len, used_len);
|
||||
if(join_payload_len<=0)
|
||||
{
|
||||
return state;
|
||||
}
|
||||
if(join_payload[0] == 0x01)
|
||||
{
|
||||
if(_context->quic_info.client_hello==NULL)
|
||||
{
|
||||
@@ -1270,15 +1371,16 @@ int parse_decrypt_quic(struct streaminfo *pstream, struct _quic_context* _contex
|
||||
_context->quic_info.client_hello->ua_idx=0xFF;
|
||||
_context->quic_info.client_hello->ver_idx=0xFF;
|
||||
}
|
||||
ret=parse_encrypt_client_hello(pstream, _context->quic_info.client_hello, a_packet, payload+*used_len, payload_len-*used_len); //Frame Type=1, offset=1, length=2
|
||||
ret=parse_encrypt_client_hello(pstream, _context->quic_info.client_hello, a_packet, join_payload, join_payload_len);
|
||||
if(ret>0 && _context->call_business)
|
||||
{
|
||||
state=quic_callPlugins(pstream, _context, (void *)(_context->quic_info.client_hello), sizeof(void *), QUIC_CLIENT_HELLO_MASK, a_packet);
|
||||
}
|
||||
}
|
||||
}
|
||||
else if( (quic_version>=GQUIC_VERSION_Q047 && quic_version<=GQUIC_VERSION_Q059))
|
||||
else if(quic_version>=GQUIC_VERSION_Q047 && quic_version<=GQUIC_VERSION_Q059)
|
||||
{
|
||||
get_value(payload, used_len, 4); // Frame type=1,offset=1,length=2
|
||||
state=gquic_frame_type_stream(pstream, _context, (char *)payload, payload_len, used_len, a_packet);
|
||||
}
|
||||
else
|
||||
|
||||
@@ -62,37 +62,39 @@
|
||||
#define GQUIC_REGULAR_FRAME_STOP_WAITING 0x06
|
||||
#define GQUIC_REGULAR_FRAME_PING 0x07
|
||||
|
||||
|
||||
//https://datatracker.ietf.org/doc/html/draft-ietf-quic-transport-27#section-12.4
|
||||
//IQIIC Frame type (GQUIC_Q046 is iQUIC 17)
|
||||
#define IQUIC_FRAME_PADDING 0x00
|
||||
#define IQUIC_FRAME_PING 0x10
|
||||
#define IQUIC_FRAME_ACK_HEX02 0x20
|
||||
#define IQUIC_FRAME_ACK_HEX03 0x30
|
||||
#define IQUIC_FRAME_RESET_STREAM 0x40
|
||||
#define IQUIC_FRAME_STOP_SENDING 0x50
|
||||
#define IQUIC_FRAME_CRYPTO 0x60
|
||||
#define IQUIC_FRAME_NEW_TOKEN 0x70
|
||||
#define IQUIC_FRAME_STREAM_HEX08 0x80
|
||||
#define IQUIC_FRAME_STREAM_HEX09 0x90
|
||||
#define IQUIC_FRAME_STREAM_HEX0A 0xA0
|
||||
#define IQUIC_FRAME_STREAM_HEX0B 0xB0
|
||||
#define IQUIC_FRAME_STREAM_HEX0C 0xC0
|
||||
#define IQUIC_FRAME_STREAM_HEX0D 0xD0
|
||||
#define IQUIC_FRAME_STREAM_HEX0E 0xE0
|
||||
#define IQUIC_FRAME_STREAM_HEX0F 0xF0
|
||||
#define IQUIC_FRAME_MAX_DATA 0x01
|
||||
#define IQUIC_FRAME_PING 0x01
|
||||
#define IQUIC_FRAME_ACK_HEX02 0x02
|
||||
#define IQUIC_FRAME_ACK_HEX03 0x03
|
||||
#define IQUIC_FRAME_RESET_STREAM 0x04
|
||||
#define IQUIC_FRAME_STOP_SENDING 0x05
|
||||
#define IQUIC_FRAME_CRYPTO 0x06
|
||||
#define IQUIC_FRAME_NEW_TOKEN 0x07
|
||||
#define IQUIC_FRAME_STREAM_HEX08 0x08
|
||||
#define IQUIC_FRAME_STREAM_HEX09 0x09
|
||||
#define IQUIC_FRAME_STREAM_HEX0A 0x0A
|
||||
#define IQUIC_FRAME_STREAM_HEX0B 0x0B
|
||||
#define IQUIC_FRAME_STREAM_HEX0C 0x0C
|
||||
#define IQUIC_FRAME_STREAM_HEX0D 0x0D
|
||||
#define IQUIC_FRAME_STREAM_HEX0E 0x0E
|
||||
#define IQUIC_FRAME_STREAM_HEX0F 0x0F
|
||||
#define IQUIC_FRAME_MAX_DATA 0x10
|
||||
#define IQUIC_FRAME_MAX_STREAM_DATA 0x11
|
||||
#define IQUIC_FRAME_MAX_STREAMS_HEX12 0x21
|
||||
#define IQUIC_FRAME_MAX_STREAMS_HEX13 0x31
|
||||
#define IQUIC_FRAME_DATA_BLOCKED 0x41
|
||||
#define IQUIC_FRAME_STREAM_DATA_BLOCKED 0x51
|
||||
#define IQUIC_FRAME_STREAMS_BLOCKED_HEX16 0x61
|
||||
#define IQUIC_FRAME_STREAMS_BLOCKED_HEX17 0x71
|
||||
#define IQUIC_FRAME_NEW_CONNECTION_ID 0x81
|
||||
#define IQUIC_FRAME_RETIRE_CONNECTION_ID 0x91
|
||||
#define IQUIC_FRAME_PATH_CHALLENGE 0xA1
|
||||
#define IQUIC_FRAME_PATH_RESPONSE 0xB1
|
||||
#define IQUIC_FRAME_CONNECTION_CLOSE_HEX1C 0xC1
|
||||
#define IQUIC_FRAME_CONNECTION_CLOSE_HEX1D 0xD1
|
||||
#define IQUIC_FRAME_MAX_STREAMS_HEX12 0x12
|
||||
#define IQUIC_FRAME_MAX_STREAMS_HEX13 0x13
|
||||
#define IQUIC_FRAME_DATA_BLOCKED 0x14
|
||||
#define IQUIC_FRAME_STREAM_DATA_BLOCKED 0x15
|
||||
#define IQUIC_FRAME_STREAMS_BLOCKED_HEX16 0x16
|
||||
#define IQUIC_FRAME_STREAMS_BLOCKED_HEX17 0x17
|
||||
#define IQUIC_FRAME_NEW_CONNECTION_ID 0x18
|
||||
#define IQUIC_FRAME_RETIRE_CONNECTION_ID 0x19
|
||||
#define IQUIC_FRAME_PATH_CHALLENGE 0x1A
|
||||
#define IQUIC_FRAME_PATH_RESPONSE 0x1B
|
||||
#define IQUIC_FRAME_CONNECTION_CLOSE_HEX1C 0x1C
|
||||
#define IQUIC_FRAME_CONNECTION_CLOSE_HEX1D 0x1D
|
||||
|
||||
|
||||
/**************************************************************************/
|
||||
@@ -159,10 +161,15 @@
|
||||
#define EXTENSION_KEY_SHARE 0x0033
|
||||
#define EXTENSION_PSK_EXCHANGE 0x002D
|
||||
#define EXTENSION_SUPP_SSL_VER 0x002B
|
||||
#define EXTENSION_QUIC_PARAM 0xFFA5
|
||||
#define EXTENSION_QUIC_PARAM_TLS_33 0x0039 /* draft-ietf-quic-tls-33 */
|
||||
#define EXTENSION_QUIC_PARAM_TLS_13 0xFFA5 /* 0xffa5 draft-ietf-quic-tls-13 */
|
||||
#define EXTENSION_COMPRESS_CERT 0x001B
|
||||
#define EXTENTION_UNKNOWN 0x4469
|
||||
|
||||
// https://www.iana.org/assignments/quic/quic.xhtml
|
||||
#define EXT_QUIC_PARAM_ORIGINAL_DST_CONN_ID 0x00
|
||||
#define EXT_QUIC_PARAM_MAX_IDLE_TIMEOUT 0x01
|
||||
#define EXT_QUIC_PARAM_STATELESS_RST_TOKEN 0x02
|
||||
#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
|
||||
@@ -170,17 +177,18 @@
|
||||
#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_ACK_DELAY_EXPONENT 0x0A
|
||||
#define EXT_QUIC_PARAM_MAX_ACK_DELAY 0x0B
|
||||
#define EXT_QUIC_PARAM_DISABLE_ACTIVE_MIGRATION 0x0C
|
||||
#define EXT_QUIC_PARAM_PREFERRED_ADDRESS 0x0D
|
||||
#define EXT_QUIC_PARAM_ACTIVE_CONN_ID_LINIT 0x0E
|
||||
#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
|
||||
|
||||
#define EXT_QUIC_PARAM_RETRY_SRC_CONN_ID 0x10
|
||||
#define EXT_QUIC_PARAM_MAX_DATAGRAM_FRAME_SIZE 0x20
|
||||
#define EXT_QUIC_PARAM_INIT_RTT 0x7127
|
||||
#define EXT_QUIC_PARAM_GOOGLE_CONN_OPTIONS 0x7128
|
||||
#define EXT_QUIC_PARAM_USER_AGENT 0x7129 // 2021-10-20 deprecated
|
||||
#define EXT_QUIC_PARAM_QUIC_VERSION 0x4752
|
||||
|
||||
//https://github.com/quicwg/base-drafts/wiki/QUIC-Versions
|
||||
enum _QUIC_VERSION
|
||||
|
||||
@@ -38,7 +38,6 @@ set_target_properties(${lib_name}_test_plug PROPERTIES PREFIX "")
|
||||
add_test(NAME COPY_QUIC_SO COMMAND sh -c "cp ${CMAKE_BINARY_DIR}/${lib_name}.so ${PROTO_TEST_RUN_DIR}/plug/protocol/${lib_name}/${lib_name}.so")
|
||||
add_test(NAME COPY_TEST_SO COMMAND sh -c "cp ${CMAKE_CURRENT_BINARY_DIR}/${lib_name}_test_plug.so ${PROTO_TEST_RUN_DIR}/plug/business/${lib_name}_test_plug/${lib_name}_test_plug.so")
|
||||
add_test(NAME IQUIC_29_TEST COMMAND proto_test_main ${CMAKE_CURRENT_SOURCE_DIR}/pcap/iquic/29//${lib_name}_result.json -f "find ${CMAKE_CURRENT_SOURCE_DIR}/pcap/iquic/29/ -name *.pcap|sort -V" WORKING_DIRECTORY ${PROTO_TEST_RUN_DIR})
|
||||
add_test(NAME QUIC_TEST COMMAND proto_test_main ${CMAKE_CURRENT_SOURCE_DIR}/pcap/rfc9000/${lib_name}_result.json -f "find ${CMAKE_CURRENT_SOURCE_DIR}/pcap/rfc9000/ -name *.pcap|sort -V" WORKING_DIRECTORY ${PROTO_TEST_RUN_DIR})
|
||||
add_test(NAME GQUIC_23_TEST COMMAND proto_test_main ${CMAKE_CURRENT_SOURCE_DIR}/pcap/gquic/23/${lib_name}_result.json -f "find ${CMAKE_CURRENT_SOURCE_DIR}/pcap/gquic/23/ -name *.pcap|sort -V" WORKING_DIRECTORY ${PROTO_TEST_RUN_DIR})
|
||||
add_test(NAME GQUIC_25_TEST COMMAND proto_test_main ${CMAKE_CURRENT_SOURCE_DIR}/pcap/gquic/25/${lib_name}_result.json -f "find ${CMAKE_CURRENT_SOURCE_DIR}/pcap/gquic/25/ -name *.pcap|sort -V" WORKING_DIRECTORY ${PROTO_TEST_RUN_DIR})
|
||||
add_test(NAME GQUIC_33_TEST COMMAND proto_test_main ${CMAKE_CURRENT_SOURCE_DIR}/pcap/gquic/33/${lib_name}_result.json -f "find ${CMAKE_CURRENT_SOURCE_DIR}/pcap/gquic/33/ -name *.pcap|sort -V" WORKING_DIRECTORY ${PROTO_TEST_RUN_DIR})
|
||||
@@ -55,3 +54,6 @@ add_test(NAME MVFST_01_TEST COMMAND proto_test_main ${CMAKE_CURRENT_SOURCE_DIR}/
|
||||
add_test(NAME MVFST_02_TEST COMMAND proto_test_main ${CMAKE_CURRENT_SOURCE_DIR}/pcap/mvfst/02/${lib_name}_result.json -f "find ${CMAKE_CURRENT_SOURCE_DIR}/pcap/mvfst/02/ -name *.pcap|sort -V" WORKING_DIRECTORY ${PROTO_TEST_RUN_DIR})
|
||||
add_test(NAME TQUIC_TEST COMMAND proto_test_main ${CMAKE_CURRENT_SOURCE_DIR}/pcap/tquic/${lib_name}_result.json -f "find ${CMAKE_CURRENT_SOURCE_DIR}/pcap/tquic/ -name *.pcap|sort -V" WORKING_DIRECTORY ${PROTO_TEST_RUN_DIR})
|
||||
add_test(NAME IQUIC_PORT_8443_TEST COMMAND proto_test_main ${CMAKE_CURRENT_SOURCE_DIR}/pcap/port-8443/${lib_name}_result.json -f "find ${CMAKE_CURRENT_SOURCE_DIR}/pcap/port-8443/ -name *.pcap|sort -V" WORKING_DIRECTORY ${PROTO_TEST_RUN_DIR})
|
||||
add_test(NAME QUIC_RFC9000 COMMAND proto_test_main ${CMAKE_CURRENT_SOURCE_DIR}/pcap/rfc9000/${lib_name}_result.json -f "find ${CMAKE_CURRENT_SOURCE_DIR}/pcap/rfc9000/ -name *.pcap|sort -V" WORKING_DIRECTORY ${PROTO_TEST_RUN_DIR})
|
||||
add_test(NAME QUIC_RFC9000_FRAGMENT COMMAND proto_test_main ${CMAKE_CURRENT_SOURCE_DIR}/pcap/rfc9000-fragment/${lib_name}_result.json -f "find ${CMAKE_CURRENT_SOURCE_DIR}/pcap/rfc9000-fragment/ -name *.pcap|sort -V" WORKING_DIRECTORY ${PROTO_TEST_RUN_DIR})
|
||||
add_test(NAME QUIC_RFC9000_SPECIAL COMMAND proto_test_main ${CMAKE_CURRENT_SOURCE_DIR}/pcap/rfc9000-special/${lib_name}_result.json -f "find ${CMAKE_CURRENT_SOURCE_DIR}/pcap/rfc9000-special/ -name *.pcap|sort -V" WORKING_DIRECTORY ${PROTO_TEST_RUN_DIR})
|
||||
|
||||
@@ -2,6 +2,8 @@
|
||||
"Tuple4": "90.143.189.5.8026>173.194.188.40.443",
|
||||
"VERSION": "Google QUIC 33",
|
||||
"SNI": "r3---sn-4g5ednse.googlevideo.com",
|
||||
"UA": "com.google.android.youtube Cronet/53.0.2768.0",
|
||||
"SNI": "r3---sn-4g5ednse.googlevideo.com",
|
||||
"UA": "com.google.android.youtube Cronet/53.0.2768.0",
|
||||
"name": "QUIC_RESULT_1"
|
||||
}]
|
||||
|
||||
@@ -2,6 +2,8 @@
|
||||
"Tuple4": "85.117.125.8.21243>173.194.73.102.443",
|
||||
"VERSION": "Google QUIC 34",
|
||||
"SNI": "redirector.googlevideo.com",
|
||||
"UA": "com.google.android.youtube Cronet/54.0.2823.2",
|
||||
"SNI": "redirector.googlevideo.com",
|
||||
"UA": "com.google.android.youtube Cronet/54.0.2823.2",
|
||||
"name": "QUIC_RESULT_1"
|
||||
}]
|
||||
|
||||
@@ -2,12 +2,17 @@
|
||||
"Tuple4": "85.117.122.194.32370>173.194.220.138.443",
|
||||
"VERSION": "Google QUIC 35",
|
||||
"SNI": "redirector.googlevideo.com",
|
||||
"UA": "com.google.android.youtube Cronet/56.0.2900.3",
|
||||
"SNI": "redirector.googlevideo.com",
|
||||
"UA": "com.google.android.youtube Cronet/56.0.2900.3",
|
||||
"SNI": "redirector.googlevideo.com",
|
||||
"UA": "com.google.android.youtube Cronet/56.0.2900.3",
|
||||
"name": "QUIC_RESULT_1"
|
||||
}, {
|
||||
"Tuple4": "85.117.122.21.21396>173.194.220.138.443",
|
||||
"VERSION": "Google QUIC 35",
|
||||
"SNI": "redirector.googlevideo.com",
|
||||
"UA": "com.google.android.youtube Cronet/59.0.3068.4",
|
||||
"name": "QUIC_RESULT_2"
|
||||
}]
|
||||
|
||||
|
||||
@@ -2,139 +2,174 @@
|
||||
"Tuple4": "90.143.185.235.17239>173.194.44.6.443",
|
||||
"VERSION": "Google QUIC 37",
|
||||
"SNI": "www.youtube.com",
|
||||
"UA": "com.google.android.youtube Cronet/60.0.3112.12",
|
||||
"name": "QUIC_RESULT_1"
|
||||
}, {
|
||||
"Tuple4": "10.32.121.249.33765>64.233.161.95.443",
|
||||
"VERSION": "Google QUIC 37",
|
||||
"SNI": "instantmessaging-pa.googleapis.com",
|
||||
"UA": "com.google.android.apps.tachyon Cronet/61.0.3142.0",
|
||||
"name": "QUIC_RESULT_2"
|
||||
}, {
|
||||
"Tuple4": "10.35.127.134.42356>64.233.165.139.443",
|
||||
"VERSION": "Google QUIC 37",
|
||||
"SNI": "clients4.google.com",
|
||||
"UA": "com.google.android.apps.maps Cronet/60.0.3108.3",
|
||||
"name": "QUIC_RESULT_3"
|
||||
}, {
|
||||
"Tuple4": "185.57.74.232.43276>173.194.44.78.443",
|
||||
"VERSION": "Google QUIC 37",
|
||||
"SNI": "www.youtube.com",
|
||||
"UA": "com.google.android.youtube Cronet/61.0.3142.0",
|
||||
"name": "QUIC_RESULT_4"
|
||||
}, {
|
||||
"Tuple4": "185.57.74.32.52134>74.125.232.249.443",
|
||||
"VERSION": "Google QUIC 37",
|
||||
"SNI": "googleads.g.doubleclick.net",
|
||||
"UA": "com.google.android.youtube Cronet/61.0.3142.0",
|
||||
"name": "QUIC_RESULT_5"
|
||||
}, {
|
||||
"Tuple4": "195.162.27.132.31404>217.76.77.81.443",
|
||||
"VERSION": "Google QUIC 37",
|
||||
"SNI": "r6---sn-5auxa-unxe.googlevideo.com",
|
||||
"UA": "com.google.android.youtube Cronet/61.0.3142.0",
|
||||
"name": "QUIC_RESULT_6"
|
||||
}, {
|
||||
"Tuple4": "195.162.27.132.31405>217.76.77.81.443",
|
||||
"VERSION": "Google QUIC 37",
|
||||
"SNI": "r6---sn-5auxa-unxe.googlevideo.com",
|
||||
"UA": "com.google.android.youtube Cronet/61.0.3142.0",
|
||||
"name": "QUIC_RESULT_7"
|
||||
}, {
|
||||
"Tuple4": "85.117.112.160.21969>64.233.165.95.443",
|
||||
"VERSION": "Google QUIC 37",
|
||||
"SNI": "www.googleapis.com",
|
||||
"UA": "com.google.android.youtube Cronet/60.0.3112.12",
|
||||
"name": "QUIC_RESULT_8"
|
||||
}, {
|
||||
"Tuple4": "85.117.113.62.29644>173.194.73.95.443",
|
||||
"VERSION": "Google QUIC 37",
|
||||
"SNI": "youtubei.googleapis.com",
|
||||
"UA": "com.google.android.youtube Cronet/61.0.3142.0",
|
||||
"name": "QUIC_RESULT_9"
|
||||
}, {
|
||||
"Tuple4": "85.117.116.192.18140>173.194.44.1.443",
|
||||
"VERSION": "Google QUIC 37",
|
||||
"SNI": "www.youtube.com",
|
||||
"UA": "com.google.android.youtube Cronet/61.0.3142.0",
|
||||
"name": "QUIC_RESULT_10"
|
||||
}, {
|
||||
"Tuple4": "85.117.116.195.38495>173.194.222.132.443",
|
||||
"VERSION": "Google QUIC 37",
|
||||
"SNI": "yt3.ggpht.com",
|
||||
"UA": "com.google.android.youtube Cronet/61.0.3142.0",
|
||||
"name": "QUIC_RESULT_11"
|
||||
}, {
|
||||
"Tuple4": "85.117.123.242.33040>64.233.162.95.443",
|
||||
"VERSION": "Google QUIC 37",
|
||||
"SNI": "www.googleapis.com",
|
||||
"UA": "com.google.android.youtube Cronet/61.0.3142.0",
|
||||
"name": "QUIC_RESULT_12"
|
||||
}, {
|
||||
"Tuple4": "85.117.126.141.34209>64.233.164.132.443",
|
||||
"VERSION": "Google QUIC 37",
|
||||
"SNI": "yt3.ggpht.com",
|
||||
"UA": "com.google.android.youtube Cronet/60.0.3112.12",
|
||||
"SNI": "yt3.ggpht.com",
|
||||
"UA": "com.google.android.youtube Cronet/60.0.3112.12",
|
||||
"SNI": "yt3.ggpht.com",
|
||||
"UA": "com.google.android.youtube Cronet/60.0.3112.12",
|
||||
"name": "QUIC_RESULT_13"
|
||||
}, {
|
||||
"Tuple4": "85.117.126.166.46412>173.194.44.4.443",
|
||||
"VERSION": "Google QUIC 37",
|
||||
"SNI": "www.youtube.com",
|
||||
"UA": "com.google.android.youtube Cronet/61.0.3142.0",
|
||||
"SNI": "www.youtube.com",
|
||||
"UA": "com.google.android.youtube Cronet/61.0.3142.0",
|
||||
"name": "QUIC_RESULT_14"
|
||||
}, {
|
||||
"Tuple4": "85.117.126.63.9977>64.233.165.113.443",
|
||||
"VERSION": "Google QUIC 37",
|
||||
"SNI": "clients4.google.com",
|
||||
"UA": "com.google.android.apps.maps Cronet/61.0.3136.4",
|
||||
"SNI": "clients4.google.com",
|
||||
"UA": "com.google.android.apps.maps Cronet/61.0.3136.4",
|
||||
"name": "QUIC_RESULT_15"
|
||||
}, {
|
||||
"Tuple4": "85.117.126.68.44666>173.194.44.41.443",
|
||||
"VERSION": "Google QUIC 37",
|
||||
"SNI": "clients4.google.com",
|
||||
"UA": "com.google.android.apps.maps Cronet/61.0.3124.3",
|
||||
"name": "QUIC_RESULT_16"
|
||||
}, {
|
||||
"Tuple4": "90.143.176.79.38351>108.177.14.119.443",
|
||||
"VERSION": "Google QUIC 37",
|
||||
"SNI": "i.ytimg.com",
|
||||
"UA": "com.google.android.youtube Cronet/61.0.3142.0",
|
||||
"name": "QUIC_RESULT_17"
|
||||
}, {
|
||||
"Tuple4": "90.143.176.91.52171>173.194.222.101.443",
|
||||
"VERSION": "Google QUIC 37",
|
||||
"SNI": "clients4.google.com",
|
||||
"UA": "com.google.android.apps.maps Cronet/61.0.3142.0",
|
||||
"SNI": "clients4.google.com",
|
||||
"UA": "com.google.android.apps.maps Cronet/61.0.3142.0",
|
||||
"SNI": "clients4.google.com",
|
||||
"UA": "com.google.android.apps.maps Cronet/61.0.3142.0",
|
||||
"name": "QUIC_RESULT_18"
|
||||
}, {
|
||||
"Tuple4": "90.143.178.25.15835>173.194.73.119.443",
|
||||
"VERSION": "Google QUIC 37",
|
||||
"SNI": "i.ytimg.com",
|
||||
"UA": "com.google.android.youtube Cronet/61.0.3129.3",
|
||||
"name": "QUIC_RESULT_19"
|
||||
}, {
|
||||
"Tuple4": "90.143.179.24.35032>173.194.32.196.443",
|
||||
"VERSION": "Google QUIC 37",
|
||||
"SNI": "clients4.google.com",
|
||||
"UA": "com.google.android.apps.maps Cronet/61.0.3124.3",
|
||||
"SNI": "clients4.google.com",
|
||||
"UA": "com.google.android.apps.maps Cronet/61.0.3124.3",
|
||||
"name": "QUIC_RESULT_20"
|
||||
}, {
|
||||
"Tuple4": "90.143.180.185.57766>173.194.32.196.443",
|
||||
"VERSION": "Google QUIC 37",
|
||||
"SNI": "clients4.google.com",
|
||||
"UA": "com.google.android.apps.maps Cronet/61.0.3142.0",
|
||||
"name": "QUIC_RESULT_21"
|
||||
}, {
|
||||
"Tuple4": "90.143.183.75.19770>74.125.232.167.443",
|
||||
"VERSION": "Google QUIC 37",
|
||||
"SNI": "www.youtube.com",
|
||||
"UA": "com.google.android.youtube Cronet/61.0.3142.0",
|
||||
"name": "QUIC_RESULT_22"
|
||||
}, {
|
||||
"Tuple4": "90.143.184.225.24092>173.194.222.95.443",
|
||||
"VERSION": "Google QUIC 37",
|
||||
"SNI": "youtubei.googleapis.com",
|
||||
"UA": "com.google.android.youtube Cronet/60.0.3112.12",
|
||||
"name": "QUIC_RESULT_23"
|
||||
}, {
|
||||
"Tuple4": "90.143.186.194.32570>173.194.44.1.443",
|
||||
"VERSION": "Google QUIC 37",
|
||||
"SNI": "www.youtube.com",
|
||||
"UA": "com.google.android.youtube Cronet/61.0.3142.0",
|
||||
"name": "QUIC_RESULT_24"
|
||||
}, {
|
||||
"Tuple4": "90.143.188.47.22565>64.233.162.95.443",
|
||||
"VERSION": "Google QUIC 37",
|
||||
"SNI": "youtubei.googleapis.com",
|
||||
"UA": "com.google.android.youtube Cronet/61.0.3142.0",
|
||||
"SNI": "youtubei.googleapis.com",
|
||||
"UA": "com.google.android.youtube Cronet/61.0.3142.0",
|
||||
"name": "QUIC_RESULT_25"
|
||||
}, {
|
||||
"Tuple4": "90.143.190.56.19723>108.177.14.102.443",
|
||||
"VERSION": "Google QUIC 37",
|
||||
"SNI": "redirector.googlevideo.com",
|
||||
"UA": "com.google.android.youtube Cronet/60.0.3112.12",
|
||||
"SNI": "redirector.googlevideo.com",
|
||||
"UA": "com.google.android.youtube Cronet/60.0.3112.12",
|
||||
"name": "QUIC_RESULT_26"
|
||||
}]
|
||||
}]
|
||||
|
||||
@@ -2,8 +2,12 @@
|
||||
"Tuple4": "85.117.119.45.22495>173.194.73.101.443",
|
||||
"VERSION": "Google QUIC 39",
|
||||
"SNI": "redirector.googlevideo.com",
|
||||
"UA": "com.google.android.youtube Cronet/65.0.3322.0",
|
||||
"SNI": "redirector.googlevideo.com",
|
||||
"UA": "com.google.android.youtube Cronet/65.0.3322.0",
|
||||
"SNI": "redirector.googlevideo.com",
|
||||
"UA": "com.google.android.youtube Cronet/65.0.3322.0",
|
||||
"SNI": "redirector.googlevideo.com",
|
||||
"UA": "com.google.android.youtube Cronet/65.0.3322.0",
|
||||
"name": "QUIC_RESULT_1"
|
||||
}]
|
||||
|
||||
@@ -2,12 +2,14 @@
|
||||
"Tuple4": "90.143.180.56.28496>64.233.165.113.443",
|
||||
"VERSION": "Google QUIC 41",
|
||||
"SNI": "s.youtube.com",
|
||||
"UA": "com.google.android.youtube Cronet/66.0.3335.4",
|
||||
"SNI": "s.youtube.com",
|
||||
"UA": "com.google.android.youtube Cronet/66.0.3335.4",
|
||||
"name": "QUIC_RESULT_1"
|
||||
}, {
|
||||
"Tuple4": "90.143.189.30.53357>64.233.165.95.443",
|
||||
"VERSION": "Google QUIC 41",
|
||||
"SNI": "youtubei.googleapis.com",
|
||||
"UA": "com.google.android.youtube Cronet/66.0.3335.4",
|
||||
"name": "QUIC_RESULT_2"
|
||||
}]
|
||||
|
||||
|
||||
@@ -10,133 +10,166 @@
|
||||
"Tuple4": "185.57.75.21.44739>173.194.73.132.443",
|
||||
"VERSION": "Google QUIC 44",
|
||||
"SNI": "yt3.ggpht.com",
|
||||
"UA": "dev Chrome/73.0.3664.3 Windows NT 6.1; Win64; x64",
|
||||
"name": "QUIC_RESULT_3"
|
||||
}, {
|
||||
"Tuple4": "212.154.234.46.62716>74.125.131.156.443",
|
||||
"VERSION": "Google QUIC 44",
|
||||
"SNI": "stats.g.doubleclick.net",
|
||||
"UA": "dev Chrome/73.0.3664.3 Windows NT 6.1; Win64; x64",
|
||||
"SNI": "stats.g.doubleclick.net",
|
||||
"UA": "dev Chrome/73.0.3664.3 Windows NT 6.1; Win64; x64",
|
||||
"name": "QUIC_RESULT_4"
|
||||
}, {
|
||||
"Tuple4": "2.135.246.186.56653>173.194.113.166.443",
|
||||
"VERSION": "Google QUIC 44",
|
||||
"SNI": "www.google-analytics.com",
|
||||
"UA": "dev Chrome/73.0.3664.3 Windows NT 6.1",
|
||||
"SNI": "www.google-analytics.com",
|
||||
"UA": "dev Chrome/73.0.3664.3 Windows NT 6.1",
|
||||
"name": "QUIC_RESULT_5"
|
||||
}, {
|
||||
"Tuple4": "85.117.110.235.48996>74.125.131.211.443",
|
||||
"VERSION": "Google QUIC 44",
|
||||
"SNI": "proxy.googlezip.net",
|
||||
"UA": "dev Chrome/73.0.3667.2 Android 4.4.2; SM-G900F",
|
||||
"name": "QUIC_RESULT_6"
|
||||
}, {
|
||||
"Tuple4": "85.117.112.180.21665>173.194.113.153.443",
|
||||
"VERSION": "Google QUIC 44",
|
||||
"SNI": "adservice.google.kz",
|
||||
"UA": "dev Chrome/73.0.3664.3 Windows NT 6.2; WOW64",
|
||||
"name": "QUIC_RESULT_7"
|
||||
}, {
|
||||
"Tuple4": "85.117.112.180.61808>64.233.165.132.443",
|
||||
"VERSION": "Google QUIC 44",
|
||||
"SNI": "yt3.ggpht.com",
|
||||
"UA": "dev Chrome/73.0.3664.3 Windows NT 6.2; WOW64",
|
||||
"name": "QUIC_RESULT_8"
|
||||
}, {
|
||||
"Tuple4": "85.117.114.90.16060>64.233.165.94.443",
|
||||
"VERSION": "Google QUIC 44",
|
||||
"SNI": "www.google.kz",
|
||||
"UA": "dev Chrome/73.0.3664.3 Windows NT 6.1; Win64; x64",
|
||||
"SNI": "www.google.kz",
|
||||
"UA": "dev Chrome/73.0.3664.3 Windows NT 6.1; Win64; x64",
|
||||
"name": "QUIC_RESULT_9"
|
||||
}, {
|
||||
"Tuple4": "85.117.117.190.11567>64.233.165.94.443",
|
||||
"VERSION": "Google QUIC 44",
|
||||
"SNI": "www.google.kz",
|
||||
"UA": "dev Chrome/73.0.3664.3 Windows NT 6.3; Win64; x64",
|
||||
"name": "QUIC_RESULT_10"
|
||||
}, {
|
||||
"Tuple4": "85.117.117.190.48098>173.194.221.95.443",
|
||||
"VERSION": "Google QUIC 44",
|
||||
"SNI": "safebrowsing.googleapis.com",
|
||||
"UA": "dev Chrome/73.0.3664.3 Windows NT 6.3; Win64; x64",
|
||||
"name": "QUIC_RESULT_11"
|
||||
}, {
|
||||
"Tuple4": "85.117.119.57.4009>64.233.162.155.443",
|
||||
"VERSION": "Google QUIC 44",
|
||||
"SNI": "stats.g.doubleclick.net",
|
||||
"UA": "dev Chrome/73.0.3664.3 Windows NT 6.1; Win64; x64",
|
||||
"name": "QUIC_RESULT_12"
|
||||
}, {
|
||||
"Tuple4": "85.117.126.11.11719>64.233.165.138.443",
|
||||
"VERSION": "Google QUIC 44",
|
||||
"SNI": "play.google.com",
|
||||
"UA": "dev Chrome/73.0.3664.3 Windows NT 10.0; Win64; x64",
|
||||
"name": "QUIC_RESULT_13"
|
||||
}, {
|
||||
"Tuple4": "85.117.126.11.29355>173.194.220.94.443",
|
||||
"VERSION": "Google QUIC 44",
|
||||
"SNI": "beacons3.gvt2.com",
|
||||
"UA": "dev Chrome/73.0.3664.3 Windows NT 10.0; Win64; x64",
|
||||
"name": "QUIC_RESULT_14"
|
||||
}, {
|
||||
"Tuple4": "85.117.126.11.45264>74.125.205.102.443",
|
||||
"VERSION": "Google QUIC 44",
|
||||
"SNI": "clients2.google.com",
|
||||
"UA": "dev Chrome/73.0.3664.3 Windows NT 10.0; Win64; x64",
|
||||
"name": "QUIC_RESULT_15"
|
||||
}, {
|
||||
"Tuple4": "89.218.169.150.55676>173.194.32.238.443",
|
||||
"VERSION": "Google QUIC 44",
|
||||
"SNI": "www.google-analytics.com",
|
||||
"UA": "dev Chrome/73.0.3664.3 Windows NT 6.1; Win64; x64",
|
||||
"SNI": "www.google-analytics.com",
|
||||
"UA": "dev Chrome/73.0.3664.3 Windows NT 6.1; Win64; x64",
|
||||
"name": "QUIC_RESULT_16"
|
||||
}, {
|
||||
"Tuple4": "89.218.79.162.64017>173.194.73.95.443",
|
||||
"VERSION": "Google QUIC 44",
|
||||
"SNI": "ajax.googleapis.com",
|
||||
"UA": "canary Chrome/73.0.3671.3 Windows NT 10.0; Win64; x64",
|
||||
"name": "QUIC_RESULT_17"
|
||||
}, {
|
||||
"Tuple4": "90.143.176.186.54278>173.194.32.194.443",
|
||||
"VERSION": "Google QUIC 44",
|
||||
"SNI": "clients4.google.com",
|
||||
"UA": "dev Chrome/73.0.3664.3 Windows NT 6.1; Win64; x64",
|
||||
"name": "QUIC_RESULT_18"
|
||||
}, {
|
||||
"Tuple4": "90.143.177.184.59077>74.125.232.247.443",
|
||||
"VERSION": "Google QUIC 44",
|
||||
"SNI": "www.gstatic.com",
|
||||
"UA": "dev Chrome/73.0.3664.3 Windows NT 6.1; WOW64",
|
||||
"name": "QUIC_RESULT_19"
|
||||
}, {
|
||||
"Tuple4": "90.143.177.184.5951>173.194.44.26.443",
|
||||
"VERSION": "Google QUIC 44",
|
||||
"SNI": "googleads.g.doubleclick.net",
|
||||
"UA": "dev Chrome/73.0.3664.3 Windows NT 6.1; WOW64",
|
||||
"name": "QUIC_RESULT_20"
|
||||
}, {
|
||||
"Tuple4": "90.143.178.243.51779>64.233.164.94.443",
|
||||
"VERSION": "Google QUIC 44",
|
||||
"SNI": "update.googleapis.com",
|
||||
"UA": "canary Chrome/73.0.3672.0 Windows NT 10.0; Win64; x64",
|
||||
"SNI": "update.googleapis.com",
|
||||
"UA": "canary Chrome/73.0.3672.0 Windows NT 10.0; Win64; x64",
|
||||
"name": "QUIC_RESULT_21"
|
||||
}, {
|
||||
"Tuple4": "90.143.181.226.34777>74.125.232.237.443",
|
||||
"VERSION": "Google QUIC 44",
|
||||
"SNI": "googleads.g.doubleclick.net",
|
||||
"UA": "dev Chrome/73.0.3664.3 Windows NT 10.0; Win64; x64",
|
||||
"SNI": "googleads.g.doubleclick.net",
|
||||
"UA": "dev Chrome/73.0.3664.3 Windows NT 10.0; Win64; x64",
|
||||
"name": "QUIC_RESULT_22"
|
||||
}, {
|
||||
"Tuple4": "90.143.181.245.31397>74.125.232.191.443",
|
||||
"VERSION": "Google QUIC 44",
|
||||
"SNI": "www.google.kz",
|
||||
"UA": "dev Chrome/73.0.3664.3 Windows NT 10.0; Win64; x64",
|
||||
"name": "QUIC_RESULT_23"
|
||||
}, {
|
||||
"Tuple4": "90.143.187.227.10862>64.233.165.139.443",
|
||||
"VERSION": "Google QUIC 44",
|
||||
"SNI": "www.google-analytics.com",
|
||||
"UA": "canary Chrome/73.0.3672.0 Windows NT 10.0; Win64; x64",
|
||||
"name": "QUIC_RESULT_24"
|
||||
}, {
|
||||
"Tuple4": "90.143.187.227.10863>64.233.165.139.443",
|
||||
"VERSION": "Google QUIC 44",
|
||||
"SNI": "www.google-analytics.com",
|
||||
"UA": "canary Chrome/73.0.3672.0 Windows NT 10.0; Win64; x64",
|
||||
"name": "QUIC_RESULT_25"
|
||||
}, {
|
||||
"Tuple4": "90.143.187.227.4586>173.194.44.58.443",
|
||||
"VERSION": "Google QUIC 44",
|
||||
"SNI": "googleads.g.doubleclick.net",
|
||||
"UA": "canary Chrome/73.0.3672.0 Windows NT 10.0; Win64; x64",
|
||||
"SNI": "googleads.g.doubleclick.net",
|
||||
"UA": "canary Chrome/73.0.3672.0 Windows NT 10.0; Win64; x64",
|
||||
"name": "QUIC_RESULT_26"
|
||||
}, {
|
||||
"Tuple4": "90.143.188.64.2542>64.233.165.94.443",
|
||||
"VERSION": "Google QUIC 44",
|
||||
"SNI": "beacons5.gvt2.com",
|
||||
"UA": "dev Chrome/73.0.3667.2 Android 6.0.1; SM-A700FD",
|
||||
"SNI": "beacons5.gvt2.com",
|
||||
"UA": "dev Chrome/73.0.3667.2 Android 6.0.1; SM-A700FD",
|
||||
"name": "QUIC_RESULT_27"
|
||||
}]
|
||||
|
||||
@@ -6,6 +6,8 @@
|
||||
"Tuple4": "172.16.30.79.65003>203.208.50.45.443",
|
||||
"VERSION": "Google QUIC 46",
|
||||
"SNI": "pagead2.googlesyndication.com",
|
||||
"UA": "Chrome/79.0.3945.79 Windows NT 6.1; Win64; x64",
|
||||
"SNI": "pagead2.googlesyndication.com",
|
||||
"UA": "Chrome/79.0.3945.79 Windows NT 6.1; Win64; x64",
|
||||
"name": "QUIC_RESULT_2"
|
||||
}]
|
||||
|
||||
@@ -2,15 +2,18 @@
|
||||
"Tuple4": "172.20.9.135.65045>64.233.162.119.443",
|
||||
"VERSION": "Google QUIC 50",
|
||||
"SNI": "i.ytimg.com",
|
||||
"UA": "Chrome/86.0.4240.75 Windows NT 10.0; Win64; x64",
|
||||
"name": "QUIC_RESULT_1"
|
||||
}, {
|
||||
"Tuple4": "172.20.9.135.61564>173.194.221.103.443",
|
||||
"VERSION": "Google QUIC 50",
|
||||
"SNI": "www.google.com",
|
||||
"UA": "Chrome/86.0.4240.75 Windows NT 10.0; Win64; x64",
|
||||
"name": "QUIC_RESULT_2"
|
||||
}, {
|
||||
"Tuple4": "172.20.9.135.49347>64.233.165.93.443",
|
||||
"VERSION": "Google QUIC 50",
|
||||
"SNI": "www.youtube.com",
|
||||
"UA": "Chrome/86.0.4240.75 Windows NT 10.0; Win64; x64",
|
||||
"name": "QUIC_RESULT_3"
|
||||
}]
|
||||
|
||||
@@ -11,5 +11,7 @@
|
||||
"Tuple4": "192.168.50.33.57220>114.250.70.38.443",
|
||||
"VERSION": "IETF QUIC 29",
|
||||
"SNI": "securepubads.g.doubleclick.net",
|
||||
"UA": "Chrome/90.0.4430.72 Windows NT 10.0; Win64; x64",
|
||||
"name": "QUIC_RESULT_3"
|
||||
}]
|
||||
|
||||
|
||||
@@ -2,5 +2,6 @@
|
||||
"Tuple4": "192.168.50.49.58445>45.77.96.66.8443",
|
||||
"VERSION": "IETF QUIC 29",
|
||||
"SNI": "quic.tech",
|
||||
"UA": "Chrome/92.0.4515.159 Windows NT 10.0; Win64; x64",
|
||||
"name": "QUIC_RESULT_1"
|
||||
}]
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
31
test/pcap/rfc9000-fragment/quic_result.json
Normal file
31
test/pcap/rfc9000-fragment/quic_result.json
Normal file
@@ -0,0 +1,31 @@
|
||||
[{
|
||||
"Tuple4": "192.168.8.106.57644>142.250.185.36.443",
|
||||
"VERSION": "IETF QUIC RFC9000",
|
||||
"SNI": "www.google.com",
|
||||
"UA": "Chrome/94.0.4606.81 Windows NT 10.0; Win64; x64",
|
||||
"name": "QUIC_RESULT_1"
|
||||
}, {
|
||||
"Tuple4": "192.168.8.106.60687>142.250.185.36.443",
|
||||
"VERSION": "IETF QUIC RFC9000",
|
||||
"SNI": "www.google.com",
|
||||
"UA": "Chrome/94.0.4606.81 Windows NT 10.0; Win64; x64",
|
||||
"name": "QUIC_RESULT_2"
|
||||
}, {
|
||||
"Tuple4": "192.168.8.106.53622>142.250.185.36.443",
|
||||
"VERSION": "IETF QUIC RFC9000",
|
||||
"SNI": "www.google.com",
|
||||
"UA": "Chrome/94.0.4606.81 Windows NT 10.0; Win64; x64",
|
||||
"name": "QUIC_RESULT_3"
|
||||
}, {
|
||||
"Tuple4": "192.168.8.106.53736>142.250.185.36.443",
|
||||
"VERSION": "IETF QUIC RFC9000",
|
||||
"SNI": "www.google.com",
|
||||
"UA": "Chrome/94.0.4606.81 Windows NT 10.0; Win64; x64",
|
||||
"name": "QUIC_RESULT_4"
|
||||
}, {
|
||||
"Tuple4": "192.168.8.106.63821>142.250.185.36.443",
|
||||
"VERSION": "IETF QUIC RFC9000",
|
||||
"SNI": "www.google.com",
|
||||
"UA": "Chrome/94.0.4606.81 Windows NT 10.0; Win64; x64",
|
||||
"name": "QUIC_RESULT_5"
|
||||
}]
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
31
test/pcap/rfc9000-special/quic_result.json
Normal file
31
test/pcap/rfc9000-special/quic_result.json
Normal file
@@ -0,0 +1,31 @@
|
||||
[{
|
||||
"Tuple4": "192.168.8.110.49832>172.217.18.150.443",
|
||||
"VERSION": "IETF QUIC RFC9000",
|
||||
"SNI": "i.ytimg.com",
|
||||
"UA": "Chrome/95.0.4638.54 Windows NT 10.0; Win64; x64",
|
||||
"name": "QUIC_RESULT_1"
|
||||
}, {
|
||||
"Tuple4": "192.168.8.110.50339>172.217.169.227.443",
|
||||
"VERSION": "IETF QUIC RFC9000",
|
||||
"SNI": "www.google.com.et",
|
||||
"UA": "Chrome/95.0.4638.54 Windows NT 10.0; Win64; x64",
|
||||
"name": "QUIC_RESULT_2"
|
||||
}, {
|
||||
"Tuple4": "192.168.8.110.52455>213.55.110.12.443",
|
||||
"VERSION": "IETF QUIC RFC9000",
|
||||
"SNI": "r1---sn-xuj-5qqz.googlevideo.com",
|
||||
"UA": "Chrome/95.0.4638.54 Windows NT 10.0; Win64; x64",
|
||||
"name": "QUIC_RESULT_3"
|
||||
}, {
|
||||
"Tuple4": "192.168.8.110.64550>142.250.185.36.443",
|
||||
"VERSION": "IETF QUIC RFC9000",
|
||||
"SNI": "www.google.com",
|
||||
"UA": "Chrome/95.0.4638.54 Windows NT 10.0; Win64; x64",
|
||||
"name": "QUIC_RESULT_4"
|
||||
}, {
|
||||
"Tuple4": "192.168.8.110.65140>213.55.110.13.443",
|
||||
"VERSION": "IETF QUIC RFC9000",
|
||||
"SNI": "r2---sn-xuj-5qqz.googlevideo.com",
|
||||
"UA": "Chrome/95.0.4638.54 Windows NT 10.0; Win64; x64",
|
||||
"name": "QUIC_RESULT_5"
|
||||
}]
|
||||
@@ -2,6 +2,7 @@
|
||||
"Tuple4": "192.168.60.32.59699>64.233.164.84.443",
|
||||
"VERSION": "IETF QUIC RFC9000",
|
||||
"SNI": "accounts.google.com",
|
||||
"UA": "Chrome/92.0.4515.159 Windows NT 10.0; Win64; x64",
|
||||
"name": "QUIC_RESULT_1"
|
||||
}, {
|
||||
"Tuple4": "124.88.191.113.39716>114.250.66.33.443",
|
||||
|
||||
@@ -49,6 +49,7 @@ extern "C" unsigned char QUIC_TEST_PLUG_ENTRY(stSessionInfo *session_info, void
|
||||
}
|
||||
quic_info = (struct _quic_info *)session_info->app_info;
|
||||
cJSON_AddStringToObject(ctx, "SNI", (char *)(quic_info->client_hello->ext_tags[quic_info->client_hello->sni_idx].value));
|
||||
cJSON_AddStringToObject(ctx, "UA", (char *)(quic_info->client_hello->ext_tags[quic_info->client_hello->ua_idx].value));
|
||||
break;
|
||||
case QUIC_USEING_VERSION:
|
||||
version = *(unsigned int *)(session_info->buf);
|
||||
|
||||
Reference in New Issue
Block a user