CodeT Struct
Description
Holds the licensing information that is set using VLScgSetXXX APIs and passes the same to VLScgGenerateLicense API to generate the corresponding license string. Contains the decoded information from the license string as returned by VLScgDecodeLicense API.
Syntax
typedef struct { /* List of flags to be set by external callers: */ int code_type ; /* VLScg_SHORT_CODE/VLScg_LONG_CODE /VLScg_SHORT_NUMERIC_CODE */ int additive ; /* VLScg_ADDITIVE / VLScg_EXCLUSIVE / VLScg_AGGREGATE_LICENSE */ int client_server_lock_mode; /* VLScg_BOTH_NODE_LOCKED/ VLScg_FLOATING/ */ /* VLScg_DEMO_MODE/ VLScg_CLIENT_NODE_LOCKED */ int holding_crit ; /* Criterion for held licenses */ /* VLScg_HOLD_NONE/VLScg_HOLD_VENDOR/VLScg_HOLD_CODE*/ int sharing_crit ; /* Criterion for sharing of licenses */ /* VLScg_NO_SHARING/ VLScg_USER_SHARING/ */ /* VLScg_HOSTNAME_SHARING/ VLScg_XDISPLAY_SHARING */ /* VLScg_VENDOR_SHARING */ /* used as a team_criteria in case of capacity license */ /* VLScg_NO_TEAM/ VLScg_USER_BASED_TEAM/ */ /* VLScg_HOSTNAME_BASED_TEAM/ VLScg_XDISPLAY_BASED_TEAM */ /* VLScg_VENDOR_BASED_TEAM */ int server_locking_crit1[VLScg_MAX_NUM_SERVERS]; /* Server lock selector/criterion (group 1) */ /* Allow 2 hostid's per server */ int server_locking_crit2[VLScg_MAX_NUM_SERVERS]; /* Server lock selector/criterion (group 2) */ /* Allow 2 hostid's per server */ int client_locking_crit[VLScg_MAX_NUM_NL_CLIENTS]; /* Client lock selector/criterion */ /* Allow 1 hostid per client */ int standalone_flag; /* VLScg_NETWORK/VLScg_STANDALONE/VLScg_PERPETUAL */ int out_lic_type ; /* VLScg_ENCRYPTED/ VLScg_EXPANDED_READABLE/ */ /* VLScg_CONCISE_READABLE */ int clock_tamper_flag;/* VLScg_NO_CHECK_TAMPER/ VLScg_CHECK_TAMPER */ /* List of data fields to be set by external callers: */ char feature_name [VLScg_MAX_CODE_COMP_LEN+1]; char feature_version [VLScg_MAX_CODE_COMP_LEN+1]; int birth_day ; /* 1 - max day of the month (28-31) */ int birth_month ; /* 0 - 11 or JAN - DEC */ int birth_year ; /* 1998 to ... */ int death_day ; /* 1 - max day of the month (28-31) */ int death_month ; /* 0 - 11 or JAN - DEC */ int death_year ; /* 1998 to ... */ int num_servers ; /* Always 1 for single server application */ char server_lock_info1 [VLScg_MAX_NUM_SERVERS] [VLScg_MAX_SERVER_LOCK_INFO_LEN+1]; /* Stores information in ascii */ /* +1 needed for null termination */ char server_lock_info2 [VLScg_MAX_NUM_SERVERS] [VLScg_MAX_SERVER_LOCK_INFO_LEN+1]; /* Stores information in ascii */ /* +1 needed for null termination */ int num_nl_clients ; /* Number of nodelocked clients */ char nl_client_lock_info[VLScg_MAX_NUM_NL_CLIENTS] [VLScg_MAX_NL_CLIENT_INFO_LEN+1]; /* Stores information in ascii */ /* +1 needed for null termination */ unsigned num_keys[VLScg_MAX_NUM_FEATURES]; /* Number of concurrent keys */ unsigned soft_limit ; /* 0 to num_keys */ unsigned keys_per_node [VLScg_MAX_NUM_NL_CLIENTS]; int num_subnets ; /* 0 => site licensing disabled */ char site_lic_info [VLScg_MAX_NUM_SUBNETS][VLScg_MAX_SUBNET_INFO_LEN+1]; /* Stores information in binary */ /* +1 needed for null termination */ unsigned share_limit; /*share_limit/team_limit - Number of users/clients */ /* who can share a single license key */ /* used as a team_limit in case of capacity license */ int key_life_units ; /* Flag which determines lifetime least count */ #ifdef _V_LP64_ unsigned int key_lifetime; #else unsigned long key_lifetime; #endif /* absolute value in minutes */ int key_hold_units; /* Flag which determines heldtime least count */ #ifdef _V_LP64_ unsigned int key_holdtime; #else unsigned long key_holdtime; #endif /* absolute value in minutes */ int num_secrets ; /* Number of Challenge response secrets */ char secrets [VLScg_MAX_NUM_SECRETS][VLScg_MAX_SECRET_LEN+1]; /* Stores information in ascii */ /* +1 needed for null termination */ char vendor_info [VLScg_MAX_PRIVATE_VENINFO_BUFFER_LEN+1]; int licType ; /* Trial or Normal license type */ int trialDaysCount; /* Life of trial license. */ int use_auth_code; /* For multi-keys or short numeric codes */ int numeric_type; /* For short numeric codes, 0 - non-numeric */ /* 1 - general short numeric 2 - general numeric */ /* 10 and above specific type */ #ifdef _V_LP64_ int conversion_time; #else long conversion_time; #endif int isRedundant; int majority_rule; int isCommuter; #ifdef _V_LP64_ int commuter_max_checkout_days; #else long commuter_max_checkout_days; #endif /* Max days license can be checked out. 0=no limit */ int log_encrypt_level; /* For encryption level in the license code.*/ int elan_key_flag; /* Fields for internal use, or unused */ int vendor_code ; /* Internal use */ int version_num ; /* Internal - Version number */ int licensing_crit ; /* Internal - VLScg_USER_BASED */ #ifdef _V_LP64_ unsigned int meter_value; #else unsigned long meter_value ; /* Internal */ #endif /*Fields for multi_key for short numeric codegen version >=2 */ int num_features; /* number of features in case of multi key */ int key_type; /* Single key/Multi key for short numeric only */ /* Fields for capacity Licensing */ int capacity_flag; /* VLScg_CAPACITY_NONE/VLScg_CAPACITY_NON_POOLED /VLCScg_CAPACITY_POOLED */ int capacity_units; /* Flag which determines capacity least count */ #ifdef _V_LP64_ unsigned int capacity; #else unsigned long capacity; #endif /* The capacity of this license. In case of Pooled Capacity license, this capacity is for the whole of "num_keys". In case of Non-Pooled Capacity license, this capacity is per token of hard limit. */ int grace_period_flag; /* Must be VLScg_STANDARD_GRACE_PERIOD */ int grace_period_calendar_days; /* Max days license can be used in grace period */ int grace_period_elapsed_hours; /* Max hours license can be used in grace period */ int overdraft_flag; /* VLScg_NO_OVERDRAFT or VLScg_STANDARD_OVERDRAFT */ int overdraft_hours; /* Max hours overdraft license can be used. */ int overdraft_users; /* Simultaneous users allowed in overdraft */ int overdraft_users_isPercent; /* VLS_TRUE = Users field is percent of hard limit */ int local_request_lockcrit_flag; /* VLScg_LOCAL_REQUEST_LOCKCRIT_DEFINED = use the specified lockcrit fields below. Otherwise use defaults. These values are to be used by commuter license, perpetual licenses and grace period licenses. */ int local_request_lockcrit_required; /* Required items for local request locking. */ int local_request_lockcrit_float; /* Floating items for local request locking. */ int local_request_lockcrit_min_num; /* Total number of items must for local request locking. */ int trial_elapsed_hours; /* Trial usage hours */ int trial_execution_count; /* Trial Execution Count */ /* Public vendor info - to be included as plain text to license string */ char plain_vendor_info[VLScg_MAX_PUBLIC_VENINFOLEN+1]; vmDetectionFlagT vm_detection; /* V13 onwards only*/ #ifdef _V_LP64_ int structSz; #else long structSz; #endif /* License Birth and Expiration will now be extended to include hours and minutes - v16 onwards */ int birth_hours; /* 0 - 23 */ int birth_minutes; /* 0 - 59 */ int death_hours; /* 0 - 23 */ int death_minutes; /* 0 - 59 */ char eid[VLScg_MAX_EID_LEN]; /* Internal use only */ int pid; /* Internal use only */ int fid; /* Internal use only */ char aid[VLScg_MAX_AID_LEN]; /* Internal use only */ int cloud_usage_flag; /* Internal use only */ int lic_source; /* Internal use only */ unsigned char vendor_secret_blob[VLScg_MAX_VENDORBLOBLEN]; /* Internal use only */ Time64_T activation_birth_time; /* Internal use only */ Time64_T activation_expiry_time; /* Internal use only */ unsigned char vendor_secret_blob2[VLScg_MAX_VENDOR_BLOB_V2_LEN]; /* Internal use only */ char license_vendor_info[VLScg_MAX_LICENSE_VENINFO_BUFFER_LEN + VLScg_LICENSE_VENINFO_BUFFER_PAD_LEN];/* License vendor info. v19 onwards. Stores information in ascii */ Time64_T license_generation_time; /* Internal use only */ char license_id[VLScg_MAX_UUID_LEN]; /* Internal use only */ char customer_id[VLScg_MAX_CUSTOMER_ID_LEN]; /* Internal use only */ unsigned user_account_limit; /* For CloudLM lic only*/ } codeT;
Member | Description |
---|---|
code_type |
Allowed values are: >VLScg_SHORT_CODE >VLScg_LONG_CODE >VLScg_SHORT_NUMERIC_CODE |
additive |
Can be set to: >VLScg_ADDITIVE: Additive license >VLScg_EXCLUSIVE: Exclusive license >VLScg_AGGREGATE_LICENSE: Aggregate license |
client_server_lock_mode |
Locking modes can be: >VLScg_FLOATING: License Manager is locked. Denotes the life of trial license in days >VLScg_BOTH_NODE_LOCKED: Clients and License Manager are locked > VLScg_DEMO_MODE: Demo license (no locking) > VLScg_CLIENT_NODE_LOCKED: Only clients are locked |
holding_crit |
Criterion for held licenses can be: >VLScg_HOLD_NONE: Held licenses not allowed >VLScg_HOLD_VENDOR: Client specifies hold time >VLScg_HOLD_CODE: Lic code specifies hold time |
sharing_crit |
Criterion for sharing of non-capacity licenses, can be: >VLScg_NO_SHARING >VLScg_USER_SHARING >VLScg_HOSTNAME_SHARING >VLScg_XDISPLAY_SHARING >VLScg_VENDOR_SHARING Criterion for sharing of capacity licenses, can be: >VLScg_NO_TEAM >VLScg_USER_BASED_TEAM >VLScg_HOSTNAME_BASED_TEAM >VLScg_XDISPLAY_BASED_TEAM >VLScg_VENDOR_BASED_TEAM |
server_locking_crit1 |
>License Manager locking code criteria (group 1) >Allows 2 host IDs per License Manager |
server_locking_crit2 |
>License Manager locking code criteria (group 2) >Allow 2 host IDs per License Manager |
client_locking_crit |
>Client locking code criteria >Allows 1 host ID per client |
standalone_flag |
Specifies if the license is standalone, network, or repository. |
out_lic_type |
Specifies if the license is >Encrypted >Expanded readable >Concise readable |
clock_tamper_flag |
If set, then the license does not allow time tampering. |
feature_name |
Name of the feature. |
feature_version |
Version of the feature. |
birth_minutes |
License start minutes (0-59). Use this field to specify the license start time (in minutes) while generating a license. By default, these optional fields are set to "NIL".
This field is relevant for version 16 (and above) licenses. If this field is set, the time and date values are interpreted as per the Coordinated Universal Time (UTC) standard. Developers can use the VLScgSetLicBirthMinutes API to set the license start time. |
birth_hours |
License start hours (0 - 23) Use this field to specify the start time (in hours) while generating a license. By default, these optional fields are set to "NIL".
This field is relevant for version 16 (and above) licenses. If this field is set, the time and date values are interpreted as per the Coordinated Universal Time (UTC) standard. Developers can use the VLScgSetLicBirthHours API to set the license start time (in hours). |
birth_day |
Sets start date (day of month) of the license. |
birth_month |
Sets start date (month) of the license. |
birth_year | 2006 to.....Sets start date (year) of the license. |
death_minutes |
License expiration minutes (0-59). Use this field to specify the license end time (in minutes) while generating a license. By default, this optional field is set to "NIL". This field is relevant for version 16 (and above) licenses. If this field is set, the time and date values are interpreted as per the Coordinated Universal Time (UTC) standard. Developers can use the VLScgSetLicExpirationHours API to set the license end time (in minutes). |
death_hours |
License expiration hours (0 - 23). Use this field to specify the license end time (in hours) while generating a license. By default, this optional field is set to "NIL". This field is relevant for version 16 (and above) licenses. If this field is set, the time and date values are interpreted as per the Coordinated Universal Time (UTC) standard. Developers can use the VLScgSetLicExpirationHours API to set the license end time (in hours). |
death_day |
Sets expiration date (day of month) of the license. |
death_month |
0 - 11 or JAN - DEC |
death_year |
1998 to.......; minimum death year can be 1998. |
num_servers |
Identifies the number of License Managers. Always 1 for single License Manager application and maximum 11 for redundant License Manager application. |
server_lock_info1 |
Sets the value of the locking code (<= 8-character hexadecimal string (32 bit numeric * value), and optionally preceded by '0x'). |
server_lock_info2 |
Sets the value of the locking code (<= 8-character hexadecimal string (32 bit numeric * value), and optionally preceded by '0x'). |
num_nl_clients |
Number of node-locked clients, maximum of 7 node-locked clients allowed. |
nl_client_lock_info |
Sets the value of the locking code (<= 8-character hexadecimal string (32 bit numeric * value), optionally preceded by '0x'). |
num_keys |
Number of concurrent keys. |
soft_limit | Total soft limit (for alerts) on the number of concurrent users of this feature. |
keys_per_node |
Number of keys alloted to each client for a network mode license. |
num_subnets |
The number of subnet specifications provided for the site. |
site_lic_info |
Specifies the number of subnets provided for the site. |
share_limit/team-limit |
>Number of clients/users who can share a single license key. >Used as team limit in case of capacity license. |
key_life_units |
Determines lifetime least count. Lifetime specification units of keys from 0 to 3. The semantics are: 0: Multiple of 1 minute(s), maximum 15 minutes. 1: Multiple of 10 minute(s), maximum 150 minutes. 2: Multiple of 30 minute(s), maximum 450 minutes 3: Multiple of 60 minute(s), maximum 900 minutes |
key_lifetime |
The license lifetime in seconds. Defines the absolute value in minutes : Maximum range depends on key_life_units. |
key_hold_units |
Flag which determines hold time least count. The hold time specification units of keys are from 0 to 3. The semantics are: "0" - Multiple of 1 minute(s), maximum 15 minutes. "1" - Multiple of 10 minute(s), maximum 150 minutes. "2" - Multiple of 30 minute(s), maximum 450 minutes. "3" - Multiple of 60 minute(s), maximum 900 minutes. |
key_holdtime |
Maximum range depends on the key_hold_units. |
num_secrets |
Number of Challenge response secrets. |
secrets |
Challenge-response secrets. |
vendor_info |
The vendor-defined information string. The maximum length of the string can be up to 2000 characters. |
licType |
Trial or Normal license type. |
trialDaysCount |
Total number of days after which license will expire. |
use_auth_code |
For multi-keys or short numeric codes. |
numeric_type |
For short numeric codes >0 - non-numeric >1 - general short numeric >2 - general numeric >10 and above specific type for codegen_version=7 |
conversion_time | This field is set internally by Sentinel products. Setting a value for this field may produce unexpected results. |
isRedundant |
Validates if the license is actually redundant. |
majority_rule |
Checks whether majority rule is on or off. |
isCommuter |
Enable/disable commuter license. |
commuter_max_checkout_days |
The maximum number of days a commuter license can be checked out for. It can be: >A value between 1 to 1827 days for long licenses. >A value between 1 to 60 days for short licenses. >Zero for unlimited check-out (up to the license expiration) |
log_encrypt_level |
For encryption level in the license code. |
elan_key_flag | This field is set internally by Sentinel products. Setting a value for this field can produce unexpected results. |
vendor_code |
Vendor identification code. |
version_num |
The license version number, such as version 11, 12, 13, 14, 15,16, 17 and 18 licenses, that maps to Sentinel RMS SDK versions. |
licensing_crit | This field is set internally by Sentinel products. Setting a value for this field can produce unexpected results. |
meter_value |
Fields for multi_key for short numeric codegen_version >=2. |
num_features |
Number of features in case of multi key. |
key_type |
Single key/Multi key for short numeric only. |
capacity_flag |
Specifies if the license is a capacity or non-capacity license. Values can be: >VLScg_CAPACITY_NONE >VLScg_CAPACITY_NON_POOLED >VLScg_CAPACITY_POOLED |
capacity_units |
Determines capacity least count. |
capacity |
The capacity of this license. |
grace_period_flag |
A flag that decides whether grace period for a license will be provided or not. It can be any of the following constants: >VLScg_NO_GRACE_PERIOD - grace period not allowed (default) >VLScg_STANDARD_GRACE_PERIOD - grace period allowed |
grace_period_calendar_days |
The number of days the grace period will last for. It can be a value between 1 to 180 days. The default value is 2 days. |
grace_period_elasped_hours |
The number of hours the grace period will last for. It can be a value between 1 to 1440 hours. The default value is 20 hours. |
overdraft_flag |
Not supported. |
overdraft_hours |
Not supported. |
overdraft_users |
Not supported. |
overdraft_users_isPercent |
Not supported. |
local_request_lockcrit_flag |
The flag that sets the local license request locking criteria as: >VLScg_LOCAL_REQUEST_LOCKCRIT_USEDEFAULT - Sets local_request_lockcrit_required to disk ID (VLS_LOCK_DISK_ID) local_request_lockcrit_float to 0, and local_request_lockcrit_min_num to 1. This is the default setting. >VLS_LOCAL_REQUEST_LOCKCRIT_DEFINED - Sets local_request_lockcrit_required to a user-defined value. |
local_request_lockcrit_required |
The necessary number of locking criteria that must be met for making the licenses available to a local client. |
local_request_lockcrit_float |
The desired number of locking criteria that must be met for making the licenses available to a local client. |
local_request_lockcrit_min_num |
The minimum number of locking criteria that must be met for making the licenses available to a local client. For example, the “required” locking criteria can be disk ID, the “floating” criteria can be Ethernet card and CID key, and the “minimum” criteria can be any two of the above. |
eid | This field is set for internal use. Setting a value for this field may produce unexpected results. |
pid | This field is set internally by Sentinel products. Setting a value for this field may produce unexpected results. |
fid | This field is set internally by Sentinel products. Setting a value for this field may produce unexpected results. |
aid | This field is set internally by Sentinel products. Setting a value for this field may produce unexpected results. |
cloud_usage_flag |
This field determines if the Cloud-based usage data is being generated or not. The possible values are: > 0 - The Cloud-based usage data is not generated. > 1 - The Cloud-based usage data is being generated. NOTE Default value is 0. |
lic_source | This field is set internally by Sentinel products. Setting a value for this field may produce unexpected results. |
vendor_secret_blob | This field is set internally by Sentinel products. Setting a value for this field may produce unexpected results. |
activation_birth_time |
This field is used by SCL-Add-on for RMS for storing the entitlement start date and time. Notes: >This field is relevant for version 17 (and above) licenses. >You can retrieve the value of this field using VLSgetFeatureinfo or VLSgetLicenseInfo API. >Use the sntl_licensing_get_info API to retrieve the entitlement start date and time. >For license versions v16 (and earlier), the default value (0) will be returned as the value of this field.
|
activation_expiry_time |
This field is used by SCL-Add-on for RMS for storing the Entitlement expiration date and time. Notes >This field is relevant for version 17 (and above) licenses. >You can retrieve the value of this field using VLSgetFeatureinfo or VLSgetLicenseInfo API. >Use the sntl_licensing_get_info API to retrieve the entitlement expiry date and time. >For license versions v16 (and earlier), the default value (0) will be returned as the value of this field. |
trial_elapsed_hours |
The trial hours specified for a trial license. |
plain_vendor_info |
The public vendor information. The maximum length of the string can be up to 395 characters. |
vm_detection |
The flag to allow or deny the grant of a license token in case the License Manager is found running on a virtual machine. It can have the following values: >VLScg_VM_DISALLOWED_STRING - Denies the grant of a license. >VLScg_VM_ALLOWED_STRING - Allows the grant of a license. |
structSz |
The codeT structure size to identify its version in libraries beyond 8.4.0. The structSz needs to be set by the caller. **WARNING** This member is added in the 8.4.0 release. However, to ensure compatibility in the subsequent releases, you must fill up this member with the size of CodeT. Else, upgrade to the license generation DLL will fail. |
vendor_secret_blob2 | This field is set internally by Sentinel products. Setting a value for this field can produce unexpected results. |
license_vendor_info | This field is used to specify different vendor info at the time of license aggregation (maximum of 512 characters). It is applicable to version 19 and above licenses. |
license_generation_time |
This field is set internally by Sentinel products. Setting a value for this field may produce unexpected results. It is applicable to version 19 and above licenses. |
license_id | This field is set for internal use. Setting a value for this field may produce unexpected results. |
customer_id | This field is set for internal use. Setting a value for this field may produce unexpected results. |
user_account_limit | This field is set for named user licensing in Connected (Cloud LM) mode only. Introduced since RMS license version 23. |