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
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
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                             PDU ID                            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                        PDU PAYLOAD LEN                        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|          PDU PAYLOAD          |      TFV      |      TMAC     |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                          Fig. SecOC_PDU                          
SecOC_PDU fields

pdu_id

XIntField

0

pdu_payload_len

FieldLenField

None

pdu_payload

PduPayloadField

<Raw  |>

tfv

XByteField

0

tmac

XStrFixedLenField

None

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
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|              PDUS             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                     Fig. SecOC_PDUTransport                      
SecOC_PDUTransport fields

pdus

PacketListField

[<SecOC_PDU  pdu_payload=<Raw  |> |>]

static register_secoc_protected_pdu(pdu_id: int, pdu_payload_cls: ~typing.Type[~scapy.packet.Packet] = <class 'scapy.packet.Raw'>) None[source]
static unregister_secoc_protected_pdu(pdu_id: int) None[source]