| 1 | initial version |
Base on the RFC @ivan81 mentioned above (5.4. Header Protection), Wireshark decrypts the flag byte.
packet-quic.c:
/** Per-packet information about QUIC, populated on the first pass. */
struct quic_packet_info {
struct quic_packet_info *next;
guint64 packet_number; /** Reconstructed full packet number. */
quic_decrypt_result_t decryption;
guint8 pkn_len; /** Length of PKN (1/2/3/4) or unknown (0). */
guint8 first_byte; /** Decrypted flag byte, valid only if pkn_len is non-zero. */
guint8 packet_type;
bool retry_integrity_failure : 1;
bool retry_integrity_success : 1;
};
if (quic_packet->pkn_len) {
proto_tree_add_uint(quic_tree, hf_quic_long_reserved, tvb, offset, 1, first_byte);
proto_tree_add_uint(quic_tree, hf_quic_packet_number_length, tvb, offset, 1, first_byte);
}
| 2 | No.2 Revision |
Base on the RFC @ivan81 mentioned above (5.4. Header Protection), Wireshark decrypts the flag byte.
packet-quic.c:
/** Per-packet information about QUIC, populated on the first pass. */
struct quic_packet_info {
struct quic_packet_info *next;
guint64 packet_number; /** Reconstructed full packet number. */
quic_decrypt_result_t decryption;
guint8 pkn_len; /** Length of PKN (1/2/3/4) or unknown (0). */
guint8 first_byte; /** Decrypted flag byte, valid only if pkn_len is non-zero. */
guint8 packet_type;
bool retry_integrity_failure : 1;
bool retry_integrity_success : 1;
};
if (quic_packet->pkn_len) {proto_tree_add_uint(quic_tree, hf_quic_long_reserved, tvb, offset, 1, first_byte);proto_tree_add_uint(quic_tree, hf_quic_packet_number_length, tvb, offset, 1, first_byte);}
| 3 | No.3 Revision |
Base on the RFC @ivan81 mentioned above (5.4. Header Protection), Wireshark decrypts the flag byte.
packet-quic.c:
/** Per-packet information about QUIC, populated on the first pass. */
struct quic_packet_info {
struct quic_packet_info *next;
guint64 packet_number; /** Reconstructed full packet number. */
quic_decrypt_result_t decryption;
guint8 pkn_len; /** Length of PKN (1/2/3/4) or unknown (0). */
guint8 first_byte; /** Decrypted flag byte, valid only
if pkn_len is non-zero. */
guint8 packet_type;
bool retry_integrity_failure : 1;
bool retry_integrity_success : 1;
};
if (quic_packet->pkn_len) {
proto_tree_add_uint(quic_tree, hf_quic_long_reserved, tvb, offset, 1, first_byte);
proto_tree_add_uint(quic_tree, hf_quic_packet_number_length, tvb, offset, 1, 1,
first_byte);
}