<div class="content" name="NEGO_MESSAGE" uuid="585eae5b-1f4d-457f-bc1c-0c93251061e1"><p>The <b>NEGO_MESSAGE</b> structure message is used to begin
and exchange negotiation of security mechanisms. This message is sent from the
initiator to the acceptor with the message type set to
MESSAGE_TYPE_INITIATOR_NEGO to begin the negotiation. The initiator uses this
message to specify the set of supported security mechanisms. The acceptor then
responds with a <b>NEGO_MESSAGE</b> message, with the message type set to
MESSAGE_TYPE_ACCEPTOR_NEGO and with its own list of supported security
mechanisms. This message contains signatures for protecting the NEGOEX
negotiation and might also contain the optimistic mechanism token.  </p><p>The <b>NEGO_MESSAGE</b> structure has the following
definition. </p><dl>
<dd>
<div><pre> struct
 {
   MESSAGE_HEADER Header;
   UCHAR Random[32];
   ULONG64 ProtocolVersion;
   AUTH_SCHEME_VECTOR AuthSchemes;
   EXTENSION_VECTOR Extensions;
} NEGO_MESSAGE; 
</pre></div>
</dd></dl><p><b>Header:</b> A <b>MESSAGE_HEADER</b> structure, as
specified in section <a href="1f4a4b47-6e44-4427-9028-e384a4ca1fda" data-linktype="relative-path">2.2.6.2</a>.
Its <b>MessageType</b> field can carry from the <b>MESSAGE_TYPE</b> enumeration
(section <a href="3a77a20d-9746-4e79-8f06-b241263e3da3" data-linktype="relative-path">2.2.6.1</a>)
either the value MESSAGE_TYPE_INITIATOR_NEGO for the initiator or the value
MESSAGE_TYPE_ACCEPTOR_NEGO for the acceptor.  </p><p><b>Random:</b> A UCHAR integer array. The <b>Random</b>
field is filled using a secure random number generator, as specified in section
<a href="0520cf4a-0a5d-42c0-82ec-81fa2ca0d875" data-linktype="relative-path">2.2.4</a>.  </p><p><b>ProtocolVersion:</b> A ULONG64 type that indicates
the numbered version of this protocol. This field contains 0.  </p><p><b>AuthSchemes:</b> An <b>AUTH_SCHEME_VECTOR</b>
structure, as specified in section <a href="640dca14-6065-40fc-a710-3d9665d6bc1f" data-linktype="relative-path">2.2.5.2.2</a>, that contains
an ordered list of available, supported security mechanism IDs in decreasing
order of preference.  </p><p><b>Extensions:</b> All negative extension types are
critical (the highest bit is set to 1). If the receiver does not understand a
critical extension, the authentication attempt MUST be rejected. </p></div>