scapy.layers.tls.extensions

TLS handshake extensions.

class scapy.layers.tls.extensions.OCSPStatusRequest(_pkt, /, *, respidlen=None, respid=[], reqextlen=None, reqext=b'')[source]

Bases: Packet

This is the structure defined in RFC 6066, not in RFC 6960!

aliastypes = [<class 'scapy.layers.tls.extensions.OCSPStatusRequest'>, <class 'scapy.packet.Packet'>]
fields_desc: List[Field[Any, Any] | _FieldContainer] = [<FieldLenField (OCSPStatusRequest).respidlen>, <PacketListField (OCSPStatusRequest).respid>, <FieldLenField (OCSPStatusRequest).reqextlen>, <PacketField (OCSPStatusRequest).reqext>]
guess_payload_class(p)[source]
class scapy.layers.tls.extensions.ProtocolListField(name: str, default: Optional[List[BasePacket]], pkt_cls: Optional[Union[Callable[[bytes], Packet], Type[Packet]]]  # noqa: E501 = None, count_from: Optional[Callable[[Packet], int]] = None, length_from: Optional[Callable[[Packet], int]] = None, next_cls_cb: Optional[Callable[[Packet, List[BasePacket], Optional[Packet], bytes], Optional[Type[Packet]]]]  # noqa: E501 = None, max_count: Optional[int] = None)[source]

Bases: PacketListField

i2repr(pkt, x)[source]
class scapy.layers.tls.extensions.ProtocolName(_pkt, /, *, len=None, protocol=b'')[source]

Bases: Packet

aliastypes = [<class 'scapy.layers.tls.extensions.ProtocolName'>, <class 'scapy.packet.Packet'>]
fields_desc: List[Field[Any, Any] | _FieldContainer] = [<FieldLenField (ProtocolName).len>, <StrLenField (ProtocolName).protocol>]
guess_payload_class(p)[source]
class scapy.layers.tls.extensions.ResponderID(_pkt, /, *, respidlen=None, respid=b'')[source]

Bases: Packet

aliastypes = [<class 'scapy.layers.tls.extensions.ResponderID'>, <class 'scapy.packet.Packet'>]
fields_desc: List[Field[Any, Any] | _FieldContainer] = [<FieldLenField (ResponderID).respidlen>, <StrLenField (ResponderID).respid>]
guess_payload_class(p)[source]
class scapy.layers.tls.extensions.ServerLenField(name: str, default: Optional[Any], length_of: Optional[str] = None, fmt: str = 'H', count_of: Optional[str] = None, adjust: Callable[[Packet, int], int] = <function FieldLenField.<lambda>>)[source]

Bases: FieldLenField

There is no length when there are no servernames (as in a ServerHello).

addfield(pkt, s, val)[source]
class scapy.layers.tls.extensions.ServerListField(name: str, default: Optional[List[BasePacket]], pkt_cls: Optional[Union[Callable[[bytes], Packet], Type[Packet]]]  # noqa: E501 = None, count_from: Optional[Callable[[Packet], int]] = None, length_from: Optional[Callable[[Packet], int]] = None, next_cls_cb: Optional[Callable[[Packet, List[BasePacket], Optional[Packet], bytes], Optional[Type[Packet]]]]  # noqa: E501 = None, max_count: Optional[int] = None)[source]

Bases: PacketListField

i2repr(pkt, x)[source]
class scapy.layers.tls.extensions.ServerName(_pkt, /, *, nametype=0, namelen=None, servername=b'')[source]

Bases: Packet

aliastypes = [<class 'scapy.layers.tls.extensions.ServerName'>, <class 'scapy.packet.Packet'>]
fields_desc: List[Field[Any, Any] | _FieldContainer] = [<ByteEnumField (ServerName).nametype>, <FieldLenField (ServerName).namelen>, <StrLenField (ServerName).servername>]
guess_payload_class(p)[source]
class scapy.layers.tls.extensions.TACertSHA1Hash(_pkt, /, *, idtype=3, id=None)[source]

Bases: Packet

aliastypes = [<class 'scapy.layers.tls.extensions.TACertSHA1Hash'>, <class 'scapy.packet.Packet'>]
fields_desc: List[Field[Any, Any] | _FieldContainer] = [<ByteEnumField (TACertSHA1Hash).idtype>, <StrFixedLenField (TACertSHA1Hash).id>]
guess_payload_class(p)[source]
class scapy.layers.tls.extensions.TAKeySHA1Hash(_pkt, /, *, idtype=1, id=None)[source]

Bases: Packet

aliastypes = [<class 'scapy.layers.tls.extensions.TAKeySHA1Hash'>, <class 'scapy.packet.Packet'>]
fields_desc: List[Field[Any, Any] | _FieldContainer] = [<ByteEnumField (TAKeySHA1Hash).idtype>, <StrFixedLenField (TAKeySHA1Hash).id>]
guess_payload_class(p)[source]
class scapy.layers.tls.extensions.TAPreAgreed(_pkt, /, *, idtype=0)[source]

Bases: Packet

aliastypes = [<class 'scapy.layers.tls.extensions.TAPreAgreed'>, <class 'scapy.packet.Packet'>]
fields_desc: List[Field[Any, Any] | _FieldContainer] = [<ByteEnumField (TAPreAgreed).idtype>]
guess_payload_class(p)[source]
class scapy.layers.tls.extensions.TAX509Name(_pkt, /, *, idtype=2, dnlen=None, dn=b'')[source]

Bases: Packet

XXX Section 3.4 of RFC 4366. Implement a more specific DNField rather than current StrLenField.

aliastypes = [<class 'scapy.layers.tls.extensions.TAX509Name'>, <class 'scapy.packet.Packet'>]
fields_desc: List[Field[Any, Any] | _FieldContainer] = [<ByteEnumField (TAX509Name).idtype>, <FieldLenField (TAX509Name).dnlen>, <StrLenField (TAX509Name).dn>]
guess_payload_class(p)[source]
class scapy.layers.tls.extensions.TLS_Ext_ALPN(_pkt, /, *, type=16, len=None, protocolslen=None, protocols=[])[source]

Bases: TLS_Ext_PrettyPacketList

aliastypes = [<class 'scapy.layers.tls.extensions.TLS_Ext_ALPN'>, <class 'scapy.layers.tls.extensions.TLS_Ext_PrettyPacketList'>, <class 'scapy.layers.tls.extensions.TLS_Ext_Unknown'>, <class 'scapy.layers.tls.session._GenericTLSSessionInheritance'>, <class 'scapy.packet.Packet'>]
fields_desc: List[Field[Any, Any] | _FieldContainer] = [<ShortEnumField (TLS_Ext_ALPN).type>, <scapy.fields.MayEnd object>, <FieldLenField (TLS_Ext_ALPN).protocolslen>, <ProtocolListField (TLS_Ext_ALPN).protocols>]
class scapy.layers.tls.extensions.TLS_Ext_CSR(_pkt, /, *, type=5, len=None, stype=None, req=[])[source]

Bases: TLS_Ext_Unknown

aliastypes = [<class 'scapy.layers.tls.extensions.TLS_Ext_CSR'>, <class 'scapy.layers.tls.extensions.TLS_Ext_Unknown'>, <class 'scapy.layers.tls.session._GenericTLSSessionInheritance'>, <class 'scapy.packet.Packet'>]
fields_desc: List[Field[Any, Any] | _FieldContainer] = [<ShortEnumField (TLS_Ext_CSR).type>, <scapy.fields.MayEnd object>, <ByteEnumField (TLS_Ext_CSR).stype>, <_StatusReqField (TLS_Ext_CSR).req>]
class scapy.layers.tls.extensions.TLS_Ext_ClientAuthz(_pkt, /, *, type=7, len=None)[source]

Bases: TLS_Ext_Unknown

XXX Unsupported

aliastypes = [<class 'scapy.layers.tls.extensions.TLS_Ext_ClientAuthz'>, <class 'scapy.layers.tls.extensions.TLS_Ext_Unknown'>, <class 'scapy.layers.tls.session._GenericTLSSessionInheritance'>, <class 'scapy.packet.Packet'>]
fields_desc: List[Field[Any, Any] | _FieldContainer] = [<ShortEnumField (TLS_Ext_ClientAuthz).type>, <scapy.fields.MayEnd object>]
class scapy.layers.tls.extensions.TLS_Ext_ClientCertType(_pkt, /, *, type=9, len=None, ctypeslen=None, ctypes=[0, 1])[source]

Bases: TLS_Ext_Unknown

aliastypes = [<class 'scapy.layers.tls.extensions.TLS_Ext_ClientCertType'>, <class 'scapy.layers.tls.extensions.TLS_Ext_Unknown'>, <class 'scapy.layers.tls.session._GenericTLSSessionInheritance'>, <class 'scapy.packet.Packet'>]
fields_desc: List[Field[Any, Any] | _FieldContainer] = [<ShortEnumField (TLS_Ext_ClientCertType).type>, <scapy.fields.MayEnd object>, <FieldLenField (TLS_Ext_ClientCertType).ctypeslen>, <FieldListField (TLS_Ext_ClientCertType).ctypes>]
class scapy.layers.tls.extensions.TLS_Ext_ClientCertURL(_pkt, /, *, type=2, len=None)[source]

Bases: TLS_Ext_Unknown

aliastypes = [<class 'scapy.layers.tls.extensions.TLS_Ext_ClientCertURL'>, <class 'scapy.layers.tls.extensions.TLS_Ext_Unknown'>, <class 'scapy.layers.tls.session._GenericTLSSessionInheritance'>, <class 'scapy.packet.Packet'>]
fields_desc: List[Field[Any, Any] | _FieldContainer] = [<ShortEnumField (TLS_Ext_ClientCertURL).type>, <scapy.fields.MayEnd object>]

Bases: TLS_Ext_Unknown

aliastypes = [<class 'scapy.layers.tls.extensions.TLS_Ext_Cookie'>, <class 'scapy.layers.tls.extensions.TLS_Ext_Unknown'>, <class 'scapy.layers.tls.session._GenericTLSSessionInheritance'>, <class 'scapy.packet.Packet'>]
build()[source]
fields_desc: List[Field[Any, Any] | _FieldContainer] = [<ShortEnumField (TLS_Ext_Cookie).type>, <scapy.fields.MayEnd object>, <FieldLenField (TLS_Ext_Cookie).cookielen>, <XStrLenField (TLS_Ext_Cookie).cookie>]
class scapy.layers.tls.extensions.TLS_Ext_EarlyDataIndication(_pkt, /, *, type=42, len=None)[source]

Bases: TLS_Ext_Unknown

aliastypes = [<class 'scapy.layers.tls.extensions.TLS_Ext_EarlyDataIndication'>, <class 'scapy.layers.tls.extensions.TLS_Ext_Unknown'>, <class 'scapy.layers.tls.session._GenericTLSSessionInheritance'>, <class 'scapy.packet.Packet'>]
fields_desc: List[Field[Any, Any] | _FieldContainer] = [<ShortEnumField (TLS_Ext_EarlyDataIndication).type>, <scapy.fields.MayEnd object>]
class scapy.layers.tls.extensions.TLS_Ext_EarlyDataIndicationTicket(_pkt, /, *, type=42, len=None, max_early_data_size=0)[source]

Bases: TLS_Ext_Unknown

aliastypes = [<class 'scapy.layers.tls.extensions.TLS_Ext_EarlyDataIndicationTicket'>, <class 'scapy.layers.tls.extensions.TLS_Ext_Unknown'>, <class 'scapy.layers.tls.session._GenericTLSSessionInheritance'>, <class 'scapy.packet.Packet'>]
fields_desc: List[Field[Any, Any] | _FieldContainer] = [<ShortEnumField (TLS_Ext_EarlyDataIndicationTicket).type>, <scapy.fields.MayEnd object>, <IntField (TLS_Ext_EarlyDataIndicationTicket).max_early_data_size>]
class scapy.layers.tls.extensions.TLS_Ext_EncryptThenMAC(_pkt, /, *, type=22, len=None)[source]

Bases: TLS_Ext_Unknown

aliastypes = [<class 'scapy.layers.tls.extensions.TLS_Ext_EncryptThenMAC'>, <class 'scapy.layers.tls.extensions.TLS_Ext_Unknown'>, <class 'scapy.layers.tls.session._GenericTLSSessionInheritance'>, <class 'scapy.packet.Packet'>]
fields_desc: List[Field[Any, Any] | _FieldContainer] = [<ShortEnumField (TLS_Ext_EncryptThenMAC).type>, <scapy.fields.MayEnd object>]
class scapy.layers.tls.extensions.TLS_Ext_EncryptedServerName(_pkt, /, *, type=65486, len=None, cipher=None, key_exchange_group=None, key_exchange_len=None, key_exchange=b'', record_digest_len=None, record_digest=b'', encrypted_sni_len=None, encrypted_sni=b'')[source]

Bases: TLS_Ext_PrettyPacketList

aliastypes = [<class 'scapy.layers.tls.extensions.TLS_Ext_EncryptedServerName'>, <class 'scapy.layers.tls.extensions.TLS_Ext_PrettyPacketList'>, <class 'scapy.layers.tls.extensions.TLS_Ext_Unknown'>, <class 'scapy.layers.tls.session._GenericTLSSessionInheritance'>, <class 'scapy.packet.Packet'>]
fields_desc: List[Field[Any, Any] | _FieldContainer] = [<ShortEnumField (TLS_Ext_EncryptedServerName).type>, <scapy.fields.MayEnd object>, <EnumField (TLS_Ext_EncryptedServerName).cipher>, <ShortEnumField (TLS_Ext_EncryptedServerName).key_exchange_group>, <FieldLenField (TLS_Ext_EncryptedServerName).key_exchange_len>, <XStrLenField (TLS_Ext_EncryptedServerName).key_exchange>, <FieldLenField (TLS_Ext_EncryptedServerName).record_digest_len>, <XStrLenField (TLS_Ext_EncryptedServerName).record_digest>, <FieldLenField (TLS_Ext_EncryptedServerName).encrypted_sni_len>, <XStrLenField (TLS_Ext_EncryptedServerName).encrypted_sni>]
class scapy.layers.tls.extensions.TLS_Ext_ExtendedMasterSecret(_pkt, /, *, type=23, len=None)[source]

Bases: TLS_Ext_Unknown

aliastypes = [<class 'scapy.layers.tls.extensions.TLS_Ext_ExtendedMasterSecret'>, <class 'scapy.layers.tls.extensions.TLS_Ext_Unknown'>, <class 'scapy.layers.tls.session._GenericTLSSessionInheritance'>, <class 'scapy.packet.Packet'>]
fields_desc: List[Field[Any, Any] | _FieldContainer] = [<ShortEnumField (TLS_Ext_ExtendedMasterSecret).type>, <scapy.fields.MayEnd object>]
class scapy.layers.tls.extensions.TLS_Ext_Heartbeat(_pkt, /, *, type=15, len=None, heartbeat_mode=2)[source]

Bases: TLS_Ext_Unknown

aliastypes = [<class 'scapy.layers.tls.extensions.TLS_Ext_Heartbeat'>, <class 'scapy.layers.tls.extensions.TLS_Ext_Unknown'>, <class 'scapy.layers.tls.session._GenericTLSSessionInheritance'>, <class 'scapy.packet.Packet'>]
fields_desc: List[Field[Any, Any] | _FieldContainer] = [<ShortEnumField (TLS_Ext_Heartbeat).type>, <scapy.fields.MayEnd object>, <ByteEnumField (TLS_Ext_Heartbeat).heartbeat_mode>]
class scapy.layers.tls.extensions.TLS_Ext_KeyShare(_pkt, /, *, type=51, len=None)[source]

Bases: TLS_Ext_Unknown

aliastypes = [<class 'scapy.layers.tls.extensions.TLS_Ext_KeyShare'>, <class 'scapy.layers.tls.extensions.TLS_Ext_Unknown'>, <class 'scapy.layers.tls.session._GenericTLSSessionInheritance'>, <class 'scapy.packet.Packet'>]
fields_desc: List[Field[Any, Any] | _FieldContainer] = [<ShortEnumField (TLS_Ext_KeyShare).type>, <scapy.fields.MayEnd object>]
class scapy.layers.tls.extensions.TLS_Ext_MaxFragLen(_pkt, /, *, type=1, len=None, maxfraglen=4)[source]

Bases: TLS_Ext_Unknown

aliastypes = [<class 'scapy.layers.tls.extensions.TLS_Ext_MaxFragLen'>, <class 'scapy.layers.tls.extensions.TLS_Ext_Unknown'>, <class 'scapy.layers.tls.session._GenericTLSSessionInheritance'>, <class 'scapy.packet.Packet'>]
fields_desc: List[Field[Any, Any] | _FieldContainer] = [<ShortEnumField (TLS_Ext_MaxFragLen).type>, <scapy.fields.MayEnd object>, <ByteEnumField (TLS_Ext_MaxFragLen).maxfraglen>]
class scapy.layers.tls.extensions.TLS_Ext_NPN(_pkt, /, *, type=13172, len=None, protocols=[])[source]

Bases: TLS_Ext_PrettyPacketList

Defined in RFC-draft-agl-tls-nextprotoneg-03. Deprecated in favour of ALPN.

aliastypes = [<class 'scapy.layers.tls.extensions.TLS_Ext_NPN'>, <class 'scapy.layers.tls.extensions.TLS_Ext_PrettyPacketList'>, <class 'scapy.layers.tls.extensions.TLS_Ext_Unknown'>, <class 'scapy.layers.tls.session._GenericTLSSessionInheritance'>, <class 'scapy.packet.Packet'>]
fields_desc: List[Field[Any, Any] | _FieldContainer] = [<ShortEnumField (TLS_Ext_NPN).type>, <FieldLenField (TLS_Ext_NPN).len>, <ProtocolListField (TLS_Ext_NPN).protocols>]
class scapy.layers.tls.extensions.TLS_Ext_PSKKeyExchangeModes(_pkt, /, *, type=45, len=None, kxmodeslen=None, kxmodes=[])[source]

Bases: TLS_Ext_Unknown

aliastypes = [<class 'scapy.layers.tls.extensions.TLS_Ext_PSKKeyExchangeModes'>, <class 'scapy.layers.tls.extensions.TLS_Ext_Unknown'>, <class 'scapy.layers.tls.session._GenericTLSSessionInheritance'>, <class 'scapy.packet.Packet'>]
fields_desc: List[Field[Any, Any] | _FieldContainer] = [<ShortEnumField (TLS_Ext_PSKKeyExchangeModes).type>, <scapy.fields.MayEnd object>, <FieldLenField (TLS_Ext_PSKKeyExchangeModes).kxmodeslen>, <FieldListField (TLS_Ext_PSKKeyExchangeModes).kxmodes>]
class scapy.layers.tls.extensions.TLS_Ext_Padding(_pkt, /, *, type=21, len=None, padding=b'')[source]

Bases: TLS_Ext_Unknown

aliastypes = [<class 'scapy.layers.tls.extensions.TLS_Ext_Padding'>, <class 'scapy.layers.tls.extensions.TLS_Ext_Unknown'>, <class 'scapy.layers.tls.session._GenericTLSSessionInheritance'>, <class 'scapy.packet.Packet'>]
fields_desc: List[Field[Any, Any] | _FieldContainer] = [<ShortEnumField (TLS_Ext_Padding).type>, <FieldLenField (TLS_Ext_Padding).len>, <StrLenField (TLS_Ext_Padding).padding>]
class scapy.layers.tls.extensions.TLS_Ext_PostHandshakeAuth(_pkt, /, *, type=49, len=None)[source]

Bases: TLS_Ext_Unknown

aliastypes = [<class 'scapy.layers.tls.extensions.TLS_Ext_PostHandshakeAuth'>, <class 'scapy.layers.tls.extensions.TLS_Ext_Unknown'>, <class 'scapy.layers.tls.session._GenericTLSSessionInheritance'>, <class 'scapy.packet.Packet'>]
fields_desc: List[Field[Any, Any] | _FieldContainer] = [<ShortEnumField (TLS_Ext_PostHandshakeAuth).type>, <scapy.fields.MayEnd object>]
class scapy.layers.tls.extensions.TLS_Ext_PreSharedKey(_pkt, /, *, type=41, len=None)[source]

Bases: TLS_Ext_Unknown

aliastypes = [<class 'scapy.layers.tls.extensions.TLS_Ext_PreSharedKey'>, <class 'scapy.layers.tls.extensions.TLS_Ext_Unknown'>, <class 'scapy.layers.tls.session._GenericTLSSessionInheritance'>, <class 'scapy.packet.Packet'>]
fields_desc: List[Field[Any, Any] | _FieldContainer] = [<ShortEnumField (TLS_Ext_PreSharedKey).type>, <scapy.fields.MayEnd object>]
class scapy.layers.tls.extensions.TLS_Ext_PrettyPacketList(_pkt, /, *, type=None, len=None, val=b'')[source]

Bases: TLS_Ext_Unknown

Dummy extension used for server_name/ALPN/NPN for a lighter representation: the final field is showed as a 1-line list rather than as lots of packets. XXX Define a new condition for packet lists in Packet._show_or_dump?

aliastypes = [<class 'scapy.layers.tls.extensions.TLS_Ext_PrettyPacketList'>, <class 'scapy.layers.tls.extensions.TLS_Ext_Unknown'>, <class 'scapy.layers.tls.session._GenericTLSSessionInheritance'>, <class 'scapy.packet.Packet'>]
fields_desc: List[Field[Any, Any] | _FieldContainer] = [<ShortEnumField (TLS_Ext_Unknown,TLS_Ext_PrettyPacketList).type>, <FieldLenField (TLS_Ext_Unknown,TLS_Ext_PrettyPacketList).len>, <StrLenField (TLS_Ext_Unknown,TLS_Ext_PrettyPacketList).val>]
class scapy.layers.tls.extensions.TLS_Ext_QUICTransportParameters(_pkt, /, *, type=57, len=None, params=[])[source]

Bases: TLS_Ext_Unknown

aliastypes = [<class 'scapy.layers.tls.extensions.TLS_Ext_QUICTransportParameters'>, <class 'scapy.layers.tls.extensions.TLS_Ext_Unknown'>, <class 'scapy.layers.tls.session._GenericTLSSessionInheritance'>, <class 'scapy.packet.Packet'>]
fields_desc: List[Field[Any, Any] | _FieldContainer] = [<ShortEnumField (TLS_Ext_QUICTransportParameters).type>, <FieldLenField (TLS_Ext_QUICTransportParameters).len>, <_QuicTransportParametersField (TLS_Ext_QUICTransportParameters).params>]
class scapy.layers.tls.extensions.TLS_Ext_RecordSizeLimit(_pkt, /, *, type=28, len=None, record_size_limit=None)[source]

Bases: TLS_Ext_Unknown

aliastypes = [<class 'scapy.layers.tls.extensions.TLS_Ext_RecordSizeLimit'>, <class 'scapy.layers.tls.extensions.TLS_Ext_Unknown'>, <class 'scapy.layers.tls.session._GenericTLSSessionInheritance'>, <class 'scapy.packet.Packet'>]
fields_desc: List[Field[Any, Any] | _FieldContainer] = [<ShortEnumField (TLS_Ext_RecordSizeLimit).type>, <scapy.fields.MayEnd object>, <ShortField (TLS_Ext_RecordSizeLimit).record_size_limit>]
class scapy.layers.tls.extensions.TLS_Ext_RenegotiationInfo(_pkt, /, *, type=65281, len=None, reneg_conn_len=None, renegotiated_connection=b'')[source]

Bases: TLS_Ext_Unknown

aliastypes = [<class 'scapy.layers.tls.extensions.TLS_Ext_RenegotiationInfo'>, <class 'scapy.layers.tls.extensions.TLS_Ext_Unknown'>, <class 'scapy.layers.tls.session._GenericTLSSessionInheritance'>, <class 'scapy.packet.Packet'>]
fields_desc: List[Field[Any, Any] | _FieldContainer] = [<ShortEnumField (TLS_Ext_RenegotiationInfo).type>, <scapy.fields.MayEnd object>, <FieldLenField (TLS_Ext_RenegotiationInfo).reneg_conn_len>, <StrLenField (TLS_Ext_RenegotiationInfo).renegotiated_connection>]
class scapy.layers.tls.extensions.TLS_Ext_ServerAuthz(_pkt, /, *, type=8, len=None)[source]

Bases: TLS_Ext_Unknown

XXX Unsupported

aliastypes = [<class 'scapy.layers.tls.extensions.TLS_Ext_ServerAuthz'>, <class 'scapy.layers.tls.extensions.TLS_Ext_Unknown'>, <class 'scapy.layers.tls.session._GenericTLSSessionInheritance'>, <class 'scapy.packet.Packet'>]
fields_desc: List[Field[Any, Any] | _FieldContainer] = [<ShortEnumField (TLS_Ext_ServerAuthz).type>, <scapy.fields.MayEnd object>]
class scapy.layers.tls.extensions.TLS_Ext_ServerCertType(_pkt, /, *, type=9, len=None, ctype=None)[source]

Bases: TLS_Ext_Unknown

aliastypes = [<class 'scapy.layers.tls.extensions.TLS_Ext_ServerCertType'>, <class 'scapy.layers.tls.extensions.TLS_Ext_Unknown'>, <class 'scapy.layers.tls.session._GenericTLSSessionInheritance'>, <class 'scapy.packet.Packet'>]
fields_desc: List[Field[Any, Any] | _FieldContainer] = [<ShortEnumField (TLS_Ext_ServerCertType).type>, <scapy.fields.MayEnd object>, <ByteEnumField (TLS_Ext_ServerCertType).ctype>]
class scapy.layers.tls.extensions.TLS_Ext_ServerName(_pkt, /, *, type=0, len=None, servernameslen=None, servernames=[])[source]

Bases: TLS_Ext_PrettyPacketList

aliastypes = [<class 'scapy.layers.tls.extensions.TLS_Ext_ServerName'>, <class 'scapy.layers.tls.extensions.TLS_Ext_PrettyPacketList'>, <class 'scapy.layers.tls.extensions.TLS_Ext_Unknown'>, <class 'scapy.layers.tls.session._GenericTLSSessionInheritance'>, <class 'scapy.packet.Packet'>]
fields_desc: List[Field[Any, Any] | _FieldContainer] = [<ShortEnumField (TLS_Ext_ServerName).type>, <scapy.fields.MayEnd object>, <ServerLenField (TLS_Ext_ServerName).servernameslen>, <ServerListField (TLS_Ext_ServerName).servernames>]
class scapy.layers.tls.extensions.TLS_Ext_SessionTicket(_pkt, /, *, type=35, len=None, ticket=b'')[source]

Bases: TLS_Ext_Unknown

RFC 5077 updates RFC 4507 according to most implementations, which do not use another (useless) ‘ticketlen’ field after the global ‘len’ field.

aliastypes = [<class 'scapy.layers.tls.extensions.TLS_Ext_SessionTicket'>, <class 'scapy.layers.tls.extensions.TLS_Ext_Unknown'>, <class 'scapy.layers.tls.session._GenericTLSSessionInheritance'>, <class 'scapy.packet.Packet'>]
fields_desc: List[Field[Any, Any] | _FieldContainer] = [<ShortEnumField (TLS_Ext_SessionTicket).type>, <FieldLenField (TLS_Ext_SessionTicket).len>, <StrLenField (TLS_Ext_SessionTicket).ticket>]
class scapy.layers.tls.extensions.TLS_Ext_SignatureAlgorithms(_pkt, /, *, type=13, len=None, sig_algs_len=None, sig_algs=[])[source]

Bases: TLS_Ext_Unknown

aliastypes = [<class 'scapy.layers.tls.extensions.TLS_Ext_SignatureAlgorithms'>, <class 'scapy.layers.tls.extensions.TLS_Ext_Unknown'>, <class 'scapy.layers.tls.session._GenericTLSSessionInheritance'>, <class 'scapy.packet.Packet'>]
fields_desc: List[Field[Any, Any] | _FieldContainer] = [<ShortEnumField (TLS_Ext_SignatureAlgorithms).type>, <scapy.fields.MayEnd object>, <SigAndHashAlgsLenField (TLS_Ext_SignatureAlgorithms).sig_algs_len>, <SigAndHashAlgsField (TLS_Ext_SignatureAlgorithms).sig_algs>]
class scapy.layers.tls.extensions.TLS_Ext_SignatureAlgorithmsCert(_pkt, /, *, type=50, len=None, sig_algs_len=None, sig_algs=[])[source]

Bases: TLS_Ext_Unknown

aliastypes = [<class 'scapy.layers.tls.extensions.TLS_Ext_SignatureAlgorithmsCert'>, <class 'scapy.layers.tls.extensions.TLS_Ext_Unknown'>, <class 'scapy.layers.tls.session._GenericTLSSessionInheritance'>, <class 'scapy.packet.Packet'>]
fields_desc: List[Field[Any, Any] | _FieldContainer] = [<ShortEnumField (TLS_Ext_SignatureAlgorithmsCert).type>, <scapy.fields.MayEnd object>, <SigAndHashAlgsLenField (TLS_Ext_SignatureAlgorithmsCert).sig_algs_len>, <SigAndHashAlgsField (TLS_Ext_SignatureAlgorithmsCert).sig_algs>]
class scapy.layers.tls.extensions.TLS_Ext_SupportedEllipticCurves(_pkt, /, *, type=10, len=None, groupslen=None, groups=[])[source]

Bases: TLS_Ext_SupportedGroups

aliastypes = [<class 'scapy.layers.tls.extensions.TLS_Ext_SupportedEllipticCurves'>, <class 'scapy.layers.tls.extensions.TLS_Ext_SupportedGroups'>, <class 'scapy.layers.tls.extensions.TLS_Ext_Unknown'>, <class 'scapy.layers.tls.session._GenericTLSSessionInheritance'>, <class 'scapy.packet.Packet'>]
fields_desc: List[Field[Any, Any] | _FieldContainer] = [<ShortEnumField (TLS_Ext_SupportedGroups,TLS_Ext_SupportedEllipticCurves).type>, <scapy.fields.MayEnd object>, <FieldLenField (TLS_Ext_SupportedGroups,TLS_Ext_SupportedEllipticCurves).groupslen>, <FieldListField (TLS_Ext_SupportedGroups,TLS_Ext_SupportedEllipticCurves).groups>]
class scapy.layers.tls.extensions.TLS_Ext_SupportedGroups(_pkt, /, *, type=10, len=None, groupslen=None, groups=[])[source]

Bases: TLS_Ext_Unknown

This extension was known as ‘Supported Elliptic Curves’ before TLS 1.3 merged both group selection mechanisms for ECDH and FFDH.

aliastypes = [<class 'scapy.layers.tls.extensions.TLS_Ext_SupportedGroups'>, <class 'scapy.layers.tls.extensions.TLS_Ext_Unknown'>, <class 'scapy.layers.tls.session._GenericTLSSessionInheritance'>, <class 'scapy.packet.Packet'>]
fields_desc: List[Field[Any, Any] | _FieldContainer] = [<ShortEnumField (TLS_Ext_SupportedGroups,TLS_Ext_SupportedEllipticCurves).type>, <scapy.fields.MayEnd object>, <FieldLenField (TLS_Ext_SupportedGroups,TLS_Ext_SupportedEllipticCurves).groupslen>, <FieldListField (TLS_Ext_SupportedGroups,TLS_Ext_SupportedEllipticCurves).groups>]
class scapy.layers.tls.extensions.TLS_Ext_SupportedPointFormat(_pkt, /, *, type=11, len=None, ecpllen=None, ecpl=[0])[source]

Bases: TLS_Ext_Unknown

aliastypes = [<class 'scapy.layers.tls.extensions.TLS_Ext_SupportedPointFormat'>, <class 'scapy.layers.tls.extensions.TLS_Ext_Unknown'>, <class 'scapy.layers.tls.session._GenericTLSSessionInheritance'>, <class 'scapy.packet.Packet'>]
fields_desc: List[Field[Any, Any] | _FieldContainer] = [<ShortEnumField (TLS_Ext_SupportedPointFormat).type>, <scapy.fields.MayEnd object>, <FieldLenField (TLS_Ext_SupportedPointFormat).ecpllen>, <FieldListField (TLS_Ext_SupportedPointFormat).ecpl>]
class scapy.layers.tls.extensions.TLS_Ext_SupportedVersion_CH(_pkt, /, *, type=43, len=None, versionslen=None, versions=[])[source]

Bases: TLS_Ext_Unknown

aliastypes = [<class 'scapy.layers.tls.extensions.TLS_Ext_SupportedVersion_CH'>, <class 'scapy.layers.tls.extensions.TLS_Ext_Unknown'>, <class 'scapy.layers.tls.session._GenericTLSSessionInheritance'>, <class 'scapy.packet.Packet'>]
fields_desc: List[Field[Any, Any] | _FieldContainer] = [<ShortEnumField (TLS_Ext_SupportedVersion_CH).type>, <scapy.fields.MayEnd object>, <FieldLenField (TLS_Ext_SupportedVersion_CH).versionslen>, <FieldListField (TLS_Ext_SupportedVersion_CH).versions>]
class scapy.layers.tls.extensions.TLS_Ext_SupportedVersion_SH(_pkt, /, *, type=43, len=None, version=None)[source]

Bases: TLS_Ext_Unknown

aliastypes = [<class 'scapy.layers.tls.extensions.TLS_Ext_SupportedVersion_SH'>, <class 'scapy.layers.tls.extensions.TLS_Ext_Unknown'>, <class 'scapy.layers.tls.session._GenericTLSSessionInheritance'>, <class 'scapy.packet.Packet'>]
fields_desc: List[Field[Any, Any] | _FieldContainer] = [<ShortEnumField (TLS_Ext_SupportedVersion_SH).type>, <scapy.fields.MayEnd object>, <ShortEnumField (TLS_Ext_SupportedVersion_SH).version>]
class scapy.layers.tls.extensions.TLS_Ext_SupportedVersions(_pkt, /, *, type=43, len=None)[source]

Bases: TLS_Ext_Unknown

aliastypes = [<class 'scapy.layers.tls.extensions.TLS_Ext_SupportedVersions'>, <class 'scapy.layers.tls.extensions.TLS_Ext_Unknown'>, <class 'scapy.layers.tls.session._GenericTLSSessionInheritance'>, <class 'scapy.packet.Packet'>]
fields_desc: List[Field[Any, Any] | _FieldContainer] = [<ShortEnumField (TLS_Ext_SupportedVersions).type>, <scapy.fields.MayEnd object>]
class scapy.layers.tls.extensions.TLS_Ext_TicketEarlyDataInfo(_pkt, /, *, type=46, len=None, max_early_data_size=0)[source]

Bases: TLS_Ext_Unknown

aliastypes = [<class 'scapy.layers.tls.extensions.TLS_Ext_TicketEarlyDataInfo'>, <class 'scapy.layers.tls.extensions.TLS_Ext_Unknown'>, <class 'scapy.layers.tls.session._GenericTLSSessionInheritance'>, <class 'scapy.packet.Packet'>]
fields_desc: List[Field[Any, Any] | _FieldContainer] = [<ShortEnumField (TLS_Ext_TicketEarlyDataInfo).type>, <scapy.fields.MayEnd object>, <IntField (TLS_Ext_TicketEarlyDataInfo).max_early_data_size>]
class scapy.layers.tls.extensions.TLS_Ext_TruncatedHMAC(_pkt, /, *, type=4, len=None)[source]

Bases: TLS_Ext_Unknown

aliastypes = [<class 'scapy.layers.tls.extensions.TLS_Ext_TruncatedHMAC'>, <class 'scapy.layers.tls.extensions.TLS_Ext_Unknown'>, <class 'scapy.layers.tls.session._GenericTLSSessionInheritance'>, <class 'scapy.packet.Packet'>]
fields_desc: List[Field[Any, Any] | _FieldContainer] = [<ShortEnumField (TLS_Ext_TruncatedHMAC).type>, <scapy.fields.MayEnd object>]
class scapy.layers.tls.extensions.TLS_Ext_TrustedCAInd(_pkt, /, *, type=3, len=None, talen=None, ta=[])[source]

Bases: TLS_Ext_Unknown

aliastypes = [<class 'scapy.layers.tls.extensions.TLS_Ext_TrustedCAInd'>, <class 'scapy.layers.tls.extensions.TLS_Ext_Unknown'>, <class 'scapy.layers.tls.session._GenericTLSSessionInheritance'>, <class 'scapy.packet.Packet'>]
fields_desc: List[Field[Any, Any] | _FieldContainer] = [<ShortEnumField (TLS_Ext_TrustedCAInd).type>, <scapy.fields.MayEnd object>, <FieldLenField (TLS_Ext_TrustedCAInd).talen>, <_TAListField (TLS_Ext_TrustedCAInd).ta>]
class scapy.layers.tls.extensions.TLS_Ext_Unknown(_pkt, /, *, type=None, len=None, val=b'')[source]

Bases: _GenericTLSSessionInheritance

We put this here rather than in extensions.py in order to avoid circular imports…

aliastypes = [<class 'scapy.layers.tls.extensions.TLS_Ext_Unknown'>, <class 'scapy.layers.tls.session._GenericTLSSessionInheritance'>, <class 'scapy.packet.Packet'>]
fields_desc: List[Field[Any, Any] | _FieldContainer] = [<ShortEnumField (TLS_Ext_Unknown,TLS_Ext_PrettyPacketList).type>, <FieldLenField (TLS_Ext_Unknown,TLS_Ext_PrettyPacketList).len>, <StrLenField (TLS_Ext_Unknown,TLS_Ext_PrettyPacketList).val>]
post_build(p, pay)[source]
class scapy.layers.tls.extensions.TLS_Ext_UserMapping(_pkt, /, *, type=6, len=None, umlen=None, um=[])[source]

Bases: TLS_Ext_Unknown

aliastypes = [<class 'scapy.layers.tls.extensions.TLS_Ext_UserMapping'>, <class 'scapy.layers.tls.extensions.TLS_Ext_Unknown'>, <class 'scapy.layers.tls.session._GenericTLSSessionInheritance'>, <class 'scapy.packet.Packet'>]
fields_desc: List[Field[Any, Any] | _FieldContainer] = [<ShortEnumField (TLS_Ext_UserMapping).type>, <scapy.fields.MayEnd object>, <FieldLenField (TLS_Ext_UserMapping).umlen>, <FieldListField (TLS_Ext_UserMapping).um>]