scapy.contrib.automotive.autosar.secoc_pdu

SecOC PDU

class scapy.contrib.automotive.autosar.secoc_pdu.SecOC_PDU(_pkt, /, *, pdu_id=0, pdu_payload_len=None, pdu_payload=<Raw  |>, tfv=0, tmac=None)[source]

Bases: Packet, SecOCMixin

aliastypes = [<class 'scapy.contrib.automotive.autosar.secoc_pdu.SecOC_PDU'>, <class 'scapy.packet.Packet'>]
classmethod dispatch_hook(s: bytes | None = None, *_args: Any, **_kwds: Any) Packet_metaclass[source]

dispatch_hook determines if PDU is protected by SecOC. If PDU is protected, SecOC_PDU will be returned, otherwise AutoSAR PDU will be returned.

extract_padding(s: bytes) Tuple[bytes, bytes | None][source]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<XIntField (SecOC_PDU).pdu_id>, <FieldLenField (SecOC_PDU).pdu_payload_len>, <PduPayloadField (SecOC_PDU).pdu_payload>, <XByteField (SecOC_PDU).tfv>, <XStrFixedLenField (SecOC_PDU).tmac>]
classmethod get_pdu_payload_cls(pkt: Packet, data: bytes) Packet[source]
get_secoc_payload() bytes[source]

Override this method for customization

secoc_authenticate() None[source]
secoc_verify() bool[source]
class scapy.contrib.automotive.autosar.secoc_pdu.SecOC_PDUTransport(_pkt, /, *, pdus=[<SecOC_PDU  pdu_payload=<Raw  |> |>])[source]

Bases: Packet

Packet representing SecOC_PDUTransport containing multiple PDUs

aliastypes = [<class 'scapy.contrib.automotive.autosar.secoc_pdu.SecOC_PDUTransport'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<PacketListField (SecOC_PDUTransport).pdus>]
static register_secoc_protected_pdu(pdu_id: int, pdu_payload_cls: Type[Packet] = <class 'scapy.packet.Raw'>) None[source]
static unregister_secoc_protected_pdu(pdu_id: int) None[source]