VLSverifyRevocationTicketExt2
Syntax
LS_STATUS_CODE VLSverifyRevocationTicketExt2 (void* pvOriginalRequest, unsigned long ulStructSize, unsigned char *pucPermissionTicket, unsigned long ulPermissionTicketLength, unsigned long ulNumRevocationTickets PVRT_VERIFY_INFO_REDUNDANT_LIC pVerifyInfo, unsigned long *pulNumRTsAbsent, PVRT_LOCK_INFO pLockInfoOfAbsentRTs, void *unused);
Argument |
Description |
pvOriginalRequest |
A void pointer to the original request structure i.e. the permission ticket structure. When the permission ticket is passed as a structure, it can be any of the following: For permission tickets, other than the following, VLScg_PT_VERSION_UNSUPPORTED error is returned. >VPT_REQUEST_EXT2 - This structure allows specifying the locking information of one machine. >VPT_REQUEST_EXT3 - This structure, introduced since v8.5.5, allows specifying locking information of more than one machine. The ulLockCodeSelector and pucLockInfo fields are defined as array in VPT_REQUEST_EXT3 structure. The maximum array size can be as defined by the macro MAX_REDUNDANT_SERVERS_IN_PT. This is useful in scenarios when license revocation is desired on License Managers in the redundant pool. |
ulStructSize | The size of the pvOriginalRequest structure, if any being passed. |
pucPermissionTicket |
A pointer to the permission ticket (in binary format). Specify NULL if passing permission ticket as the pvOriginalRequest structure. |
ulPermissionTicketLength |
The length of the permission ticket passed in binary format. Specify 0 if passing permission ticket as the pvOriginalRequest structure. |
ulNumRevocationTickets |
The number of Revocation Tickets being passed in the pVerifyInfo array. When used with the VPT_REQUEST_EXT3 structure, the value can be between 1 and MAX_REDUNDANT_SERVERS_IN_PT. When used with the VPT_REQUEST_EXT2 structure, set the numRevocationTickets value as 1. |
pVerifyInfo |
An array of VRT_VERIFY_INFO_REDUNDANT_LIC structures. Each member of this array represents the revocation information for a particular License Manager. The fields present in the VRT_VERIFY_INFO_REDUNDANT_LIC structure also contain the error information-related to the verification of this revocation ticket. It is the user’s responsibility to allocate memory for this parameter as per the numRevocationTickets value and fill up the IN fields of the structures (in the array). This parameter cannot be NULL. |
pulNumRTsAbsent |
The number of revocation tickets missing against the permission ticket. It cannot be NULL—its value should be greater than 0 and less than MAX_REDUNDANT_SERVERS_IN_PT. >First use pulNumRTsAbsent as OUT parameter. Here pLockInfoOfAbsentRTs must be set as NULL.On return, the parameter will contain the actual number of missing revocation tickets. To obtain the locking information of the missing revocation tickets, allocate memory to pLockInfoOfAbsentRTs according to the value of pulNumRTsAbsent. >Now, call the API again, setting pulNumRTsAbsent as IN parameter. The locking information of missing revocation tickets will be returned in pLockInfoOfAbsentRTs. |
pLockInfoOfAbsentRTs |
An array of the locking information structure of the missing revocation tickets. It is the user’s responsibility to allocate memory for this parameter. The maximum possible array size is MAX_REDUNDANT_SERVERS_IN_PT. |
unused | Reserved for future use. |
Description
The API verifies the revocation tickets against the permission tickets generated using VLSgeneratePermissionTicketExt2 API. This function is an extended version of VLSverifyRevocationTicketExt.
The API provides you the flexibility to pass the permission ticket as a structure or directly in the format it is generated (binary format).
Refer to the sample program “VerfiyRevoke” for better understanding of verification of revocation tickets generated for redundant licenses.
The API does not verify the information contained in pucVendorDefined (the custom information that you can specify for each operation). However, it does verify the pucCustomDefined (the custom information that you can specify for a permission ticket).
Returns
The status code LS_SUCCESS is returned, if revocation ticket is verified successfully. Otherwise, it will return the following error codes or add them to the ulErrorCode member of VRT_VERIFY_ERROR_LINE in the corresponding structure of the pVerifyInfo array:
Error Code | Description |
VLScg_PT_VERSION_UNSUPPORTED | The API for verification of revoked licenses does not support older permission tickets—that are not generated using the VLSgeneratePermissionTicketExt2 API. |
VLScg_MISSING_RTS | The number of valid revocation tickets passed in the API is lesser than the number of locking codes contained in the permission ticket. |
VLScg_RT_PARAMETERS_ERROR |
Invalid rehost parameters such as: >numRevocationTickets is not between 1 and MAX_REDUNDANT_SERVERS_IN_PT. >pVerifyInfo is NULL. >When used with the VPT_REQUEST_EXT2 structure, the numRevocationTickets value is other than 1. >pulNumRTsAbsent is NULL. >pulNumRTsAbsent is not between 0 and MAX_REDUNDANT_SERVERS_IN_PT. |
VLScg_RT_ALLOCATE_MEMORY_FAILURE |
Failure in memory allocation. |
VLScg_RT_VERSION_MISMATCH |
Revocation ticket version mismatch. |
VLScg_RT_REHOST_LINE_CORRUPT |
Revocation ticket line is corrupt. |
VLScg_RT_TRANSACTION_ID_MISMATCH |
Transaction ID in revocation ticket is different from in request. |
VLScg_RT_LOCK_CODE_MISMATCH |
Lock code in revocation ticket is different from in request. |
VLScg_RT_REQUESTED_ACTION_NOT_PERFORMED |
Actions requested are not performed. |
VLScg_RT_NON_REQUESTED_ACTION_PERFORMED |
Action performed was not requested. |
VLScg_RT_ACTION_STATUS_NOT_SUCCESS |
Requested action failed. |
VLScg_RT_REQUEST_EMPTY |
Request is empty. |
VLScg_RT_REQUEST_LINE_INVALID |
Requested line is invalid. |
VLScg_RT_REHOST_TICKET_INVALID_TLV_STRUCT |
Revocation ticket is an invalid TLV (Tag-Length-Value) structure. |
VLScg_RT_REHOST_TAG_MISSING |
Rehost tag is missing in the revocation ticket. |
VLScg_RT_VERSION_TAG_MISSING |
Version tag is missing in the revocation ticket. |
VLScg_RT_TRANSACTION_ID_TAG_MISSING |
Transaction ID tag is missing in the revocation ticket. |
VLScg_RT_LOCK_SELECTOR_TAG_MISSING |
Lock selector tag is missing in the revocation ticket. |
VLScg_RT_LOCK_SELECTOR_MISMATCH |
Lock selector is different from in request. |
VLScg_RT_LOCK_CODE_TAG_MISSING |
Lock code is different from in request. |
VLScg_RT_HASH_TAG_MISSING |
Hash tag is missing in the revocation ticket. |
VLScg_RT_VERIFY_SINGLE_ERROR |
Only one error in revocation ticket. Verify if the operation type is specified as NULL. |
VLScg_RT_VERIFY_MULTIPLE_ERRORS |
Multiple errors in revocation ticket. |
VLScg_RT_TIME_STAMP_MISMATCH |
Mismatch in time stamp. |
VLScg_RT_TIME_STAMP_TAG_MISSING |
Mismatch in time stamp tag. |
VLScg_RT_CORRUPT_ORIG_REQ | The permission ticket provided for verification is corrupt. |
VLScg_RT_CUSTOM_DATA_TAG_MISSING | The custom defined data tag is not found in the revocation ticket. |
VLScg_RT_CUSTOM_DATA_MISMATCH | The custom defined data included in the permission ticket and revocation ticket does not match. |
VLScg_RT_REVOCATION_TYPE_MISMATCH | Either standalone revoke request is provided to verify with a network revocation ticket, or vice versa. |