2.2.4 Secret Wrapped with Symmetric Key

The following structure MUST be used by servers to wrap a secret using the ServerWrap subprotocol, as specified in section 3.1.1.1.


0


1


2


3


4


5


6


7


8


9

1
0


1


2


3


4


5


6


7


8


9

2
0


1


2


3


4


5


6


7


8


9

3
0


1

0x01

0x00

0x00

0x00

Payload_Length

Ciphertext_Length

GUID_of_Wrapping_Key (16 bytes)

...

...

R2 (68 bytes)

...

...

Rc4EncryptedPayload (variable)

...

Payload_Length (4 bytes): A 32-bit unsigned integer. It MUST be the size, in bytes, of the Secret field within the Rc4EncryptedPayload structure. This field MUST be encoded using little-endian format.

Ciphertext_Length  (4 bytes): A 32-bit unsigned integer. It MUST be the size, in bytes, of the Rc4EncryptedPayload field. This field MUST be encoded using little-endian format.

GUID_of_Wrapping_Key (16 bytes): This MUST be the 16-byte GUID ([MS-DTYP] section 2.3.4.2) of the wrapping key used by the server for this operation.

R2 (68 bytes): This MUST be a 68-byte random number. It SHOULD be generated independently for each wrapping operation.

Rc4EncryptedPayload (variable): This field MUST be an Rc4EncryptedPayload structure that is formatted as specified in section 2.2.4.1.