NXP Reader Library  v17.1.0.2535
Commands_Optional

Describes the Optional commands of ICode products. More...

Collaboration diagram for Commands_Optional:

Modules

 Defines
 Description of options to be used for Optional command sets.
 

Functions

phStatus_t phalICode_ReadSingleBlock (void *pDataParams, uint8_t bOption, uint8_t bBlockNo, uint8_t **ppData, uint16_t *pDataLen)
 Performs a Single block read command. More...
 
phStatus_t phalICode_WriteSingleBlock (void *pDataParams, uint8_t bOption, uint8_t bBlockNo, uint8_t *pData, uint8_t bDataLen)
 Performs a Single block write command. More...
 
phStatus_t phalICode_LockBlock (void *pDataParams, uint8_t bOption, uint8_t bBlockNo)
 Performs a Lock block command. More...
 
phStatus_t phalICode_ReadMultipleBlocks (void *pDataParams, uint8_t bOption, uint8_t bBlockNo, uint8_t bNumBlocks, uint8_t *pData, uint16_t *pDataLen)
 Performs a Multiple block read command. More...
 
phStatus_t phalICode_Select (void *pDataParams)
 Performs a Select command. More...
 
phStatus_t phalICode_ResetToReady (void *pDataParams)
 Performs a ResetToReady command. More...
 
phStatus_t phalICode_WriteAFI (void *pDataParams, uint8_t bOption, uint8_t bAfi)
 Performs a WriteAFI command. More...
 
phStatus_t phalICode_LockAFI (void *pDataParams, uint8_t bOption)
 Performs a LockAFI command. More...
 
phStatus_t phalICode_WriteDSFID (void *pDataParams, uint8_t bOption, uint8_t bDsfid)
 Performs WriteDSFID command. More...
 
phStatus_t phalICode_LockDSFID (void *pDataParams, uint8_t bOption)
 Performs LockDSFID command. More...
 
phStatus_t phalICode_GetSystemInformation (void *pDataParams, uint8_t **ppSystemInfo, uint16_t *pSystemInfoLen)
 Performs GetSystemInformation command. More...
 
phStatus_t phalICode_GetMultipleBlockSecurityStatus (void *pDataParams, uint8_t bBlockNo, uint8_t bNoOfBlocks, uint8_t *pStatus, uint16_t *pStatusLen)
 Performs GetMultipleBlockSecurityStatus. More...
 
phStatus_t phalICode_FastReadMultipleBlocks (void *pDataParams, uint8_t bOption, uint8_t bBlockNo, uint8_t bNumBlocks, uint8_t *pData, uint16_t *pDataLen)
 Performs a Multiple block fast read command. More...
 
phStatus_t phalICode_ExtendedReadSingleBlock (void *pDataParams, uint8_t bOption, uint16_t wBlockNo, uint8_t **ppData, uint16_t *pDataLen)
 Performs a Extended Single block read command. More...
 
phStatus_t phalICode_ExtendedWriteSingleBlock (void *pDataParams, uint8_t bOption, uint16_t wBlockNo, uint8_t *pData, uint8_t bDataLen)
 Performs a Extended Single block Write command. More...
 
phStatus_t phalICode_ExtendedLockBlock (void *pDataParams, uint8_t bOption, uint16_t wBlockNo)
 Performs a Extended Lock block command. More...
 
phStatus_t phalICode_ExtendedReadMultipleBlocks (void *pDataParams, uint8_t bOption, uint16_t wBlockNo, uint16_t wNumBlocks, uint8_t *pData, uint16_t *pDataLen)
 Performs a Extended Multiple block read command. More...
 
phStatus_t phalICode_AuthenticateTAM (void *pDataParams, uint16_t wOption, uint8_t bAuthType, uint8_t bKeyNo, uint8_t bKeyVer, uint8_t bKeyID_CertNum, uint8_t *pDivInput, uint8_t bDivLen, uint8_t *pChallenge, uint16_t wChallengeLen, uint8_t *pAddInfo, uint16_t wAddInfoLen, uint8_t **ppResponse, uint16_t *pRespLen)
 Performs TAM authentication with the tag. More...
 
phStatus_t phalICode_AuthenticateTAM1 (void *pDataParams, uint8_t bOption, uint8_t bKeyNo, uint8_t bKeyVer, uint8_t bKeyNoCard, uint8_t *pDivInput, uint8_t bDivLen)
 Performs TAM1 authentication with the tag. More...
 
phStatus_t phalICode_AuthenticateTAM2 (void *pDataParams, uint8_t bOption, uint8_t bKeyNo, uint8_t bKeyVer, uint8_t bKeyNoCard, uint8_t *pDivInput, uint8_t bDivLen, uint8_t bBlockSize, uint8_t bBlockCount, uint8_t bProfile, uint8_t bProtMode, uint16_t wOffset, uint8_t *pCustomData, uint16_t *pCustomDataLen)
 Performs TAM-2 authentication with the tag. More...
 
phStatus_t phalICode_AuthenticateMAM (void *pDataParams, uint8_t bOption, uint8_t bKeyNo, uint8_t bKeyVer, uint8_t bKeyNoCard, uint8_t bPurposeMAM2, uint8_t *pDivInput, uint8_t bDivLen)
 Performs MAM authentication with the tag. More...
 
phStatus_t phalICode_WriteCertificate (void *pDataParams, uint8_t bOption, uint8_t bCertNo, uint16_t wWordPtr, uint8_t *pCertificate, uint8_t bCertLen)
 Performs Write Certificate with the tag. More...
 
phStatus_t phalICode_ReadCertificate (void *pDataParams, uint8_t bCertNo, uint16_t wWordPtr, uint16_t wWordCount, uint8_t **ppCertificate, uint16_t *pCertLen)
 Performs Read Certificate with the tag. More...
 
phStatus_t phalICode_Challenge (void *pDataParams, uint16_t wOption, uint8_t bChallengeType, uint8_t bKeyID_CertNum, uint8_t *pChallenge, uint16_t wChallengeLen)
 Performs tag authentication with the tag. More...
 
phStatus_t phalICode_ReadBuffer (void *pDataParams, uint8_t bVerify, uint8_t bKeyNo, uint8_t bKeyVer, uint8_t **ppResponse, uint16_t *pRespLen)
 Reads the crypto calculation result of previous Challenge command. More...
 
phStatus_t phalICode_ExtendedGetSystemInformation (void *pDataParams, uint8_t bInfoParams, uint8_t **ppSystemInfo, uint16_t *pSystemInfoLen)
 Performs ExtendedGetSystemInformation command. More...
 
phStatus_t phalICode_ExtendedGetMultipleBlockSecurityStatus (void *pDataParams, uint16_t wBlockNo, uint16_t wNoOfBlocks, uint8_t *pStatus, uint16_t *pStatusLen)
 Performs ExtendedGetMultipleBlockSecurityStatus. More...
 
phStatus_t phalICode_ExtendedFastReadMultipleBlocks (void *pDataParams, uint8_t bOption, uint16_t wBlockNo, uint16_t wNumBlocks, uint8_t *pData, uint16_t *pDataLen)
 Performs a Extended Multiple block fast read command. More...
 

Detailed Description

Describes the Optional commands of ICode products.

Function Documentation

◆ phalICode_ReadSingleBlock()

phStatus_t phalICode_ReadSingleBlock ( void *  pDataParams,
uint8_t  bOption,
uint8_t  bBlockNo,
uint8_t **  ppData,
uint16_t pDataLen 
)

Performs a Single block read command.

When receiving the Read Single Block command, the VICC shall read the requested block and send back its value in the response.

Flag can be set using SetConfig utility interface.

Returns
Status code
Return values
PH_ERR_SUCCESSOperation successful.
PH_ERR_INVALID_DATA_PARAMSIf DataParams is null.
PH_ERR_INVALID_PARAMETER
  • If the buffers are null.
  • For the option values that are not supported.
XXXX
  • Depending on status codes return by PICC.
  • Other Depending on implementation and underlying component.
Parameters
[in]pDataParams[In] Pointer to this layers parameter structure.
[in]bOption[In] Option flag. Supported values are,
[in]bBlockNo[In] Block number from where the data to be read.
[out]ppData[Out] Information received from VICC
  • If PHAL_ICODE_OPTION_OFF, block Security Status information is not available. Only block data is available. Format will be 4 byte data
  • If PHAL_ICODE_OPTION_ON, both block Security Status information and Block Data is available. Format of the response will be 1 byte Status + 4 byte data.
[out]pDataLen[Out] Length of bytes available in ppData buffer.

◆ phalICode_WriteSingleBlock()

phStatus_t phalICode_WriteSingleBlock ( void *  pDataParams,
uint8_t  bOption,
uint8_t  bBlockNo,
uint8_t pData,
uint8_t  bDataLen 
)

Performs a Single block write command.

When receiving the Write single block command, the VICC shall write the requested block with the data contained in the request and report the success of the operation in the response.

Flag can be set using SetConfig utility interface.

Returns
Status code
Return values
PH_ERR_SUCCESSOperation successful.
PH_ERR_INVALID_DATA_PARAMSIf DataParams is null.
PH_ERR_INVALID_PARAMETER
  • If the buffers are null.
  • For the option values that are not supported.
XXXX
  • Depending on status codes return by PICC.
  • Other Depending on implementation and underlying component.
Parameters
[in]pDataParams[In] Pointer to this layers parameter structure.
[in]bOption[In] Option flag, Supported values are,
  • If PHAL_ICODE_OPTION_OFF, the VICC shall return its response when it has completed the write operation starting after t1nom [4352/fc (320,9 us)] + a multiple of 4096/fc (302 us) with a total tolerance of ±32/fc and latest after 20 ms upon detection of the rising edge of the EOF of the VCD request.
  • If PHAL_ICODE_OPTION_ON, the VICC shall wait for the reception of an EOF from the VCD and upon such reception shall return its response.
[in]bBlockNo[In] Block number to which the data should be written.
[in]pData[In] Information to be written to the specified block number.
[in]bDataLen[In] Length of bytes available in pData buffer.

◆ phalICode_LockBlock()

phStatus_t phalICode_LockBlock ( void *  pDataParams,
uint8_t  bOption,
uint8_t  bBlockNo 
)

Performs a Lock block command.

When receiving the Lock block command, the VICC shall lock permanently the requested block.

Flag can be set using SetConfig utility interface.

Returns
Status code
Return values
PH_ERR_SUCCESSOperation successful.
PH_ERR_INVALID_DATA_PARAMSIf DataParams is null.
PH_ERR_INVALID_PARAMETERFor the option values that are not supported.
XXXX
  • Depending on status codes return by PICC.
  • Other Depending on implementation and underlying component.
Parameters
[in]pDataParams[In] Pointer to this layers parameter structure.
[in]bOption[In] Option flag, Supported values are,
  • If PHAL_ICODE_OPTION_OFF, the VICC shall return its response when it has completed the lock operation starting after t1nom [4352/fc (320,9 us)] + a multiple of 4096/fc (302 us) with a total tolerance of ±32/fc and latest after 20 ms upon detection of the rising edge of the EOF of the VCD request.
  • If PHAL_ICODE_OPTION_ON, the VICC shall wait for the reception of an EOF from the VCD and upon such reception shall return its response.
[in]bBlockNo[In] Block number which should be locked.

◆ phalICode_ReadMultipleBlocks()

phStatus_t phalICode_ReadMultipleBlocks ( void *  pDataParams,
uint8_t  bOption,
uint8_t  bBlockNo,
uint8_t  bNumBlocks,
uint8_t pData,
uint16_t pDataLen 
)

Performs a Multiple block read command.

When receiving the Read Multiple Block command, the VICC shall read the requested block(s) and send back its value in the response.

Flag can be set using SetConfig utility interface. Note: The memory should be created and sent to the pData buffer.

Returns
Status code
Return values
PH_ERR_SUCCESSOperation successful.
PH_ERR_INVALID_DATA_PARAMSIf DataParams is null.
PH_ERR_INVALID_PARAMETER
  • If the buffers are null.
  • For the option values that are not supported.
XXXX
  • Depending on status codes return by PICC.
  • Other Depending on implementation and underlying component.
Parameters
[in]pDataParams[In] Pointer to this layers parameter structure.
[in]bOption[In] Option flag. Supported values are,
[in]bBlockNo[In] Block number from where the data to be read.
[in]bNumBlocks[In] Total number of block to read.
[out]pData[Out] Information received from VICC
  • If PHAL_ICODE_OPTION_OFF, Block Security Status information is not available. Only block data is available. Format will be 4 byte data 1, 4 byte data 2, ... 4 byte data N
  • If PHAL_ICODE_OPTION_ON, both Block Security Status information and Block Data is available. Format of the response will be Status 1 + 4 byte data 1, Status 2 + 4 byte data 2, ... Status N + 4 byte data N, Where 1, 2 ... N is the block number.
[out]pDataLen[Out] Length of bytes available in pData buffer.

◆ phalICode_Select()

phStatus_t phalICode_Select ( void *  pDataParams)

Performs a Select command.

When receiving the Select command,

  • If the UID is equal to its own UID, the VICC shall enter the selected state and shall send a response.
  • If it is different, the VICC shall return to the Ready state and shall not send a response.The Select command shall always be executed in Addressed mode. (The Select_flag is set to 0. The Address_flag is set to 1.)

Flag can be set using SetConfig utility interface.

Returns
Status code
Return values
PH_ERR_SUCCESSOperation successful.
PH_ERR_INVALID_DATA_PARAMSIf DataParams is null.
XXXX
  • Depending on status codes return by PICC.
  • Other Depending on implementation and underlying component.
Parameters
[in]pDataParams[In] Pointer to this layers parameter structure.

◆ phalICode_ResetToReady()

phStatus_t phalICode_ResetToReady ( void *  pDataParams)

Performs a ResetToReady command.

When receiving a Reset to ready command, the VICC shall return to the Ready state.

Flag can be set using SetConfig utility interface.

Returns
Status code
Return values
PH_ERR_SUCCESSOperation successful.
PH_ERR_INVALID_DATA_PARAMSIf DataParams is null.
XXXX
  • Depending on status codes return by PICC.
  • Other Depending on implementation and underlying component.
Parameters
[in]pDataParams[In] Pointer to this layers parameter structure.

◆ phalICode_WriteAFI()

phStatus_t phalICode_WriteAFI ( void *  pDataParams,
uint8_t  bOption,
uint8_t  bAfi 
)

Performs a WriteAFI command.

When receiving the Write AFI request, the VICC shall write the AFI value into its memory.

Flag can be set using SetConfig utility interface.

Returns
Status code
Return values
PH_ERR_SUCCESSOperation successful.
PH_ERR_INVALID_DATA_PARAMSIf DataParams is null.
PH_ERR_INVALID_PARAMETERFor the option values that are not supported.
XXXX
  • Depending on status codes return by PICC.
  • Other Depending on implementation and underlying component.
Parameters
[in]pDataParams[In] Pointer to this layers parameter structure.
[in]bOption[In] Option flag, Supported values are,
  • If PHAL_ICODE_OPTION_OFF, the VICC shall return its response when it has completed the write operation starting after t1nom [4352/fc (320,9 us)] + a multiple of 4096/fc (302 us) with a total tolerance of ±32/fc and latest after 20 ms upon detection of the rising edge of the EOF of the VCD request.
  • If PHAL_ICODE_OPTION_ON, the VICC shall wait for the reception of an EOF from the VCD and upon such reception shall return its response.
[in]bAfi[In] Value of Application Family Identifier.

◆ phalICode_LockAFI()

phStatus_t phalICode_LockAFI ( void *  pDataParams,
uint8_t  bOption 
)

Performs a LockAFI command.

When receiving the Lock AFI request, the VICC shall lock the AFI value permanently into its memory.

Flag can be set using SetConfig utility interface.

Returns
Status code
Return values
PH_ERR_SUCCESSOperation successful.
PH_ERR_INVALID_DATA_PARAMSIf DataParams is null.
PH_ERR_INVALID_PARAMETERFor the option values that are not supported.
XXXX
  • Depending on status codes return by PICC.
  • Other Depending on implementation and underlying component.
Parameters
[in]pDataParams[In] Pointer to this layers parameter structure.
[in]bOption[In] Option flag, Supported values are,
  • If PHAL_ICODE_OPTION_OFF, the VICC shall return its response when it has completed the lock operation starting after t1nom [4352/fc (320,9 us)] + a multiple of 4096/fc (302 us) with a total tolerance of ±32/fc and latest after 20 ms upon detection of the rising edge of the EOF of the VCD request.
  • If PHAL_ICODE_OPTION_ON, the VICC shall wait for the reception of an EOF from the VCD and upon such reception shall return its response.

◆ phalICode_WriteDSFID()

phStatus_t phalICode_WriteDSFID ( void *  pDataParams,
uint8_t  bOption,
uint8_t  bDsfid 
)

Performs WriteDSFID command.

When receiving the Write DSFID request, the VICC shall write the DSFID value into its memory.

Flag can be set using SetConfig utility interface.

Returns
Status code
Return values
PH_ERR_SUCCESSOperation successful.
PH_ERR_INVALID_DATA_PARAMSIf DataParams is null.
PH_ERR_INVALID_PARAMETERFor the option values that are not supported.
XXXX
  • Depending on status codes return by PICC.
  • Other Depending on implementation and underlying component.
Parameters
[in]pDataParams[In] Pointer to this layers parameter structure.
[in]bOption[In] Option flag, Supported values are,
  • If PHAL_ICODE_OPTION_OFF, the VICC shall return its response when it has completed the write operation starting after t1nom [4352/fc (320,9 us)] + a multiple of 4096/fc (302 us) with a total tolerance of ±32/fc and latest after 20 ms upon detection of the rising edge of the EOF of the VCD request.
  • If PHAL_ICODE_OPTION_ON, the VICC shall wait for the reception of an EOF from the VCD and upon such reception shall return its response.
[in]bDsfid[In] Value of DSFID (data storage format identifier).

◆ phalICode_LockDSFID()

phStatus_t phalICode_LockDSFID ( void *  pDataParams,
uint8_t  bOption 
)

Performs LockDSFID command.

When receiving the Lock DSFID request, the VICC shall lock the DSFID value permanently into its memory.

Flag can be set using SetConfig utility interface.

Returns
Status code
Return values
PH_ERR_SUCCESSOperation successful.
PH_ERR_INVALID_DATA_PARAMSIf DataParams is null.
PH_ERR_INVALID_PARAMETERFor the option values that are not supported.
XXXX
  • Depending on status codes return by PICC.
  • Other Depending on implementation and underlying component.
Parameters
[in]pDataParams[In] Pointer to this layers parameter structure.
[in]bOption[In] Option flag, Supported values are,
  • If PHAL_ICODE_OPTION_OFF, the VICC shall return its response when it has completed the lock operation starting after t1nom [4352/fc (320,9 us)] + a multiple of 4096/fc (302 us) with a total tolerance of ±32/fc and latest after 20 ms upon detection of the rising edge of the EOF of the VCD request.
  • If PHAL_ICODE_OPTION_ON, the VICC shall wait for the reception of an EOF from the VCD and upon such reception shall return its response.

◆ phalICode_GetSystemInformation()

phStatus_t phalICode_GetSystemInformation ( void *  pDataParams,
uint8_t **  ppSystemInfo,
uint16_t pSystemInfoLen 
)

Performs GetSystemInformation command.

This command allows for retrieving the system information value from the VICC.

Flag can be set using SetConfig utility interface.
Response will contain the below information.

Bit Flag Name Value Description
b1 DSFID 0 DSFID is not supported. DSFID field is not present
1 DSFID is supported. DSFID field is present
b2 AFI 0 AFI is not supported. AFI field is not present
1 AFI is supported. AFI field is present
b3 VICC Memory Size 0 Information on VICC memory size is not supported.
Memory size field is not present.
1 Information on VICC memory size is supported. Memory
size field is present.
b4 IC Reference 0 Information on IC reference is not supported. IC
reference field is not present.
1 Information on IC reference is supported. IC reference
field is present.
b5 RFU 0
b6 RFU 0
b7 RFU 0
b8 RFU 0
Returns
Status code
Return values
PH_ERR_SUCCESSOperation successful.
PH_ERR_INVALID_DATA_PARAMSIf DataParams is null.
PH_ERR_INVALID_PARAMETER
  • If the buffers are null.
  • For the option values that are not supported.
XXXX
  • Depending on status codes return by PICC.
  • Other Depending on implementation and underlying component.
Parameters
[in]pDataParams[In] Pointer to this layers parameter structure.
[out]ppSystemInfo[Out] The system information of the VICC. Refer description for more information.
[out]pSystemInfoLen[Out] Length of bytes available in ppSystemInfo buffer.

◆ phalICode_GetMultipleBlockSecurityStatus()

phStatus_t phalICode_GetMultipleBlockSecurityStatus ( void *  pDataParams,
uint8_t  bBlockNo,
uint8_t  bNoOfBlocks,
uint8_t pStatus,
uint16_t pStatusLen 
)

Performs GetMultipleBlockSecurityStatus.

When receiving the Get multiple block security status command, the VICC shall send back the block security status.

Flag can be set using SetConfig utility interface. Note: The memory should be created and sent to the Status buffer.

Returns
Status code
Return values
PH_ERR_SUCCESSOperation successful.
PH_ERR_INVALID_DATA_PARAMSIf DataParams is null.
PH_ERR_INVALID_PARAMETER
  • If the buffers are null.
  • For the option values that are not supported.
XXXX
  • Depending on status codes return by PICC.
  • Other Depending on implementation and underlying component.
Parameters
[in]pDataParams[In] Pointer to this layers parameter structure.
[in]bBlockNo[In] Block number for which the status should be returned.
[in]bNoOfBlocks[In] Number of blocks to be used for returning the status.
[out]pStatus[Out] The status of the block number mentioned in bBlockNo until bNumBlocks.
[out]pStatusLen[Out] Length of bytes available in pStatus buffer.

◆ phalICode_FastReadMultipleBlocks()

phStatus_t phalICode_FastReadMultipleBlocks ( void *  pDataParams,
uint8_t  bOption,
uint8_t  bBlockNo,
uint8_t  bNumBlocks,
uint8_t pData,
uint16_t pDataLen 
)

Performs a Multiple block fast read command.

When receiving the Read Multiple Block command, the VICC shall read the requested block(s) and send back its value in the response.

Flag can be set using SetConfig utility interface. Note: The memory should be created and sent to the Data buffer.

Returns
Status code
Return values
PH_ERR_SUCCESSOperation successful.
PH_ERR_INVALID_DATA_PARAMSIf DataParams is null.
PH_ERR_INVALID_PARAMETER
  • If the buffers are null.
  • For the option values that are not supported.
XXXX
  • Depending on status codes return by PICC.
  • Other Depending on implementation and underlying component.
Parameters
[in]pDataParams[In] Pointer to this layers parameter structure.
[in]bOption[In] Option flag. Supported values are,
[in]bBlockNo[In] Block number from where the data to be read.
[in]bNumBlocks[In] Total number of block to read.
[out]pData[Out] Information received from VICC
  • If PHAL_ICODE_OPTION_OFF, Block Security Status information is not available. Only block data is available. Format will be 4 byte data 1, 4 byte data 2, ... 4 byte data N
  • If PHAL_ICODE_OPTION_ON, both Block Security Status information and Block Data is available. Format of the response will be Status 1 + 4 byte data 1, Status 2 + 4 byte data 2, ... Status N + 4 byte data N, Where 1, 2 ... N is the block number.
[out]pDataLen[Out] Number of received data bytes.

◆ phalICode_ExtendedReadSingleBlock()

phStatus_t phalICode_ExtendedReadSingleBlock ( void *  pDataParams,
uint8_t  bOption,
uint16_t  wBlockNo,
uint8_t **  ppData,
uint16_t pDataLen 
)

Performs a Extended Single block read command.

When receiving the Extended Read Single Block command, the VICC shall read the requested block and send back its value in the response. If a VICC supports Extended read single block command, it shall also support Read single block command for the first 256 blocks of memory.

Flag can be set using SetConfig utility interface.

Returns
Status code
Return values
PH_ERR_SUCCESSOperation successful.
PH_ERR_INVALID_DATA_PARAMSIf DataParams is null.
PH_ERR_INVALID_PARAMETER
  • If the buffers are null.
  • For the option values that are not supported.
XXXX
  • Depending on status codes return by PICC.
  • Other Depending on implementation and underlying component.
Parameters
[in]pDataParams[In] Pointer to this layers parameter structure.
[in]bOption[In] Option flag. Supported values are,
[in]wBlockNo[In] Block number from where the data to be read.
[out]ppData[Out] Information received from VICC
  • If PHAL_ICODE_OPTION_OFF, block Security Status information is not available. Only block data is available. Format will be 4 byte data.
  • If PHAL_ICODE_OPTION_ON, both block Security Status information and Block Data is available. Format of the response will be 1 byte Status + 4 byte data.
[out]pDataLen[Out] Number of received data bytes.

◆ phalICode_ExtendedWriteSingleBlock()

phStatus_t phalICode_ExtendedWriteSingleBlock ( void *  pDataParams,
uint8_t  bOption,
uint16_t  wBlockNo,
uint8_t pData,
uint8_t  bDataLen 
)

Performs a Extended Single block Write command.

When receiving the Extended write single block command, the VICC shall write the requested block with the data contained in the request and report the success of the operation in the response. If a VICC supports Extended write single block command, it shall also support Write single block command for the first 256 blocks of memory.

Flag can be set using SetConfig utility interface.

Returns
Status code
Return values
PH_ERR_SUCCESSOperation successful.
PH_ERR_INVALID_DATA_PARAMSIf DataParams is null.
PH_ERR_INVALID_PARAMETER
  • If the buffers are null.
  • For the option values that are not supported.
XXXX
  • Depending on status codes return by PICC.
  • Other Depending on implementation and underlying component.
Parameters
[in]pDataParams[In] Pointer to this layers parameter structure.
[in]bOption[In] Option flag, Supported values are,
  • If PHAL_ICODE_OPTION_OFF, the VICC shall return its response when it has completed the write operation starting after t1nom [4352/fc (320,9 us)] + a multiple of 4096/fc (302 us) with a total tolerance of ±32/fc and latest after 20 ms upon detection of the rising edge of the EOF of the VCD request.
  • If PHAL_ICODE_OPTION_ON, the VICC shall wait for the reception of an EOF from the VCD and upon such reception shall return its response.
[in]wBlockNo[In] Block number to which the data should be written.
[in]pData[In] Information to be written to VICC.
[in]bDataLen[In] Number of bytes to be written.

◆ phalICode_ExtendedLockBlock()

phStatus_t phalICode_ExtendedLockBlock ( void *  pDataParams,
uint8_t  bOption,
uint16_t  wBlockNo 
)

Performs a Extended Lock block command.

When receiving the Lock block command, the VICC shall lock permanently the requested block. If a VICC supports Extended lock block command, it shall also support Lock block command for the first 256 blocks of memory.

Flag can be set using SetConfig utility interface.

Returns
Status code
Return values
PH_ERR_SUCCESSOperation successful.
PH_ERR_INVALID_DATA_PARAMSIf DataParams is null.
PH_ERR_INVALID_PARAMETERFor the option values that are not supported.
XXXX
  • Depending on status codes return by PICC.
  • Other Depending on implementation and underlying component.
Parameters
[in]pDataParams[In] Pointer to this layers parameter structure.
[in]bOption[In] Option flag, Supported values are,
  • If PHAL_ICODE_OPTION_OFF, the VICC shall return its response when it has completed the lock operation starting after t1nom [4352/fc (320,9 us)] + a multiple of 4096/fc (302 us) with a total tolerance of ±32/fc and latest after 20 ms upon detection of the rising edge of the EOF of the VCD request.
  • If PHAL_ICODE_OPTION_ON, the VICC shall wait for the reception of an EOF from the VCD and upon such reception shall return its response.
[in]wBlockNo[In] Block number which should be locked.

◆ phalICode_ExtendedReadMultipleBlocks()

phStatus_t phalICode_ExtendedReadMultipleBlocks ( void *  pDataParams,
uint8_t  bOption,
uint16_t  wBlockNo,
uint16_t  wNumBlocks,
uint8_t pData,
uint16_t pDataLen 
)

Performs a Extended Multiple block read command.

When receiving the Read Multiple Block command, the VICC shall read the requested block(s) and send back its value in the response. If a VICC supports Extended read multiple blocks command, it shall also support Read multiple blocks command for the first 256 blocks of memory.

Flag can be set using SetConfig utility interface. Note: The memory should be created and sent to the Data buffer..

Returns
Status code
Return values
PH_ERR_SUCCESSOperation successful.
PH_ERR_INVALID_DATA_PARAMSIf DataParams is null.
PH_ERR_INVALID_PARAMETER
  • If the buffers are null.
  • For the option values that are not supported.
XXXX
  • Depending on status codes return by PICC.
  • Other Depending on implementation and underlying component.
Parameters
[in]pDataParams[In] Pointer to this layers parameter structure.
[in]bOption[In] Option flag. Supported values are,
[in]wBlockNo[In] Block number from where the data to be read.
[in]wNumBlocks[In] Total number of block to read.
[out]pData[Out] Information received from VICC
  • If PHAL_ICODE_OPTION_OFF, Block Security Status information is not available. Only block data is available. Format will be 4 byte data 1, 4 byte data 2, ... 4 byte data N
  • If PHAL_ICODE_OPTION_ON, both Block Security Status information and Block Data is available. Format of the response will be Status 1 + 4 byte data 1, Status 2 + 4 byte data 2, ... Status N + 4 byte data N, Where 1, 2 ... N is the block number.
[out]pDataLen[Out] Length of bytes available in pData buffer.

◆ phalICode_AuthenticateTAM()

phStatus_t phalICode_AuthenticateTAM ( void *  pDataParams,
uint16_t  wOption,
uint8_t  bAuthType,
uint8_t  bKeyNo,
uint8_t  bKeyVer,
uint8_t  bKeyID_CertNum,
uint8_t pDivInput,
uint8_t  bDivLen,
uint8_t pChallenge,
uint16_t  wChallengeLen,
uint8_t pAddInfo,
uint16_t  wAddInfoLen,
uint8_t **  ppResponse,
uint16_t pRespLen 
)

Performs TAM authentication with the tag.

Support various authentication schemes of TAM authentication. Refer description of bAuthType parameter for more information.

Flag can be set using SetConfig utility interface.

Note
:
Returns
Status code
Return values
PH_ERR_SUCCESSOperation successful.
PH_ERR_INVALID_DATA_PARAMSIf DataParams is null.
PH_ERR_INVALID_PARAMETER
  • If wOption parameter is invalid.
  • If bAuthType parameter is invalid.
  • If the buffers are null.
  • For the option values that are not supported.
  • If AuthType = TAM2 authentication as per ISO 2916 specification and pAddInfo buffer is not holding 6 bytes of information.
PH_ERR_AUTH_ERRORDifference in Random Challenge.
PH_ERR_PROTOCOL_ERROR
  • If KeyType is not AES128.
  • For invalid response format.
XXXX
  • Depending on status codes return by PICC.
  • Other Depending on implementation and underlying component.
Parameters
[in]pDataParams[In] Pointer to this layer's parameter structure.
[in]wOption[In] One of the below mentioned options.
[in]bAuthType[In] Type of Authenticate. One of the below mentioned values,
[in]bKeyNo[In] AES key address in software key store or SAM hardware KeyStore.
[in]bKeyVer[In] AES key version to be used.
[in]bKeyID_CertNum[In] KeyID or Certificate number available in the tag.
[in]pDivInput[In] Diversification Input used to diversify the key. The diversification input is available in SAM mode only.
[in]bDivLen[In] Length of byte available in pDivInput buffer. If 0, no diversification is performed.
[in]pChallenge[In] Challenge information to be exchanged with tag. Will be one of the following.
[in]wChallengeLen[In] Length of bytes available in pChallenge buffer.
[in]pAddInfo[In] The information to be exchanged based on bAuthType parameter data.
  • bAuthType = TAM1 authentication as per ISO 2916 specification: Will be NULL as there is no additional information to be exchanged.
  • bAuthType = AUTH1 (TAM1.2) authentication: Will be NULL as there is no additional information to be exchanged.
  • bAuthType = AUTH2 (TAM1.3) authentication: Will be NULL as there is no additional information to be exchanged.
  • bAuthType = TAM2 authentication as per ISO 2916 specification Will be BlockSize, Profile, Offset, BlockCount and ProtMode
    • BlockSize: To select the size of custom data block to be used. The value should either be 0x00 for 16 bit block size or 0x01 for 64 bit block size, as per ISO 29167
    • Profile: To select one of the memory profiles supported by the tag. The Profile range is from 0 - 15, as per ISO 29167
    • Offset: To set the offset for the specified profile. The Offset ranges form 0 - 4095, as per ISO 29167
    • BlockCount: To select the custom data block to be used from the offset specified. The BlockCount range is from 1 - 16.
    • ProtMode: To specify the mode of operation to be used for encryption/decryption. The ProtMode ranges form 0 - 3, as per ISO 29167
[in]wAddInfoLen[In] Length of bytes available in pAddInfo buffer.
[out]ppResponse[Out] Response received from the Tag. Will be based on bAuthType parameter information.
[out]pRespLen[Out] Length of available bytes in ppResponse buffer.

◆ phalICode_AuthenticateTAM1()

phStatus_t phalICode_AuthenticateTAM1 ( void *  pDataParams,
uint8_t  bOption,
uint8_t  bKeyNo,
uint8_t  bKeyVer,
uint8_t  bKeyNoCard,
uint8_t pDivInput,
uint8_t  bDivLen 
)

Performs TAM1 authentication with the tag.

Flag can be set using SetConfig utility interface.

Returns
Status code
Return values
PH_ERR_SUCCESSOperation successful.
PH_ERR_INVALID_DATA_PARAMSIf DataParams is null.
PH_ERR_AUTH_ERRORDifference in Random Challenge.
PH_ERR_PROTOCOL_ERROR
  • If KeyType is not AES128.
  • For invalid response format.
PH_ERR_INVALID_PARAMETER
  • If the buffers are null.
  • For the option values that are not supported.
XXXX
  • Depending on status codes return by PICC.
  • Other Depending on implementation and underlying component.
Parameters
[in]pDataParams[In] Pointer to this layer's parameter structure.
[in]bOption[In] Option flag. Supported values are,
[in]bKeyNo[In] AES key address in software key store or SAM hardware KeyStore.
[in]bKeyVer[In] AES key version to be used.
[in]bKeyNoCard[In] Block number of the AES key available in the tag.
[in]pDivInput[In] Diversification Input used to diversify the key. The diversification input is available in SAM mode only.
[in]bDivLen[In] Length of byte available in pDivInput buffer. If 0, no diversification is performed.

◆ phalICode_AuthenticateTAM2()

phStatus_t phalICode_AuthenticateTAM2 ( void *  pDataParams,
uint8_t  bOption,
uint8_t  bKeyNo,
uint8_t  bKeyVer,
uint8_t  bKeyNoCard,
uint8_t pDivInput,
uint8_t  bDivLen,
uint8_t  bBlockSize,
uint8_t  bBlockCount,
uint8_t  bProfile,
uint8_t  bProtMode,
uint16_t  wOffset,
uint8_t pCustomData,
uint16_t pCustomDataLen 
)

Performs TAM-2 authentication with the tag.

Flag can be set using SetConfig utility interface.

Returns
Status code
Return values
PH_ERR_SUCCESSOperation successful.
PH_ERR_INVALID_DATA_PARAMSIf DataParams is null.
PH_ERR_INVALID_PARAMETER
  • If the buffers are null.
  • For the option values that are not supported.
XXXX
  • Depending on status codes return by PICC.
  • Other Depending on implementation and underlying component.
Parameters
[in]pDataParams[In] Pointer to this layer's parameter structure.
[in]bOption[In] Option flag. Supported values are,
[in]bKeyNo[In] AES key address in software key store or SAM hardware KeyStore.
[in]bKeyVer[In] AES key version to be used.
[in]bKeyNoCard[In] Block number of the AES key available in the tag.
[in]pDivInput[In] Diversification Input used to diversify the key. The diversification input is available in SAM mode only.
[in]bDivLen[In] Length of byte available in pDivInput buffer. If 0, no diversification is performed.
[in]bBlockSize[In] To select the size of custom data block to be used. The value should either be 0x00 for 16 bit block size or 0x01 for 64 bit block size, as per ISO 29167
[in]bBlockCount[In] To select the custom data block to be used from the offset specified. The BlockCount range is from 1 - 16.
[in]bProfile[In] To select one of the memory profiles supported by the tag. The Profile range is from 0 - 15, as per ISO 29167
[in]bProtMode[In] To specify the mode of operation to be used for encryption/decryption. The ProtMode ranges form 0 - 3, as per ISO 29167
[in]wOffset[In] To set the offset for the specified profile. The Offset ranges form 0 - 4095, as per ISO 29167
[out]pCustomData[Out] The custom data returned by the tag.
[out]pCustomDataLen[Out] Length of byte available in pCustomData buffer

◆ phalICode_AuthenticateMAM()

phStatus_t phalICode_AuthenticateMAM ( void *  pDataParams,
uint8_t  bOption,
uint8_t  bKeyNo,
uint8_t  bKeyVer,
uint8_t  bKeyNoCard,
uint8_t  bPurposeMAM2,
uint8_t pDivInput,
uint8_t  bDivLen 
)

Performs MAM authentication with the tag.

Both the MAM part 1 and MAM part 2 authentication are carried out internally by this interface.

Flag can be set using SetConfig utility interface.

Returns
Status code
Return values
PH_ERR_SUCCESSOperation successful.
PH_ERR_INVALID_DATA_PARAMSIf DataParams is null.
PH_ERR_AUTH_ERRORDifference in Random Challenge.
PH_ERR_PROTOCOL_ERROR
  • If KeyType is not AES128.
  • For invalid response format.
PH_ERR_INVALID_PARAMETER
  • If the buffers are null.
  • For the option values that are not supported.
XXXX
  • Depending on status codes return by PICC.
  • Other Depending on implementation and underlying component.
Parameters
[in]pDataParams[In] Pointer to this layer's parameter structure.
[in]bOption[In] Option flag. Supported values are,
[in]bKeyNo[In] AES key address in software key store or SAM hardware KeyStore.
[in]bKeyVer[In] AES key version to be used.
[in]bKeyNoCard[In] Block number of the AES key available in the tag.
[in]bPurposeMAM2[In] The purpose MAM2 data to be used.
[in]pDivInput[In] Diversification Input used to diversify the key. The diversification input is available in SAM mode only.
[in]bDivLen[In] Length of byte available in pDivInput buffer. If 0, no diversification is performed.

◆ phalICode_WriteCertificate()

phStatus_t phalICode_WriteCertificate ( void *  pDataParams,
uint8_t  bOption,
uint8_t  bCertNo,
uint16_t  wWordPtr,
uint8_t pCertificate,
uint8_t  bCertLen 
)

Performs Write Certificate with the tag.

The purpose of WRITE_CERT command is to write one or more block of selected ECC certificate

Flag can be set using SetConfig utility interface.

Returns
Status code
Return values
PH_ERR_SUCCESSOperation successful.
PH_ERR_INVALID_DATA_PARAMSIf DataParams is null.
PH_ERR_INVALID_PARAMETER
  • If the buffers are null.
  • For the option values that are not supported.
PH_ERR_PARAMETER_SIZEIf bCertLen is not multiple of Block Size.
XXXX
  • Depending on status codes return by PICC.
  • Other Depending on implementation and underlying component.
Parameters
[in]pDataParams[In] Pointer to this layer's parameter structure.
[in]bOption[In] Option flag, Supported values are,
  • If PHAL_ICODE_OPTION_OFF, the VICC shall return its response when it has completed the write operation starting after t1nom [4352/fc (320,9 us)] + a multiple of 4096/fc (302 us) with a total tolerance of ±32/fc and latest after 20 ms upon detection of the rising edge of the EOF of the VCD request.
  • If PHAL_ICODE_OPTION_ON, the VICC shall wait for the reception of an EOF from the VCD and upon such reception shall return its response.
[in]bCertNo[In] Certificate record number to use for writing the certificate.
[in]wWordPtr[In] Starting Block number to which the data should be written.
[in]pCertificate[In] Certificate information to written to the specified wWordPtr. Supports the following.
  • Can be maximum of 4 bytes of certificate data. In this case user must call this interface multiple times with update of wWordPtr and data.
  • Can be complete certificate data. In this case, library will iterate the certificate information in chunks where each chunk is of 4 bytes each and wWordPtr will be incremented internally.
[in]bCertLen[In] Length of byte available in pCertificate buffer.

◆ phalICode_ReadCertificate()

phStatus_t phalICode_ReadCertificate ( void *  pDataParams,
uint8_t  bCertNo,
uint16_t  wWordPtr,
uint16_t  wWordCount,
uint8_t **  ppCertificate,
uint16_t pCertLen 
)

Performs Read Certificate with the tag.

The purpose of READ_CERT command is to read specified ECC certificate.

Flag can be set using SetConfig utility interface.

Returns
Status code
Return values
PH_ERR_SUCCESSOperation successful.
PH_ERR_INVALID_DATA_PARAMSIf DataParams is null.
PH_ERR_INVALID_PARAMETER
  • If the buffers are null.
  • For the option values that are not supported.
XXXX
  • Depending on status codes return by PICC.
  • Other Depending on implementation and underlying component.
Parameters
[in]pDataParams[In] Pointer to this layer's parameter structure.
[in]bCertNo[In] Certificate record number to use for writing the certificate.
[in]wWordPtr[In] Starting Block number from which the data should be read. Currently 0000h should be used.
[in]wWordCount[In] A 16-bit value indicating the number of double words to be read from the certificate record starting from the position indicated by WordPtr. The value of 0000h shall be used to indicate the full contents of the certificate record starting from the position indicated by WordPtr; i.e. memory shall be read from WordPtr until the end of the current certificate record. Currently 0000h should be used.
[out]ppCertificate[Out] Certificate information read from the tag based on wWordPtr and wWordCount information.
[out]pCertLen[Out] Length of byte available in pCertificate buffer.

◆ phalICode_Challenge()

phStatus_t phalICode_Challenge ( void *  pDataParams,
uint16_t  wOption,
uint8_t  bChallengeType,
uint8_t  bKeyID_CertNum,
uint8_t pChallenge,
uint16_t  wChallengeLen 
)

Performs tag authentication with the tag.

This is another method of authenticating with the tag. Here the challenge message is sent to the tag. The tag does not respond for this command. To verify if this command was success the command ReadBuffer should be called.

Returns
Status code
Return values
PH_ERR_SUCCESSOperation successful.
PH_ERR_INVALID_DATA_PARAMSIf DataParams is null.
PH_ERR_PROTOCOL_ERRORIf there is a status other than IO_TIMEOUT.
PH_ERR_INVALID_PARAMETERIf bChallengeType parameter is invalid.
XXXX
  • Depending on status codes return by PICC.
  • Other Depending on implementation and underlying component.
Parameters
[in]pDataParams[In] Pointer to this layer's parameter structure.
[in]wOption[In] One of the below mentioned options.
[in]bChallengeType[In] Type of Challenge command to exchange. One of the below mentioned values,
[in]bKeyID_CertNum[In] KeyID or Certificate number available in the tag.
[in]pChallenge[In] Challenge information to be exchanged with tag. Will be one of the following.
[in]wChallengeLen[In] Length of bytes available in pChallenge buffer.

◆ phalICode_ReadBuffer()

phStatus_t phalICode_ReadBuffer ( void *  pDataParams,
uint8_t  bVerify,
uint8_t  bKeyNo,
uint8_t  bKeyVer,
uint8_t **  ppResponse,
uint16_t pRespLen 
)

Reads the crypto calculation result of previous Challenge command.

If the Challenge Command was success, Then the encrypted response will be returned. The response will be same as TAM1 response format. If verification is enabled (i.e. bVerify = PHAL_ICODE_READ_BUFFER_VERIFY_ON), The encrypted response will be decrypted and the random number generated by the Challenge command will be compared against the received one. If fails Authentication Error will be returned.

Flag can be set using SetConfig utility interface.

Returns
Status code
Return values
PH_ERR_SUCCESSOperation successful.
PH_ERR_INVALID_DATA_PARAMSIf DataParams is null.
PH_ERR_AUTH_ERRORDifference in Random Challenge.
PH_ERR_PROTOCOL_ERROR
  • If KeyType is not AES128.
  • For invalid response format.
PH_ERR_INVALID_PARAMETER
  • If the buffers are null.
  • For the verify values that are not supported.
XXXX
  • Depending on status codes return by PICC.
  • Other Depending on implementation and underlying component.
Parameters
[in]pDataParams[In] Pointer to this layer's parameter structure.
[in]bVerify[In] To verify the received data with the random number generated by Challenge command.
[in]bKeyNo[In] AES key address in software key store.
[in]bKeyVer[In] AES key version to be used.
[out]ppResponse[Out] Below are the outputs,
  • If verification is enabled the decrypted response data will be available. Also the response will be verified with the random number generated by Challenge command.
  • If verification is disabled the encrypted response data will be available.
[out]pRespLen[Out] Length of available bytes in ppResponse buffer.

◆ phalICode_ExtendedGetSystemInformation()

phStatus_t phalICode_ExtendedGetSystemInformation ( void *  pDataParams,
uint8_t  bInfoParams,
uint8_t **  ppSystemInfo,
uint16_t pSystemInfoLen 
)

Performs ExtendedGetSystemInformation command.

This command allows for retrieving the system information value from the VICC and shall be supported by the VICC if extended memory or security functionalities are supported by the VICC.

Flag can be set using SetConfig utility interface.
Response will contain the below information.

Bit Flag Name Value Description
b1 DSFID 0 DSFID is not supported. DSFID field is not present
1 DSFID is supported. DSFID field is present
b2 AFI 0 AFI is not supported. AFI field is not present
1 AFI is supported. AFI field is present
b3 VICC Memory Size 0 Information on VICC memory size is not supported. Memory size field is not present.
1 Information on VICC memory size is supported. Memory size field is present.
b4 IC Reference 0 Information on IC reference is not supported. IC reference field is not present.
1 Information on IC reference is supported. IC reference field is present.
b5 MOI 0 1 byte memory addressing
1 2 bytes memory addressing
b6 VICC Command List 0 Data field of all supported commands is not present
1 Data field of all supported commands is present
b7 CSI Information 0 CSI list is not present
1 CSI list is present
b8 Info Flag Field 0 One byte length of Info flag field
1 Two bytes length of Info flag field
Returns
Status code
Return values
PH_ERR_SUCCESSOperation successful.
PH_ERR_INVALID_DATA_PARAMSIf DataParams is null.
PH_ERR_INVALID_PARAMETERIf the buffers are null.
XXXX
  • Depending on status codes return by PICC.
  • Other Depending on implementation and underlying component.
Parameters
[in]pDataParams[In] Pointer to this layer's parameter structure.
[in]bInfoParams[In] Extend Get System Information parameter request fields.
[out]ppSystemInfo[Out] The system information of the VICC. Refer Description for more information.
[out]pSystemInfoLen[Out] Length of bytes available in ppSystemInfo buffer.

◆ phalICode_ExtendedGetMultipleBlockSecurityStatus()

phStatus_t phalICode_ExtendedGetMultipleBlockSecurityStatus ( void *  pDataParams,
uint16_t  wBlockNo,
uint16_t  wNoOfBlocks,
uint8_t pStatus,
uint16_t pStatusLen 
)

Performs ExtendedGetMultipleBlockSecurityStatus.

When receiving the Extended Get multiple block security status command, the VICC shall send back the block security status. The blocks are numbered from 0000 to FFFF (0 - 65535).

Flag can be set using SetConfig utility interface. Note: The memory should be created and sent to the Status buffer.

Returns
Status code
Return values
PH_ERR_SUCCESSOperation successful.
PH_ERR_INVALID_DATA_PARAMSIf DataParams is null.
PH_ERR_INVALID_PARAMETER
  • If the buffers are null.
  • If wNoOfBlocks is zero.
XXXX
  • Depending on status codes return by PICC.
  • Other Depending on implementation and underlying component.
Parameters
[in]pDataParams[In] Pointer to this layers parameter structure.
[in]wBlockNo[In] Block number for which the status should be returned.
[in]wNoOfBlocks[In] Number of blocks to be used for returning the status.
[out]pStatus[Out] The status of the block number mentioned in wBlockNo until wNumBlocks.
[out]pStatusLen[Out] Length of bytes available in pStatus buffer.

◆ phalICode_ExtendedFastReadMultipleBlocks()

phStatus_t phalICode_ExtendedFastReadMultipleBlocks ( void *  pDataParams,
uint8_t  bOption,
uint16_t  wBlockNo,
uint16_t  wNumBlocks,
uint8_t pData,
uint16_t pDataLen 
)

Performs a Extended Multiple block fast read command.

When receiving the Read Multiple Block command, the VICC shall read the requested block(s) and send back its value in the response. If a VICC supports Extended read multiple blocks command, it shall also support Read multiple blocks command for the first 256 blocks of memory.

Flag can be set using SetConfig utility interface. Note: The memory should be created and sent to the Data buffer.

Returns
Status code
Return values
PH_ERR_SUCCESSOperation successful.
PH_ERR_INVALID_DATA_PARAMSIf DataParams is null.
PH_ERR_INVALID_PARAMETER
  • If the buffers are null.
  • If wNoOfBlocks is zero.
  • For the option values that are not supported.
XXXX
  • Depending on status codes return by PICC.
  • Other Depending on implementation and underlying component.
Parameters
[in]pDataParams[In] Pointer to this layers parameter structure.
[in]bOption[In] Option flag. Supported values are,
[in]wBlockNo[In] Block number from where the data to be read.
[in]wNumBlocks[In] Total number of block to read.
[out]pData[Out] Information received from VICC
  • If PHAL_ICODE_OPTION_OFF, Block Security Status information is not available. Only block data is available. Format will be 4 byte data 1, 4 byte data 2, ... 4 byte data N
  • If PHAL_ICODE_OPTION_ON, both Block Security Status information and Block Data is available. Format of the response will be Status 1 + 4 byte data 1, Status 2 + 4 byte data 2, ... Status N + 4 byte data N, Where 1, 2 ... N is the block number.
[out]pDataLen[Out] Length of bytes available in pData buffer.