Build a TLS client that mimics a specific browser's handshake to avoid being blocked by fingerprinting systems.
Create a custom TLS 1.3 or 1.2 client or server with full control over cipher suites, extensions, and key shares.
Import a captured TLS handshake, inspect it as JSON, and replay or modify it for security testing.
Test how servers respond to TLS connections using post-quantum key exchange, encrypted client hello, or delegated credentials.
| danikishin/sharptls | atum-borg-interactive/road-sdk | babelive/windows | |
|---|---|---|---|
| Stars | 2 | 2 | 2 |
| Language | C# | C# | C# |
| Setup difficulty | easy | moderate | moderate |
| Complexity | 3/5 | 3/5 | 3/5 |
| Audience | developer | developer | developer |
Figures from each repo's GitHub metadata at analysis time.
Install the prerelease NuGet package into a .NET 9 project, the basic connect-and-send sample takes about five minutes to run.
SharpTls is a C# library that lets a program speak TLS, the protocol that secures most internet connections, without relying on the built-in .NET TLS plumbing or any native system library. It is written entirely in managed C# and targets .NET 9 and newer. The project describes itself as pre-1.0, meaning the public API may still change, and it points readers to a security policy, threat model, and platform matrix before any serious deployment. The main selling point is byte-exact control over the ClientHello, the first message a client sends when opening a TLS connection. A normal TLS library hides that message. SharpTls exposes nearly every part of it: cipher suites, extension order, key shares, SNI, ALPN, padding, and record fragmentation. It also ships a catalog of uTLS-style fingerprints that imitate the handshakes produced by Chrome, Firefox, Edge, Safari, iOS, Android, 360, and QQ, plus version-bound "Auto" aliases for each family. Beyond fingerprinting, the library includes working TLS 1.3 and a deliberately restricted TLS 1.2 client and server core, with certificate validation, session resumption, 0-RTT, KeyUpdate, and exporters. It supports newer privacy features such as Encrypted Client Hello (ECH), HTTPS SVCB discovery, hybrid post-quantum key exchange, delegated credentials, and certificate compression. There are also adapters for the TLS layer used inside QUIC, without claiming to implement QUIC transport or HTTP/3. Developers install it from NuGet as a prerelease package. A five-minute sample shows connecting to a host, sending a simple HTTP request over the negotiated stream, and reading the response. More advanced examples cover building a custom ClientHello profile from raw and built-in extensions, importing a captured handshake, serializing it to JSON, and rebuilding it later. A "Roller" helper retries connections only on explicit negotiation alerts, never masking certificate, hostname, or transport failures. The README also stresses that wire fidelity does not weaken security. Every executable profile still passes authentication and state-machine checks, and disabling certificate validation requires an explicitly named dangerous opt-in intended for lab use. The full README is longer than what was shown.
SharpTls is a C# library for crafting custom TLS handshakes, the secure-connection protocol used across the internet, without relying on built-in system libraries. It lets developers mimic browser fingerprints and control every detail of the connection.
Mainly C#. The stack also includes C#, .NET 9, NuGet.
The license type is not specified in the explanation, so permission terms are unknown.
Setup difficulty is rated easy, with roughly 5min to a first successful run.
Mainly developer.
This repo across BitVibe Labs
double-check against the repo, no cap.