modulepackage
0.0.0-20220126131807-4ea3ae091459
Repository: https://github.com/c0d5/go-tls.git
Documentation: pkg.go.dev
# README
TLS Experiment
Minimal TLS 1.2 Client Handshake implementation in Go. The project was implemented for academic purpose.
Support
- 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.
Workflow
- 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
Links
# Packages
Package tls partially implements TLS 1.2, as specified in RFC 5246, and TLS 1.3, as specified in RFC 8446.