Skip to content
ashfall edited this page Oct 4, 2014 · 1 revision

Welcome to the tls wiki!

#TODO

Handshake

  • Implement ways to send/parse/construct ClientKeyExchange & ServerKeyExchange back and forth. Will require use of Cryptography, and we'll need to sign things using this.

  • Implement a buffering mechanism for putting together the fragmented Handshake (or other) messages from TLSPlaintext records. See: https://github.com/twisted/twisted/blob/trunk/twisted/protocols/tls.py

  • All handshake structs exchanged during a handshake need to be cached/stored for the hash required in the Finished message: http://tools.ietf.org/html/rfc5246#section-7.4.9

  • implement Certificate

  • implement ServerDHParams

  • implement DHParamsAndSignature

  • we don't really need parse_server_key_exchange / ServerKeyExchange

  • CertificateVerify is just a signature, so we need signature support before we can include it

  • ClientKeyExchange is very similar to ServerKeyExchange, all based on the negotiated sig/hash algorithm

  • implement Handshake struct.

API

  • Start implementing the api, figure out what the incomplete gaps are, and fill them in.

ChangeCipherSpec

  • This is doable once we figure the ciphertext-creation out.

Construction of packets

  • add construction methods for all the record types
  • add construction methods for all the handshake records
  • add construction methods for everything else
  • implement Alert record

Other big vague concerns

  • negotiation state machine
  • signatures!
  • cryptos!