3.2.5.3 Processing Client License Information

If the client has a valid license that matches the information sent by the server in the Server License Request (section 2.2.2.1) message, the client MUST send the previously issued license in the Client License Information (section 2.2.2.3) message.

In the case of a personal terminal server, the sent license is cached by the server, and then the server sends a Licensing Error Message (section 2.2.2.8) with error code STATUS_VALID_CLIENT and the state transition code ST_NO_TRANSITION. The licensing protocol is complete at this point.

In the case of terminal servers, the server tries to follow the upgrade License Flow (section 1.3.3.2).

The server MUST compute the license encryption key by using the client-generated random number and the premaster secret. The premaster secret is obtained by decrypting the encrypted premaster secret with the terminal server's private key. This allows elements of the remainder of the licensing protocol to be encrypted.

The terminal server MUST decrypt (see section 5.1.4) the EncryptedHWID field (see section 2.2.2.3) using the license encryption key to get the Client Hardware Identification (section 2.2.2.3.1) structure. It then MUST generate the MAC checksum (see section 5.1.5) over the decrypted Client Hardware Identification and compares it with the MAC checksum received in the Client License Information (section 2.2.2.3) message to verify data integrity.

The server MUST validate the License (section 3.2.1.7) present in the LicenseInfo BLOB (see section 2.2.2.3) by validating the following data:

  • Valid license server signature.

  • Correct product information.

  • License expiration date.

  • Client hardware identification.

The server MUST respond as follows, depending on the validity of the client license.

Case 1: The client presents a valid permanent license that does not require an upgrade.

The server MUST send a Licensing Error Message with the error code STATUS_VALID_CLIENT and the state transition code ST_NO_TRANSITION. The licensing protocol is complete at this point.

Case 2: If the client presents a license that requires upgrading, that is:

  • A valid permanent license that is expired.

  • A valid permanent license that is about to expire (within seven days of its expiry).

  • A valid temporary license.

  • An invalid license.

The server MUST respond back with Server Platform Challenge (section 2.2.2.4) message to the client.