Also wenn du eien TLS-Implementierung schreiben willst, dann könnte ich dir folgende Tipps geben:
1. Achte bei der Key-Generierung darauf, dass der Seed beim Generieren des MasterSecrets aus Client + Server Random besteht und dass er beim Generieren des Key-Materials aus Server + Client Random besteht. Also genau umgekehrt.
Das wird dir viele Stunden Debugging ersparen.
Ich spreche da aus Erdahrung
2. Achte darauf immer schön alle Handshake-Messages zu sammeln, damit beim Signieren/Verifizieren alles glatt geht.
3. Teste deine Implementierung UNBEDINGT mit einem existierenden TLS-Server (z.B. mit dem openssl-mod für Appache).
Nur dann kannst du nämlich sichergehen, dass du alles richtig gemacht hast.
Es ist zwar schön, wenn du mit dir selbst sprechen kannst, allerdings hast du dann kein TLS implementiert sondern irgendwas anderes.
Trotzdem ist TLS ne feine Sache (wenn man etwas stärkere CipherSuites hinzufügt .