2.2.3.1 SMB2 NEGOTIATE_CONTEXT Request Values
The SMB2_NEGOTIATE_CONTEXT structure is used by the SMB2 NEGOTIATE Request and the SMB2 NEGOTIATE Response to encode additional properties.
The server MUST support receiving negotiate contexts in any order.
Each structure takes the following form.
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
|
|
3 |
|
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
ContextType |
DataLength |
||||||||||||||||||||||||||||||
Reserved |
|||||||||||||||||||||||||||||||
Data (variable) |
|||||||||||||||||||||||||||||||
... |
ContextType (2 bytes): Specifies the type of context in the Data field. This field MUST be one of the following values:
-
Value
Meaning
SMB2_PREAUTH_INTEGRITY_CAPABILITIES
0x0001
The Data field contains a list of preauthentication integrity hash functions as well as an optional salt value, as specified in section 2.2.3.1.1.
SMB2_ENCRYPTION_CAPABILITIES
0x0002
The Data field contains a list of encryption algorithms, as specified in section 2.2.3.1.2.
SMB2_COMPRESSION_CAPABILITIES
0x0003
The Data field contains a list of compression algorithms, as specified in section 2.2.3.1.3<14>.
SMB2_NETNAME_NEGOTIATE_CONTEXT_ID 0x0005
The Data field contains the server name to which the client connects<15>.
SMB2_TRANSPORT_CAPABILITIES
0x0006
The Data field contains transport capabilities, as specified in section 2.2.3.1.5.<16>
SMB2_RDMA_TRANSFORM_CAPABILITIES
0x0007
The Data field contains a list of RDMA transforms, as specified in section 2.2.3.1.6.<17>
SMB2_SIGNING_CAPABILITIES
0x0008
The Data field contains a list of signing algorithms, as specified in section 2.2.3.1.7. <18>
SMB2_CONTEXTTYPE_RESERVED
0x0100
This value MUST be reserved and MUST be ignored on receipt.
DataLength (2 bytes): The length, in bytes, of the Data field.
Reserved (4 bytes): This field MUST NOT be used and MUST be reserved. This value MUST be set to 0 by the client, and MUST be ignored by the server.
Data (variable): A variable-length field that contains the negotiate context specified by the ContextType field.