license: support CAL license

This patch simplifies the licensing code mutualizing encryption / decryption
routines. It also adds the support for client_info packet that allows to send a
previously saved CAL file.
This commit is contained in:
David Fort 2018-10-31 10:27:31 +01:00
parent 29d3fea3d7
commit b6e6575bf6
5 changed files with 581 additions and 254 deletions

View File

@ -2679,6 +2679,10 @@ int freerdp_client_settings_parse_command_line_arguments(rdpSettings* settings,
settings->DesktopOrientation = val;
}
CommandLineSwitchCase(arg, "old-license")
{
settings->OldLicenseBehaviour = TRUE;
}
CommandLineSwitchCase(arg, "scale")
{
unsigned long scaleFactor = strtoul(arg->Value, NULL, 0);

View File

@ -126,6 +126,7 @@ static COMMAND_LINE_ARGUMENT_A args[] =
{ "nsc", COMMAND_LINE_VALUE_FLAG, NULL, NULL, NULL, -1, "nscodec", "NSCodec support" },
{ "offscreen-cache", COMMAND_LINE_VALUE_BOOL, NULL, BoolValueTrue, NULL, -1, NULL, "offscreen bitmap cache" },
{ "orientation", COMMAND_LINE_VALUE_REQUIRED, "0|90|180|270", NULL, NULL, -1, NULL, "Orientation of display in degrees" },
{ "old-license", COMMAND_LINE_VALUE_BOOL, NULL, BoolValueFalse, NULL, -1, NULL, "Use the old license workflow (no CAL and hwId set to 0)"},
{ "p", COMMAND_LINE_VALUE_REQUIRED, "<password>", NULL, NULL, -1, NULL, "Password" },
{ "parallel", COMMAND_LINE_VALUE_OPTIONAL, "<name>[,<path>]", NULL, NULL, -1, NULL, "Redirect parallel device" },
{ "parent-window", COMMAND_LINE_VALUE_REQUIRED, "<window-id>", NULL, NULL, -1, NULL, "Parent window id" },

View File

@ -1156,7 +1156,8 @@ struct rdp_settings
ALIGN64 BOOL AuthenticationOnly; /* 1603 */
ALIGN64 BOOL CredentialsFromStdin; /* 1604 */
ALIGN64 BOOL UnmapButtons; /* 1605 */
UINT64 padding1664[1664 - 1606]; /* 1606 */
ALIGN64 BOOL OldLicenseBehaviour; /* 1606 */
UINT64 padding1664[1664 - 1607]; /* 1607 */
/* Names */
ALIGN64 char* ComputerName; /* 1664 */

File diff suppressed because it is too large Load Diff

View File

@ -196,6 +196,7 @@ struct rdp_license
LICENSE_BLOB* PlatformChallenge;
LICENSE_BLOB* EncryptedPremasterSecret;
LICENSE_BLOB* EncryptedPlatformChallenge;
LICENSE_BLOB *EncryptedPlatformChallengeResponse;
LICENSE_BLOB* EncryptedHardwareId;
SCOPE_LIST* ScopeList;
UINT32 PacketHeaderLength;