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

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_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... | |
Describes the Optional commands of ICode products.
| 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.
| PH_ERR_SUCCESS | Operation successful. |
| PH_ERR_INVALID_DATA_PARAMS | If DataParams is null. |
| PH_ERR_INVALID_PARAMETER |
|
| XXXX |
|
| [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
|
| [out] | pDataLen | [Out] Length of bytes available in ppData buffer. |
| 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.
| PH_ERR_SUCCESS | Operation successful. |
| PH_ERR_INVALID_DATA_PARAMS | If DataParams is null. |
| PH_ERR_INVALID_PARAMETER |
|
| XXXX |
|
| [in] | pDataParams | [In] Pointer to this layers parameter structure. |
| [in] | bOption | [In] Option flag, Supported values are,
|
| [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. |
| 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.
| PH_ERR_SUCCESS | Operation successful. |
| PH_ERR_INVALID_DATA_PARAMS | If DataParams is null. |
| PH_ERR_INVALID_PARAMETER | For the option values that are not supported. |
| XXXX |
|
| [in] | pDataParams | [In] Pointer to this layers parameter structure. |
| [in] | bOption | [In] Option flag, Supported values are,
|
| [in] | bBlockNo | [In] Block number which should be locked. |
| 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.
| PH_ERR_SUCCESS | Operation successful. |
| PH_ERR_INVALID_DATA_PARAMS | If DataParams is null. |
| PH_ERR_INVALID_PARAMETER |
|
| XXXX |
|
| [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
|
| [out] | pDataLen | [Out] Length of bytes available in pData buffer. |
| phStatus_t phalICode_Select | ( | void * | pDataParams | ) |
Performs a Select command.
When receiving the Select command,
Flag can be set using SetConfig utility interface.
| PH_ERR_SUCCESS | Operation successful. |
| PH_ERR_INVALID_DATA_PARAMS | If DataParams is null. |
| XXXX |
|
| [in] | pDataParams | [In] Pointer to this layers parameter structure. |
| 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.
| PH_ERR_SUCCESS | Operation successful. |
| PH_ERR_INVALID_DATA_PARAMS | If DataParams is null. |
| XXXX |
|
| [in] | pDataParams | [In] Pointer to this layers parameter structure. |
| 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.
| PH_ERR_SUCCESS | Operation successful. |
| PH_ERR_INVALID_DATA_PARAMS | If DataParams is null. |
| PH_ERR_INVALID_PARAMETER | For the option values that are not supported. |
| XXXX |
|
| [in] | pDataParams | [In] Pointer to this layers parameter structure. |
| [in] | bOption | [In] Option flag, Supported values are,
|
| [in] | bAfi | [In] Value of Application Family Identifier. |
| 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.
| PH_ERR_SUCCESS | Operation successful. |
| PH_ERR_INVALID_DATA_PARAMS | If DataParams is null. |
| PH_ERR_INVALID_PARAMETER | For the option values that are not supported. |
| XXXX |
|
| [in] | pDataParams | [In] Pointer to this layers parameter structure. |
| [in] | bOption | [In] Option flag, Supported values are,
|
| 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.
| PH_ERR_SUCCESS | Operation successful. |
| PH_ERR_INVALID_DATA_PARAMS | If DataParams is null. |
| PH_ERR_INVALID_PARAMETER | For the option values that are not supported. |
| XXXX |
|
| [in] | pDataParams | [In] Pointer to this layers parameter structure. |
| [in] | bOption | [In] Option flag, Supported values are,
|
| [in] | bDsfid | [In] Value of DSFID (data storage format identifier). |
| 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.
| PH_ERR_SUCCESS | Operation successful. |
| PH_ERR_INVALID_DATA_PARAMS | If DataParams is null. |
| PH_ERR_INVALID_PARAMETER | For the option values that are not supported. |
| XXXX |
|
| [in] | pDataParams | [In] Pointer to this layers parameter structure. |
| [in] | bOption | [In] Option flag, Supported values are,
|
| 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 |
| PH_ERR_SUCCESS | Operation successful. |
| PH_ERR_INVALID_DATA_PARAMS | If DataParams is null. |
| PH_ERR_INVALID_PARAMETER |
|
| XXXX |
|
| [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. |
| 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.
| PH_ERR_SUCCESS | Operation successful. |
| PH_ERR_INVALID_DATA_PARAMS | If DataParams is null. |
| PH_ERR_INVALID_PARAMETER |
|
| XXXX |
|
| [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. |
| 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.
| PH_ERR_SUCCESS | Operation successful. |
| PH_ERR_INVALID_DATA_PARAMS | If DataParams is null. |
| PH_ERR_INVALID_PARAMETER |
|
| XXXX |
|
| [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
|
| [out] | pDataLen | [Out] Number of received data bytes. |
| 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.
| PH_ERR_SUCCESS | Operation successful. |
| PH_ERR_INVALID_DATA_PARAMS | If DataParams is null. |
| PH_ERR_INVALID_PARAMETER |
|
| XXXX |
|
| [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
|
| [out] | pDataLen | [Out] Number of received data bytes. |
| 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.
| PH_ERR_SUCCESS | Operation successful. |
| PH_ERR_INVALID_DATA_PARAMS | If DataParams is null. |
| PH_ERR_INVALID_PARAMETER |
|
| XXXX |
|
| [in] | pDataParams | [In] Pointer to this layers parameter structure. |
| [in] | bOption | [In] Option flag, Supported values are,
|
| [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. |
| 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.
| PH_ERR_SUCCESS | Operation successful. |
| PH_ERR_INVALID_DATA_PARAMS | If DataParams is null. |
| PH_ERR_INVALID_PARAMETER | For the option values that are not supported. |
| XXXX |
|
| [in] | pDataParams | [In] Pointer to this layers parameter structure. |
| [in] | bOption | [In] Option flag, Supported values are,
|
| [in] | wBlockNo | [In] Block number which should be locked. |
| 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..
| PH_ERR_SUCCESS | Operation successful. |
| PH_ERR_INVALID_DATA_PARAMS | If DataParams is null. |
| PH_ERR_INVALID_PARAMETER |
|
| XXXX |
|
| [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
|
| [out] | pDataLen | [Out] Length of bytes available in pData buffer. |
| 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.
| PH_ERR_SUCCESS | Operation successful. |
| PH_ERR_INVALID_DATA_PARAMS | If DataParams is null. |
| PH_ERR_INVALID_PARAMETER |
|
| PH_ERR_AUTH_ERROR | Difference in Random Challenge. |
| PH_ERR_PROTOCOL_ERROR |
|
| XXXX |
|
| [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.
|
| [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. |
| 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.
| PH_ERR_SUCCESS | Operation successful. |
| PH_ERR_INVALID_DATA_PARAMS | If DataParams is null. |
| PH_ERR_AUTH_ERROR | Difference in Random Challenge. |
| PH_ERR_PROTOCOL_ERROR |
|
| PH_ERR_INVALID_PARAMETER |
|
| XXXX |
|
| [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. |
| 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.
| PH_ERR_SUCCESS | Operation successful. |
| PH_ERR_INVALID_DATA_PARAMS | If DataParams is null. |
| PH_ERR_INVALID_PARAMETER |
|
| XXXX |
|
| [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 |
| 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.
| PH_ERR_SUCCESS | Operation successful. |
| PH_ERR_INVALID_DATA_PARAMS | If DataParams is null. |
| PH_ERR_AUTH_ERROR | Difference in Random Challenge. |
| PH_ERR_PROTOCOL_ERROR |
|
| PH_ERR_INVALID_PARAMETER |
|
| XXXX |
|
| [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. |
| 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.
| PH_ERR_SUCCESS | Operation successful. |
| PH_ERR_INVALID_DATA_PARAMS | If DataParams is null. |
| PH_ERR_PROTOCOL_ERROR | If there is a status other than IO_TIMEOUT. |
| PH_ERR_INVALID_PARAMETER | If bChallengeType parameter is invalid. |
| XXXX |
|
| [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. |
| 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.
| PH_ERR_SUCCESS | Operation successful. |
| PH_ERR_INVALID_DATA_PARAMS | If DataParams is null. |
| PH_ERR_AUTH_ERROR | Difference in Random Challenge. |
| PH_ERR_PROTOCOL_ERROR |
|
| PH_ERR_INVALID_PARAMETER |
|
| XXXX |
|
| [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,
|
| [out] | pRespLen | [Out] Length of available bytes in ppResponse buffer. |
| 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 |
| PH_ERR_SUCCESS | Operation successful. |
| PH_ERR_INVALID_DATA_PARAMS | If DataParams is null. |
| PH_ERR_INVALID_PARAMETER | If the buffers are null. |
| XXXX |
|
| [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. |
| 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.
| PH_ERR_SUCCESS | Operation successful. |
| PH_ERR_INVALID_DATA_PARAMS | If DataParams is null. |
| PH_ERR_INVALID_PARAMETER |
|
| XXXX |
|
| [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. |
| 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.
| PH_ERR_SUCCESS | Operation successful. |
| PH_ERR_INVALID_DATA_PARAMS | If DataParams is null. |
| PH_ERR_INVALID_PARAMETER |
|
| XXXX |
|
| [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
|
| [out] | pDataLen | [Out] Length of bytes available in pData buffer. |