Class SSL.Packet

Inheritance graph
SSL.Packet SSL.Alert

class SSL.Packet
Description

SSL Record Layer. Handle formatting and parsing of packets.


Variable bound_write_state

object|zero SSL.Packet.bound_write_state

Description

TLS 1.3 and later: the State this packet must be encrypted with, captured when it was queued via Connection.send_packet().

Note

TLS 1.3 rekeys at fixed protocol points by directly reassigning current_write_state (see Connection.new_traffic_state()), rather than via a PACKET_change_cipher_spec marker flowing through the output queue as TLS 1.2 and earlier do. Since Connection.send_packet() only queues a packet -- the actual encrypt_packet() call happens later, whenever Connection.to_write() drains the queue -- encrypting with


Variable marginal_size

protected int SSL.Packet.marginal_size

Description

The fragment max size is 2^14 (RFC 5246 6.2.1). Compressed fragments are however allowed to be 1024 bytes over (6.2.2), and Ciphertexts 2048 bytes (6.2.3). State the additional headroom in this variable.


Method create

SSL.Packet SSL.Packet(ProtocolVersion version, void|int extra)

Parameter version

The version sent packets will be created for.

Parameter extra

Additional fragment size, over the 2^14 bytes for a plaintext TLS fragment.