#include #include #include "packeteer/l7/tls.hpp" // The nested TLV walk (record -> handshake -> extensions -> SNI, each // level bounds-checked against attacker-influenced length fields) is // the most structurally complex hand-rolled parser in the project so // far - exactly the kind of code most likely to have an off-by-one or // an unchecked length feeding a read past the buffer. extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { packeteer::net::parse_tls_client_hello({data, size}); packeteer::net::TlsSniDissector dissector; dissector.summarize({data, size}); return 0; }