scapy.layers.isakmp module

ISAKMP (Internet Security Association and Key Management Protocol).

class scapy.layers.isakmp.ISAKMP(_pkt, /, *, init_cookie=b'', resp_cookie=b'', next_payload=0, version=16, exch_type=0, flags=<Flag 0 ()>, id=0, length=None)[source]

Bases: _ISAKMP_class

aliastypes
answers(other)[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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                          INIT COOKIE                          |
+                                                               +
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                          RESP COOKIE                          |
+                                                               +
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  NEXT PAYLOAD |    VERSION    |   EXCH TYPE   |     FLAGS     |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                               ID                              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                             LENGTH                            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                           Fig. ISAKMP                            
ISAKMP fields

init_cookie

XStrFixedLenField

b''

resp_cookie

XStrFixedLenField

b''

next_payload

ByteEnumField

0

version

XByteField

16

exch_type

ByteEnumField

0

flags

FlagsField

<Flag 0 ()>

id

IntField

0

length

IntField

None

guess_payload_class(payload)[source]
post_build(p, pay)[source]
class scapy.layers.isakmp.ISAKMPTransformSetField(name: str, default: bytes, length_from: Callable[[Packet], int] | None = None, max_length: Any | None = None)[source]

Bases: StrLenField

i2m(pkt, i)[source]
islist = 1
m2i(pkt, m)[source]
static num2type(typ, enc, proto=0)[source]
static type2num(type_val_tuple, proto=0)[source]
class scapy.layers.isakmp.ISAKMP_payload(_pkt, /, *, next_payload=None, res=0, length=None, load=b'')[source]

Bases: _ISAKMP_class

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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  NEXT PAYLOAD |      RES      |             LENGTH            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|              LOAD             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                       Fig. ISAKMP_payload                        
ISAKMP_payload fields

next_payload

ByteEnumField

None

res

ByteField

0

length

ShortField

None

load

XStrLenField

b''

post_build(pkt, pay)[source]
show_indent = 0
class scapy.layers.isakmp.ISAKMP_payload_Delete(_pkt, /, *, next_payload=None, res=0, length=None, doi=0, proto=1, SPIsize=None, SPIcount=None, SPIs=[])[source]

Bases: ISAKMP_payload

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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  NEXT PAYLOAD |      RES      |             LENGTH            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                              DOI                              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     PROTO     |    SPISIZE    |            SPICOUNT           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|              SPIS             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                    Fig. ISAKMP_payload_Delete                    
ISAKMP_payload_Delete fields

next_payload

ByteEnumField

None

res

ByteField

0

length

ShortField

None

doi

IntEnumField

0

proto

ByteEnumField

1

SPIsize

FieldLenField

None

SPIcount

FieldLenField

None

SPIs

FieldListField

[]

class scapy.layers.isakmp.ISAKMP_payload_Hash(_pkt, /, *, next_payload=None, res=0, length=None, load=b'')[source]

Bases: ISAKMP_payload

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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  NEXT PAYLOAD |      RES      |             LENGTH            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|              LOAD             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                     Fig. ISAKMP_payload_Hash                     
ISAKMP_payload_Hash fields

next_payload

ByteEnumField

None

res

ByteField

0

length

ShortField

None

load

XStrLenField

b''

class scapy.layers.isakmp.ISAKMP_payload_ID(_pkt, /, *, next_payload=None, res=0, length=None, IDtype=1, ProtoID=0, Port=0, IdentData=None)[source]

Bases: ISAKMP_payload

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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  NEXT PAYLOAD |      RES      |             LENGTH            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     IDTYPE    |    PROTOID    |              PORT             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|           IDENTDATA           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                      Fig. ISAKMP_payload_ID                      
ISAKMP_payload_ID fields

next_payload

ByteEnumField

None

res

ByteField

0

length

ShortField

None

IDtype

ByteEnumField

1

ProtoID

ByteEnumField

0

Port

ShortEnumField

0

IdentData

MultipleTypeField (IPField, StrLenField)

b''

class scapy.layers.isakmp.ISAKMP_payload_KE(_pkt, /, *, next_payload=None, res=0, length=None, load=b'')[source]

Bases: ISAKMP_payload

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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  NEXT PAYLOAD |      RES      |             LENGTH            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|              LOAD             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                      Fig. ISAKMP_payload_KE                      
ISAKMP_payload_KE fields

next_payload

ByteEnumField

None

res

ByteField

0

length

ShortField

None

load

XStrLenField

b''

class scapy.layers.isakmp.ISAKMP_payload_Nonce(_pkt, /, *, next_payload=None, res=0, length=None, load=b'')[source]

Bases: ISAKMP_payload

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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  NEXT PAYLOAD |      RES      |             LENGTH            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|              LOAD             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                    Fig. ISAKMP_payload_Nonce                     
ISAKMP_payload_Nonce fields

next_payload

ByteEnumField

None

res

ByteField

0

length

ShortField

None

load

XStrLenField

b''

class scapy.layers.isakmp.ISAKMP_payload_Notify(_pkt, /, *, next_payload=None, res=0, length=None, doi=0, proto=1, SPIsize=None, notify_msg_type=None, SPI=b'', notify_data=b'')[source]

Bases: ISAKMP_payload

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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  NEXT PAYLOAD |      RES      |             LENGTH            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                              DOI                              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     PROTO     |    SPISIZE    |        NOTIFY MSG TYPE        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|              SPI              |          NOTIFY DATA          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                    Fig. ISAKMP_payload_Notify                    
ISAKMP_payload_Notify fields

next_payload

ByteEnumField

None

res

ByteField

0

length

ShortField

None

doi

IntEnumField

0

proto

ByteEnumField

1

SPIsize

FieldLenField

None

notify_msg_type

ShortEnumField

None

SPI

StrLenField

b''

notify_data

StrLenField

b''

class scapy.layers.isakmp.ISAKMP_payload_Proposal(_pkt, /, *, next_payload=None, res=0, length=None, proposal=1, proto=1, SPIsize=None, trans_nb=None, SPI=b'', trans=<Raw  |>)[source]

Bases: ISAKMP_payload

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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  NEXT PAYLOAD |      RES      |             LENGTH            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    PROPOSAL   |     PROTO     |    SPISIZE    |    TRANS NB   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|              SPI              |             TRANS             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                   Fig. ISAKMP_payload_Proposal                   
ISAKMP_payload_Proposal fields

next_payload

ByteEnumField

None

res

ByteField

0

length

ShortField

None

proposal

ByteField

1

proto

ByteEnumField

1

SPIsize

FieldLenField

None

trans_nb

ByteField

None

SPI

StrLenField

b''

trans

PacketLenField

<Raw  |>

class scapy.layers.isakmp.ISAKMP_payload_SA(_pkt, /, *, next_payload=None, res=0, length=None, doi=1, situation=1, prop=<Raw  |>)[source]

Bases: ISAKMP_payload

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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  NEXT PAYLOAD |      RES      |             LENGTH            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                              DOI                              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                           SITUATION                           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|              PROP             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                      Fig. ISAKMP_payload_SA                      
ISAKMP_payload_SA fields

next_payload

ByteEnumField

None

res

ByteField

0

length

ShortField

None

doi

IntEnumField

1

situation

IntEnumField

1

prop

PacketLenField

<Raw  |>

class scapy.layers.isakmp.ISAKMP_payload_Transform(_pkt, /, *, next_payload=None, res=0, length=None, transform_count=None, transform_id=1, res2=0, transforms=None)[source]

Bases: ISAKMP_payload

aliastypes
deprecated_fields: Dict[str, Tuple[str, str]] = {'id': ('transform_id', '2.5.0'), 'num': ('transform_count', '2.5.0')}
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  NEXT PAYLOAD |      RES      |             LENGTH            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|TRANSFORM COUNT|  TRANSFORM ID |              RES2             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|           TRANSFORMS          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                  Fig. ISAKMP_payload_Transform                   
ISAKMP_payload_Transform fields

next_payload

ByteEnumField

None

res

ByteField

0

length

ShortField

None

transform_count

ByteField

None

transform_id

ByteEnumField

1

res2

ShortField

0

transforms

ISAKMPTransformSetField

None

class scapy.layers.isakmp.ISAKMP_payload_VendorID(_pkt, /, *, next_payload=None, res=0, length=None, VendorID=b'')[source]

Bases: ISAKMP_payload

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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  NEXT PAYLOAD |      RES      |             LENGTH            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|            VENDORID           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                   Fig. ISAKMP_payload_VendorID                   
ISAKMP_payload_VendorID fields

next_payload

ByteEnumField

None

res

ByteField

0

length

ShortField

None

VendorID

StrLenEnumField

b''

scapy.layers.isakmp.ikescan(ip)[source]

Sends/receives a ISAMPK payload SA with payload proposal