Protocol

The SSL/TLS Protocol

class flextls.protocol.Protocol(connection=None)[source]

Base Class to decode protocols.

Alert

class flextls.protocol.alert.Alert(**kwargs)[source]

Handle Alert protocol

  • RFC5246 (Section 7.2)

Change Cipher Spec

class flextls.protocol.change_cipher_spec.ChangeCipherSpec(**kwargs)[source]

Handle Change Cipher Spec Protocol

Handshake

The SSL/TLS Handshake Protocol

class flextls.protocol.handshake.ClientHello(**kwargs)[source]

Handle SSLv3 and TLS 1.0, 1.1 and 1.2 Client Hello messages

class flextls.protocol.handshake.ClientKeyExchange(**kwargs)[source]

Handle SSLv3 and TLS 1.0, 1.1 and 1.2 and DLTS 1.0 and 1.2 Client Key Exchange messages

class flextls.protocol.handshake.DTLSv10ClientHello(**kwargs)[source]

Handle DTLS 1.0 and 1.2 Client Hello messages

class flextls.protocol.handshake.DTLSv10Handshake(**kwargs)[source]

Handle DTLS 1.0 and 1.2 Handshake protocol

class flextls.protocol.handshake.DTLSv10HelloVerifyRequest(**kwargs)[source]

Handle DTLS 1.0 and 1.2 Hello Verify Request messages

class flextls.protocol.handshake.Handshake(**kwargs)[source]

Handle SSLv3 and TLS 1.0, 1.1 and 1.2 Handshake protocol

class flextls.protocol.handshake.SSLv2ClientHello(**kwargs)[source]

Handle SSLv2 Client Hello messages

class flextls.protocol.handshake.SSLv2ServerHello(**kwargs)[source]

Handle SSLv2 Server Hello messages

class flextls.protocol.handshake.ServerCertificate(**kwargs)[source]

Handle SSLv3 and TLS 1.0, 1.1 and 1.2 and DLTS 1.0 and 1.2 Server Certificate messages

class flextls.protocol.handshake.ServerHello(**kwargs)[source]

Handle SSLv3 and TLS 1.0, 1.1 and 1.2 Server Hello messages

class flextls.protocol.handshake.ServerHelloDone(**kwargs)[source]

Handle SSLv3 and TLS 1.0, 1.1 and 1.2 and DLTS 1.0 and 1.2 Server Hello Done messages

class flextls.protocol.handshake.ServerKeyExchange(**kwargs)[source]

Handle SSLv3 and TLS 1.0, 1.1 and 1.2 and DLTS 1.0 and 1.2 Server Key Exchange messages

class flextls.protocol.handshake.extension.EcPointFormats(**kwargs)[source]

Handle Elliptic Curves Point Format extension

class flextls.protocol.handshake.extension.EllipticCurves(**kwargs)[source]

Handle Elliptic Curves extension

class flextls.protocol.handshake.extension.Extension(**kwargs)[source]

Handle TLS and DTLS Extensions

class flextls.protocol.handshake.extension.Heartbeat(**kwargs)[source]

Handle Heartbeat extension

class flextls.protocol.handshake.extension.ServerNameIndication(**kwargs)[source]

Handle Server Name Indication extension

  • RFC6066 (Section 3)
class flextls.protocol.handshake.extension.SessionTicketTLS(**kwargs)[source]

Handle Session Ticket extension

class flextls.protocol.handshake.extension.SignatureAlgorithms(**kwargs)[source]

Handle Signature Algorithm extension

Heartbeat

class flextls.protocol.heartbeat.Heartbeat(**kwargs)[source]

Handle Heartbeat Request and Response Messages

  • RFC6520

Record

The SSL/TLS Record Protocol

class flextls.protocol.record.DTLSv10Record(**kwargs)[source]

Handle DTLS 1.0 and DTLS 1.2 Record layer.

class flextls.protocol.record.SSLv2Record(**kwargs)[source]

Handle the SSLv2 Record layer.

class flextls.protocol.record.SSLv3Record(**kwargs)[source]

Handle the SSLv3 and TLS 1.0, 1.1 and 1.2 Record layer