Skip to content

Zero-copy TLS ClientHello parser. Works with both TLS record and raw handshake input.

License

Notifications You must be signed in to change notification settings

canmi21/clienthello

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ClientHello

Zero-copy TLS ClientHello parser. Works with both TLS record and raw handshake input.

clienthello parses TLS ClientHello messages without external parser dependencies, extracting SNI, ALPN, cipher suites, supported versions, key shares, and other extensions from raw bytes.

Features

  • Dual Input Formats: Parse standard TLS records (0x16 prefix) or raw handshake messages (0x01 prefix, QUIC CRYPTO).
  • Zero-Copy: Borrows directly from the input buffer wherever possible.
  • GREASE Filtering: Automatically detects and filters RFC 8701 GREASE values from cipher suites, versions, groups, and key shares.
  • Structured Extensions: SNI, ALPN, Supported Versions, Supported Groups, Signature Algorithms, Key Share, PSK Exchange Modes, and Renegotiation Info are parsed into typed variants.
  • no_std + alloc: Works in no_std environments with an allocator.

Usage Examples

Check the examples directory for runnable code:

Installation

[dependencies]
clienthello = { version = "0.1", features = ["full"] }

Feature Flags

Feature Description
std Enables standard library support.
full Enables all features above.

License

Released under the MIT License © 2026 Canmi

About

Zero-copy TLS ClientHello parser. Works with both TLS record and raw handshake input.

Topics

Resources

License

Stars

Watchers

Forks

Contributors 2

  •  
  •  

Languages