Protocol in Code · Track

TLS

negotiation, trust chains, and key schedules as functions

9 sessions Course material (English)

Sessions

TLS track sessions

Session 01

Hello Lists Everything You Can Do

What is a TLS ClientHello actually made of, and what makes one invalid before any negotiation starts?

Open Session 01
Session 02

Agreement Is a Set Intersection

When a client and a server each bring an ordered list of what they support, whose order decides the final pick?

Open Session 02
Session 03

Keys Grow on a Schedule

Where does each TLS secret actually come from, and why can none of them be computed out of order?

Open Session 03
Session 04

Trust Is a Walk Up the Chain

A server hands you a stack of certificates. What exactly turns that stack into a single yes/no answer, and in what order do the checks run?

Open Session 04
Session 05

A Cert Is for a Name, Not a Server

A chain can be perfectly trusted and still be the wrong certificate for the connection you're making. What decides whether a certificate is allowed to speak for the hostname you asked for?

Open Session 05
Session 06

Resumption Is a Cache Hit

A full handshake is expensive. What exactly does a session ticket let a client skip, and what decides whether a stored ticket is still good?

Open Session 06
Session 07

The Record Layer Is an Envelope

What does a TLS record actually protect, what stays visible on the outside, and what does "the tag doesn't match" tell you versus what it doesn't tell you?

Open Session 07
Session 08

Failure Is a Typed Message

When something goes wrong in a handshake, what exactly gets sent back, who decides what it means, and does the connection actually end?

Open Session 08
Session 09

Build the Toy Handshake Loop

What does a complete TLS 1.3 handshake look like when hello, negotiation, chain verification, hostname matching, key schedule, ticket issuance, and one protected record are all wired into two functions instead of eight separate demos?

Open Session 09