scapy.layers.spnego module

SPNEGO

Implements parts of:

  • GSSAPI SPNEGO: RFC4178 > RFC2478

  • GSSAPI SPNEGO NEGOEX: [MS-NEGOEX]

Note

You will find more complete documentation for this layer over at GSSAPI

class scapy.layers.spnego.NEGOEX_BYTE_VECTOR(_pkt, /, *, ByteArrayBufferOffset=0, ByteArrayLength=0)[source]

Bases: Packet

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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                     BYTEARRAYBUFFEROFFSET                     |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                        BYTEARRAYLENGTH                        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                     Fig. NEGOEX_BYTE_VECTOR                      
NEGOEX_BYTE_VECTOR fields

ByteArrayBufferOffset

LEIntField

0

ByteArrayLength

LEIntField

0

guess_payload_class(payload)[source]
class scapy.layers.spnego.NEGOEX_CHECKSUM(_pkt, /, *, cbHeaderLength=20, ChecksumScheme=1, ChecksumType=None, ChecksumValue=b'')[source]

Bases: Packet

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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                         CBHEADERLENGTH                        |
+                                                               +
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                         CHECKSUMSCHEME                        |
+                                                               +
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                          CHECKSUMTYPE                         |
+                                                               +
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|         CHECKSUMVALUE         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                       Fig. NEGOEX_CHECKSUM                       
NEGOEX_CHECKSUM fields

cbHeaderLength

LELongField

20

ChecksumScheme

LELongEnumField

1

ChecksumType

LELongEnumField

None

ChecksumValue

XStrLenField

b''

class scapy.layers.spnego.NEGOEX_EXCHANGE_MESSAGE(_pkt, /, *, Signature=b'NEGOEXTS', MessageType=0, SequenceNum=0, cbHeaderLength=None, cbMessageLength=None, ConversationId=None, AuthScheme=None, ExchangeBufferOffset=0, ExchangeLen=0, Payload=[])[source]

Bases: _NTLMPayloadPacket

OFFSET = 64
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                           SIGNATURE                           |
+                                                               +
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                          MESSAGETYPE                          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                          SEQUENCENUM                          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                         CBHEADERLENGTH                        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                        CBMESSAGELENGTH                        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                         CONVERSATIONID                        |
+                                                               +
|                                                               |
+                                                               +
|                                                               |
+                                                               +
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                           AUTHSCHEME                          |
+                                                               +
|                                                               |
+                                                               +
|                                                               |
+                                                               +
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                      EXCHANGEBUFFEROFFSET                     |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                          EXCHANGELEN                          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|            PAYLOAD            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                   Fig. NEGOEX_EXCHANGE_MESSAGE                   
NEGOEX_EXCHANGE_MESSAGE fields

Signature

StrFixedLenField

b'NEGOEXTS'

MessageType

LEIntEnumField

0

SequenceNum

LEIntField

0

cbHeaderLength

LEIntField

None

cbMessageLength

LEIntField

None

ConversationId

UUIDField

None

AuthScheme

UUIDEnumField

None

ExchangeBufferOffset

LEIntField

0

ExchangeLen

LEIntField

0

Payload

_NTLMPayloadField

[]

show_indent = 0
class scapy.layers.spnego.NEGOEX_EXTENSION_VECTOR(_pkt, /, *, ExtensionArrayOffset=0, ExtensionCount=0)[source]

Bases: Packet

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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                      EXTENSIONARRAYOFFSET                     |
+                                                               +
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|         EXTENSIONCOUNT        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                   Fig. NEGOEX_EXTENSION_VECTOR                   
NEGOEX_EXTENSION_VECTOR fields

ExtensionArrayOffset

LELongField

0

ExtensionCount

LEShortField

0

class scapy.layers.spnego.NEGOEX_MESSAGE_HEADER(_pkt, /, *, Signature=b'NEGOEXTS', MessageType=0, SequenceNum=0, cbHeaderLength=None, cbMessageLength=None, ConversationId=None)[source]

Bases: Packet

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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                           SIGNATURE                           |
+                                                               +
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                          MESSAGETYPE                          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                          SEQUENCENUM                          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                         CBHEADERLENGTH                        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                        CBMESSAGELENGTH                        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                         CONVERSATIONID                        |
+                                                               +
|                                                               |
+                                                               +
|                                                               |
+                                                               +
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                    Fig. NEGOEX_MESSAGE_HEADER                    
NEGOEX_MESSAGE_HEADER fields

Signature

StrFixedLenField

b'NEGOEXTS'

MessageType

LEIntEnumField

0

SequenceNum

LEIntField

0

cbHeaderLength

LEIntField

None

cbMessageLength

LEIntField

None

ConversationId

UUIDField

None

post_build(pkt, pay)[source]
class scapy.layers.spnego.NEGOEX_NEGO_MESSAGE(_pkt, /, *, Signature=b'NEGOEXTS', MessageType=0, SequenceNum=0, cbHeaderLength=None, cbMessageLength=None, ConversationId=None, Random=b'', ProtocolVersion=0, AuthSchemeBufferOffset=None, AuthSchemeCount=None, ExtensionBufferOffset=None, ExtensionCount=None, Payload=[])[source]

Bases: _NTLMPayloadPacket

OFFSET = 92
aliastypes
classmethod dispatch_hook(_pkt=None, *args, **kargs)[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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                           SIGNATURE                           |
+                                                               +
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                          MESSAGETYPE                          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                          SEQUENCENUM                          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                         CBHEADERLENGTH                        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                        CBMESSAGELENGTH                        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                         CONVERSATIONID                        |
+                                                               +
|                                                               |
+                                                               +
|                                                               |
+                                                               +
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                             RANDOM                            |
+                                                               +
|                                                               |
+                                                               +
|                                                               |
+                                                               +
|                                                               |
+                                                               +
|                                                               |
+                                                               +
|                                                               |
+                                                               +
|                                                               |
+                                                               +
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                        PROTOCOLVERSION                        |
+                                                               +
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                     AUTHSCHEMEBUFFEROFFSET                    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|        AUTHSCHEMECOUNT        |     EXTENSIONBUFFEROFFSET     |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                               |         EXTENSIONCOUNT        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|            PAYLOAD            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                     Fig. NEGOEX_NEGO_MESSAGE                     
NEGOEX_NEGO_MESSAGE fields

Signature

StrFixedLenField

b'NEGOEXTS'

MessageType

LEIntEnumField

0

SequenceNum

LEIntField

0

cbHeaderLength

LEIntField

None

cbMessageLength

LEIntField

None

ConversationId

UUIDField

None

Random

XStrFixedLenField

b''

ProtocolVersion

LELongField

0

AuthSchemeBufferOffset

LEIntField

None

AuthSchemeCount

LEShortField

None

ExtensionBufferOffset

LEIntField

None

ExtensionCount

LEShortField

None

Payload

_NTLMPayloadField

[]

payload_guess

Possible sublayers: NEGOEX_NEGO_MESSAGE

post_build(pkt: bytes, pay: bytes) bytes[source]
show_indent = 0
class scapy.layers.spnego.NEGOEX_VERIFY_MESSAGE(_pkt, /, *, Signature=b'NEGOEXTS', MessageType=0, SequenceNum=0, cbHeaderLength=None, cbMessageLength=None, ConversationId=None, AuthScheme=None, Checksum=<NEGOEX_CHECKSUM  |>)[source]

Bases: Packet

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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                           SIGNATURE                           |
+                                                               +
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                          MESSAGETYPE                          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                          SEQUENCENUM                          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                         CBHEADERLENGTH                        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                        CBMESSAGELENGTH                        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                         CONVERSATIONID                        |
+                                                               +
|                                                               |
+                                                               +
|                                                               |
+                                                               +
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                           AUTHSCHEME                          |
+                                                               +
|                                                               |
+                                                               +
|                                                               |
+                                                               +
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|            CHECKSUM           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                    Fig. NEGOEX_VERIFY_MESSAGE                    
NEGOEX_VERIFY_MESSAGE fields

Signature

StrFixedLenField

b'NEGOEXTS'

MessageType

LEIntEnumField

0

SequenceNum

LEIntField

0

cbHeaderLength

LEIntField

None

cbMessageLength

LEIntField

None

ConversationId

UUIDField

None

AuthScheme

UUIDEnumField

None

Checksum

PacketField

<NEGOEX_CHECKSUM  |>

show_indent = 0
class scapy.layers.spnego.SPNEGOSSP(ssps, **kwargs)[source]

Bases: SSP

The SPNEGO SSP

Parameters:

ssps – a dict with keys being the SSP class, and the value being a dictionary of the keyword arguments to pass it on init.

Example:

from scapy.layers.ntlm import NTLMSSP
from scapy.layers.kerberos import KerberosSSP
from scapy.layers.spnego import SPNEGOSSP
from scapy.layers.smbserver import smbserver
from scapy.libs.rfc3961 import Encryption, Key

ssp = SPNEGOSSP([
    NTLMSSP(
        IDENTITIES={
            "User1": MD4le("Password1"),
            "Administrator": MD4le("Password123!"),
        }
    ),
    KerberosSSP(
        SPN="cifs/server2.domain.local",
        KEY=Key(
            Encryption.AES256,
            key=hex_bytes("5e9255c907b2f7e969ddad816eabbec8f1f7a387c7194ecc98b827bdc9421c2b")
        )
    )
])
smbserver(ssp=ssp)
class CONTEXT(supported_ssps, req_flags=None, force_supported_mechtypes=None)[source]

Bases: CONTEXT

clifailure()[source]
first_choice
property flags
negotiated_mechtype
req_flags
requested_mechtypes
ssp
sub_context
supported_mechtypes
GSS_Accept_sec_context(Context: CONTEXT, val=None)[source]
GSS_GetMICEx(Context, *args, **kwargs)[source]
GSS_Init_sec_context(Context: CONTEXT, val=None, req_flags: GSS_C_FLAGS | None = None)[source]
GSS_Passive(Context: CONTEXT, val=None)[source]
GSS_Passive_set_Direction(Context: CONTEXT, IsAcceptor=False)[source]
GSS_UnwrapEx(Context, *args, **kwargs)[source]
GSS_VerifyMICEx(Context, *args, **kwargs)[source]
GSS_WrapEx(Context, *args, **kwargs)[source]
LegsAmount(Context: CONTEXT)[source]
MaximumSignatureLength(Context: CONTEXT)[source]
NegTokenInit2()[source]

Server-Initiation of GSSAPI/SPNEGO. See [MS-SPNG] sect 3.2.5.2

class STATE(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)[source]

Bases: STATE

CHANGESSP = 2
FIRST = 1
NORMAL = 3
auth_type = 9
force_supported_mechtypes
supported_ssps
class scapy.layers.spnego.SPNEGO_MechListMIC(_pkt, /, *, value=<ASN1_STRING['']>)[source]

Bases: ASN1_Packet

ASN1_codec = <ASN1Codec BER[1]>
ASN1_root = <scapy.asn1fields.ASN1F_STRING object>
aliastypes
fields_desc
SPNEGO_MechListMIC fields

value

ASN1F_STRING

<ASN1_STRING['']>

class scapy.layers.spnego.SPNEGO_MechType(_pkt, /, *, oid=None)[source]

Bases: ASN1_Packet

ASN1_codec = <ASN1Codec BER[1]>
ASN1_root = <scapy.asn1fields.ASN1F_OID object>
aliastypes
fields_desc
SPNEGO_MechType fields

oid

ASN1F_OID

None

class scapy.layers.spnego.SPNEGO_MechTypes(_pkt, /, *, mechTypes=None)[source]

Bases: ASN1_Packet

ASN1_codec = <ASN1Codec BER[1]>
ASN1_root = <ASN1F_SEQUENCE_OF mechTypes>
aliastypes
fields_desc
SPNEGO_MechTypes fields

mechTypes

ASN1F_SEQUENCE_OF

None

class scapy.layers.spnego.SPNEGO_Token(_pkt, /, *, value=None)[source]

Bases: ASN1_Packet

ASN1_codec = <ASN1Codec BER[1]>
ASN1_root = <scapy.layers.spnego._SPNEGO_Token_Field object>
aliastypes
fields_desc
SPNEGO_Token fields

value

_SPNEGO_Token_Field

None

class scapy.layers.spnego.SPNEGO_negHints(_pkt, /, *, hintName=<ASN1_GENERAL_STRING['not_defined_in_RFC4178@please_ignore']>, hintAddress=None)[source]

Bases: ASN1_Packet

ASN1_codec = <ASN1Codec BER[1]>
ASN1_root = <ASN1F_SEQUENCE(<scapy.asn1fields.ASN1F_optional object>, <scapy.asn1fields.ASN1F_optional object>)>
aliastypes
fields_desc
SPNEGO_negHints fields

hintName

ASN1F_GENERAL_STRING

<ASN1_GENERAL_STRING['not_defined_in_RFC4178@please_ignore']>

hintAddress

ASN1F_GENERAL_STRING

None

class scapy.layers.spnego.SPNEGO_negToken(_pkt, /, *, token=<SPNEGO_negTokenInit  |>)[source]

Bases: ASN1_Packet

ASN1_codec = <ASN1Codec BER[1]>
ASN1_root = <scapy.asn1fields.ASN1F_CHOICE object>
aliastypes
fields_desc
SPNEGO_negToken fields

token

ASN1F_CHOICE

<SPNEGO_negTokenInit  |>

class scapy.layers.spnego.SPNEGO_negTokenInit(_pkt, /, *, mechTypes=None, reqFlags=None, mechToken=None, negHints=None, mechListMIC=None, _mechListMIC=None)[source]

Bases: ASN1_Packet

ASN1_codec = <ASN1Codec BER[1]>
ASN1_root = <ASN1F_SEQUENCE(<scapy.asn1fields.ASN1F_optional object>, <scapy.asn1fields.ASN1F_optional object>, <scapy.asn1fields.ASN1F_optional object>, <scapy.asn1fields.ASN1F_optional object>, <scapy.asn1fields.ASN1F_optional object>, <scapy.asn1fields.ASN1F_optional object>)>
aliastypes
fields_desc
SPNEGO_negTokenInit fields

mechTypes

ASN1F_SEQUENCE_OF

None

reqFlags

ASN1F_FLAGS

None

mechToken

ASN1F_PACKET

None

negHints

ASN1F_PACKET

None

mechListMIC

ASN1F_PACKET

None

_mechListMIC

ASN1F_PACKET

None

class scapy.layers.spnego.SPNEGO_negTokenResp(_pkt, /, *, negResult=0x0 <ASN1_ENUMERATED[0]>, supportedMech=<SPNEGO_MechType  |>, responseToken=None, mechListMIC=None)[source]

Bases: ASN1_Packet

ASN1_codec = <ASN1Codec BER[1]>
ASN1_root = <ASN1F_SEQUENCE(<scapy.asn1fields.ASN1F_optional object>, <scapy.asn1fields.ASN1F_optional object>, <scapy.asn1fields.ASN1F_optional object>, <scapy.asn1fields.ASN1F_optional object>)>
aliastypes
fields_desc
SPNEGO_negTokenResp fields

negResult

ASN1F_ENUMERATED

0x0 <ASN1_ENUMERATED[0]>

supportedMech

ASN1F_PACKET

<SPNEGO_MechType  |>

responseToken

ASN1F_PACKET

None

mechListMIC

ASN1F_PACKET

None

scapy.layers.spnego.mechListMIC(oids)[source]

Implementation of RFC 4178 - Appendix D. mechListMIC Computation