scapy.contrib.macsec

Classes and functions for MACsec.

class scapy.contrib.macsec.MACsec(*args, **kargs)[source]

Bases: scapy.base_classes.Gen[scapy.packet.Packet]

representation of one MACsec frame

aliastypes
deprecated_fields = {'an': ('AN', '2.4.4'), 'pn': ('PN', '2.4.4'), 'sci': ('SCI', '2.4.4'), 'shortlen': ('SL', '2.4.4')}
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|V|E|S|S|E|C| AN|RES|     SL    |               PN              |
+-+-+-+-+-+-+-+-+-+-+-+-+       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                               |              SCI              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|              TYPE             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                           Fig. MACsec                            
MACsec fields

Ver

BitField (1 bit)

0

ES

BitField (1 bit)

0

SC

BitField (1 bit)

0

SCB

BitField (1 bit)

0

E

BitField (1 bit)

0

C

BitField (1 bit)

0

AN

BitField (2 bits)

0

reserved

BitField (2 bits)

0

SL

BitField (6 bits)

0

PN

IntField

1

SCI

PacketField (Cond)

None

type

XShortEnumField (Cond)

None

mysummary()[source]
payload_guess

Possible sublayers: IP, IPv6

class scapy.contrib.macsec.MACsecSA(sci, an, pn, key, icvlen, encrypt, send_sci, xpn_en=False, ssci=None, salt=None)[source]

Bases: object

Representation of a MACsec Secure Association

Provides encapsulation, decapsulation, encryption, and decryption of MACsec frames

c_bit()[source]

returns the value of the C bit for packets sent through this SA

decap(orig_pkt)[source]

decapsulate a MACsec frame

decrypt(orig_pkt, assoclen=None)[source]

decrypt a MACsec frame for this Secure Association

e_bit()[source]

returns the value of the E bit for packets sent through this SA

encap(pkt)[source]

encapsulate a frame using this Secure Association

encrypt(orig_pkt, assoclen=None)[source]

encrypt a MACsec frame for this Secure Association

make_iv(pkt)[source]

generate an IV for the packet

static shortlen(pkt)[source]

determine shortlen for a raw packet (not encapsulated yet)

static split_pkt(pkt, assoclen, icvlen=0)[source]

split the packet into associated data, plaintext or ciphertext, and optional ICV