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