4.6 WFS_CMD_PIN_CREATE_OFFSET

Description This function is used to generate a PIN Offset that is used to verify PINs using the WFS_CMD_PIN_LOCAL_DES execute command. The PIN offset is computed by combining validation data with the keypad entered PIN. This command will clear the PIN

Input Param LPWFSPINCREATEOFFSET lpPINOffset;

typedef struct _wfs_pin_create_offset
{
LPSTR lpsValidationData;
BYTE bPadding;
USHORT usMaxPIN;
USHORT usValDigits;
LPSTR lpsKey;
LPWFSXDATA lpxKeyEncKey;
LPSTR lpsDecTable;
} WFSPINCREATEOFFSET, * LPWFSPINCREATEOFFSET;

lpsValidationData
Validation data

bPadding
Specifies the padding character for validation data.

usMaxPIN
Maximum number of PIN digits to be used for PIN Offset creation.

usValDigits
Number of Validation Data digits to be used for PIN Offset creation.

lpsKey
Name of the validation key

lpxKeyEncKey
If NULL, lpsKey is used directly in PIN Offset creation. Otherwise, lpsKey is used to decrypt the encrypted key passed in lpxKeyEncKey and the result is used in PIN Offset creation.

lpsDecTable
ASCII decimalization table (16 character string containing characters ‘0’ to ‘9’). Used to convert the hexadecimal digits (0x0 to 0xF) of the encrypted validation data to decimal digits (0x0 to 0x9).

Output Param LPSTR lpsOffset;

lpsOffset
Computed PIN Offset.

Error Codes The following additional error codes can be generated by this command:

Value Meaning

WFS_ERR_PIN_KEYNOTFOUND The specified key was not found.

WFS_ERR_PIN_KEYNOVALUE The specified key is not loaded.

WFS_ERR_PIN_USEVIOLATION The specified use is not supported by this key.

WFS_ERR_PIN_ACCESSDENIED The encryption module is either not initialized or not ready for any vendor specific reason.

WFS_ERR_PIN_NOPIN PIN has not been entered or has been cleared.

WFS_ERR_PIN_NOTALLOWED PIN entered by the user is not allowed.

Events The following additional events can be generated by this command:

Value Meaning

WFS_SRVE_PIN_ILLEGAL_KEY_ACCESS An error occured accessing an encryption key.

Comments The list of ‘forbidden’ PINs (values that cannot be chosen as a PIN, e.g. 1111) is configured in the device in a vendor dependent way during the configuration of the system.