Minimal TLS 1.2 Client Handshake implementation in Go. The project was implemented for academic purpose.
- The project can be easily extended with more cipher suites. At the moment it has support only for
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
. - Each TLS structure can be visualized in JSON format.
- Creates
Client Hello
- Receives and parses
Server Hello
,Server Certificate
,Server Key Exchange
,Server Hello Done
- Generates and sends
Client Key Exchange
- Calculates
Client Encryption Keys
- Sends
Client Change Cipher Spec
,Client Handshake Finished
- Receives and parses
Server Change Cipher Spec
,Server Handshake Finished
- Encrypts a raw HTTP request and sends
Client Application Data
- Receives
Server Application Data
- Decrypts the HTTP response