ssl-handshake
A command-line tool for testing SSL/TLS handshake latency, written in Go.
What is an SSL/TLS Handshake?
An SSL/TLS handshake is the process that kicks off a communication session between client and server that uses TLS encryption. During a TLS handshake, the two communicating sides exchange messages to acknowledge each other, verify each other, establish the encryption algorithms they will use, and agree on session keys. TLS handshakes are a foundational part of how HTTPS works and it is defined in RFC 8446 (for TLS 1.3) or in RFC 5246 (for TLS 1.2).
TLS handshakes occur after a TCP connection has been opened via a TCP handshake.
TLS handshake packets captured with Wireshark.
Installation
Binary is available for Linux, Windows and Mac OS (amd64 and arm64). Download the binary for your respective platform from the releases page.
Linux:
curl -sSLO https://github.com/tuladhar/ssl-handshake/releases/download/v1.5.2/ssl-handshake-v1.5.2-linux-amd64.tar.gz
tar zxf ssl-handshake-v1.5.2-linux-amd64.tar.gz
sudo install -m 0755 ssl-handshake /usr/local/bin/ssl-handshake
macOS (Intel):
curl -sSLO https://github.com/tuladhar/ssl-handshake/releases/download/v1.5.2/ssl-handshake-v1.5.2-darwin-amd64.tar.gz
tar zxf ssl-handshake-v1.5.2-darwin-amd64.tar.gz
sudo install -m 0755 ssl-handshake /usr/local/bin/ssl-handshake
macOS (Apple Silicon):
curl -sSLO https://github.com/tuladhar/ssl-handshake/releases/download/v1.5.2/ssl-handshake-v1.5.2-darwin-arm64.tar.gz
tar zxf ssl-handshake-v1.5.2-darwin-arm64.tar.gz
sudo install -m 0755 ssl-handshake /usr/local/bin/ssl-handshake
Windows:
curl -sSLO https://github.com/tuladhar/ssl-handshake/releases/download/v1.5.2/ssl-handshake-v1.5.2-windows-amd64.zip
unzip ssl-handshake-v1.5.2-windows-amd64.zip
Demo
Development
If you wish to contribute or compile from source code, you'll first need Go installed on your machine. Go version 1.17+ is required. Currently, there are no dependencies on third-party modules.
git clone https://github.com/tuladhar/ssl-handshake
cd ssl-handshake
go build