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.