NXP Reader Library  v17.1.0.2535
Virtual Card Architecture (R)

These Components implement the Virtual Card Architecture (R) commands. More...

Collaboration diagram for Virtual Card Architecture (R):

Modules

 Component : Software
 
 Virtual Card commands
 These Components implement the Virtual Card Architecture (R) commands for Virtual Card feature.
 
 Proximity Check commands
 These Components implement the Virtual Card Architecture (R) commands for Proximity Check feature.
 
 Utility
 These Components implement the Virtual Card Architecture (R) commands.
 

Custom Error Codes

#define PHAL_VCA_ERR_CMD_INVALID   (PH_ERR_CUSTOM_BEGIN + 0U)
 VCA Invalid Command Error.
 
#define PHAL_VCA_ERR_FORMAT   (PH_ERR_CUSTOM_BEGIN + 1U)
 VCA Format Error.
 
#define PHAL_VCA_ERR_AUTH   (PH_ERR_CUSTOM_BEGIN + 2U)
 VCA MAC Error.
 
#define PHAL_VCA_ERR_GEN   (PH_ERR_CUSTOM_BEGIN + 3U)
 VCA GEN Error.
 
#define PHAL_VCA_ERR_CMD_OVERFLOW   (PH_ERR_CUSTOM_BEGIN + 4U)
 VCA CMD Overflow Error.
 
#define PHAL_VCA_ERR_COMMAND_ABORTED   (PH_ERR_CUSTOM_BEGIN + 5U)
 VCA Command Abort Error.
 
#define PHAL_VCA_ERR_7816_GEN_ERROR   (PH_ERR_CUSTOM_BEGIN + 6U)
 VCA ISO 7816 Generic error. More...
 
phStatus_t phalVca_StartCardSelection (void *pDataParams)
 Start Card Selection. More...
 
phStatus_t phalVca_FinalizeCardSelection (void *pDataParams, uint16_t *pNumValidIids)
 Finalize Card Selection. More...
 
phStatus_t phalVca_SelectVc (void *pDataParams, uint16_t wValidIidIndex, uint16_t wKeyNumber, uint16_t wKeyVersion)
 Performs a Select Virtual Card command (MIFARE Plus only). More...
 
phStatus_t phalVca_DeselectVc (void *pDataParams)
 Performs a Deselect Virtual Card command. More...
 
phStatus_t phalVca_VcSupport (void *pDataParams, uint8_t *pIid, uint16_t wKeyEncNumber, uint16_t wKeyEncVersion, uint16_t wKeyMacNumber, uint16_t wKeyMacVersion)
 Performs a Virtual Card Support command (MIFARE Plus only). More...
 
phStatus_t phalVca_VcSupportLast (void *pDataParams, uint8_t *pIid, uint8_t bLenCap, uint8_t *pPcdCapabilities, uint16_t wKeyEncNumber, uint16_t wKeyEncVersion, uint16_t wKeyMacNumber, uint16_t wKeyMacVersion)
 Perform a Virtual Card Support (Last) command. More...
 
phStatus_t phalVca_GetIidInfo (void *pDataParams, uint16_t wValidIidIndex, uint16_t *pIidIndex, uint8_t *pVcUidSize, uint8_t *pVcUid, uint8_t *pInfo, uint8_t *pPdCapabilities)
 Retrieve card information. More...
 

Detailed Description

These Components implement the Virtual Card Architecture (R) commands.

Macro Definition Documentation

◆ PHAL_VCA_ERR_7816_GEN_ERROR

#define PHAL_VCA_ERR_7816_GEN_ERROR   (PH_ERR_CUSTOM_BEGIN + 6U)

VCA ISO 7816 Generic error.

Check Additional Info.

Function Documentation

◆ phalVca_StartCardSelection()

phStatus_t phalVca_StartCardSelection ( void *  pDataParams)

Start Card Selection.

This command is used to start a VCS / VCSL sequence.

Returns
Status code
Return values
PH_ERR_SUCCESSOperation successful.
OtherDepending on implementation and underlying component.
Parameters
[in]pDataParams[In] Pointer to this layer's parameter structure.

◆ phalVca_FinalizeCardSelection()

phStatus_t phalVca_FinalizeCardSelection ( void *  pDataParams,
uint16_t pNumValidIids 
)

Finalize Card Selection.

This command is used to finalize a VCS/VCSL sequence. The number of sucessfully detected IIDs is returned

Returns
Status code
Return values
PH_ERR_SUCCESSOperation successful.
OtherDepending on implementation and underlying component.
Parameters
[in]pDataParams[In] Pointer to this layer's parameter structure.
[out]pNumValidIids[Out] Number of valid IIDs detected during VCS/VCSL sequence execution.

◆ phalVca_SelectVc()

phStatus_t phalVca_SelectVc ( void *  pDataParams,
uint16_t  wValidIidIndex,
uint16_t  wKeyNumber,
uint16_t  wKeyVersion 
)

Performs a Select Virtual Card command (MIFARE Plus only).

Returns
Status code
Return values
PH_ERR_SUCCESSOperation successful.
OtherDepending on implementation and underlying component.
Parameters
[in]pDataParams[In] Pointer to this layer's parameter structure.
[in]wValidIidIndex[In] Index of valid IID, needs to be < pNumValidIids in FinalizeCardSelection call.
[in]wKeyNumber[In] Key number of the MAC key used in SVC command.
[in]wKeyVersion[In] Key version of the MAC key used in SVC command.

◆ phalVca_DeselectVc()

phStatus_t phalVca_DeselectVc ( void *  pDataParams)

Performs a Deselect Virtual Card command.

Returns
Status code
Return values
PH_ERR_SUCCESSOperation successful.
OtherDepending on implementation and underlying component.
Parameters
[in]pDataParams[In] Pointer to this layer's parameter structure.

◆ phalVca_VcSupport()

phStatus_t phalVca_VcSupport ( void *  pDataParams,
uint8_t pIid,
uint16_t  wKeyEncNumber,
uint16_t  wKeyEncVersion,
uint16_t  wKeyMacNumber,
uint16_t  wKeyMacVersion 
)

Performs a Virtual Card Support command (MIFARE Plus only).

Returns
Status code
Return values
PH_ERR_SUCCESSOperation successful.
OtherDepending on implementation and underlying component.
Parameters
[in]pDataParams[In] Pointer to this layer's parameter structure.
[in]pIid[In] Installation Identifier (16 bytes).
[in]wKeyEncNumber[In] Key number of the ENC key associated to the Iid.
[in]wKeyEncVersion[In] Key version of the ENC key associated to the Iid.
[in]wKeyMacNumber[In] Key number of the MAC key associated to the Iid.
[in]wKeyMacVersion[In] Key version of the MAC key associated to the Iid.

◆ phalVca_VcSupportLast()

phStatus_t phalVca_VcSupportLast ( void *  pDataParams,
uint8_t pIid,
uint8_t  bLenCap,
uint8_t pPcdCapabilities,
uint16_t  wKeyEncNumber,
uint16_t  wKeyEncVersion,
uint16_t  wKeyMacNumber,
uint16_t  wKeyMacVersion 
)

Perform a Virtual Card Support (Last) command.

This command performs the Virtual card support command in ISO14443 Layer 3 activated state. This comand is supported by MIFARE Ultralight EV1 and Mifare Plus product only.

Returns
Status code
Return values
PH_ERR_SUCCESSOperation successful.
OtherDepending on implementation and underlying component.
Parameters
[in]pDataParams[In] Pointer to this layer's parameter structure.
[in]pIid[In] Installation Identifier (16 bytes).
[in]bLenCap[In] Length of the PCDcaps (0-6).
[in]pPcdCapabilities[In] PCD Capabilities (bLenCap bytes), ignored if bLenCap == 0.
[in]wKeyEncNumber[In] Key number of the ENC key used in VCSL command.
[in]wKeyEncVersion[In] Key version of the ENC key used in VCSL command.
[in]wKeyMacNumber[In] Key number of the MAC key used in VCSL command.
[in]wKeyMacVersion[In] Key version of the MAC key used in VCSL command.

◆ phalVca_GetIidInfo()

phStatus_t phalVca_GetIidInfo ( void *  pDataParams,
uint16_t  wValidIidIndex,
uint16_t pIidIndex,
uint8_t pVcUidSize,
uint8_t pVcUid,
uint8_t pInfo,
uint8_t pPdCapabilities 
)

Retrieve card information.

This command retrieves card information like UID and Info byte and the associated IID

Returns
Status code
Return values
PH_ERR_SUCCESSOperation successful.
OtherDepending on implementation and underlying component.
Parameters
[in]pDataParams[In] Pointer to this layer's parameter structure.
[in]wValidIidIndex[In] Index of valid IID, needs to be < pNumValidIids in FinalizeCardSelection call.
[out]pIidIndex[Out] Corresponding IID to the key pair where the MAC was matching in VCSL command call.
[out]pVcUidSize[Out] Size of the VC UID (4 or 7 bytes).
[out]pVcUid[Out] VC UID (pVcUidSize bytes).
[out]pInfo[Out] Info byte.
[out]pPdCapabilities[Out] PD Capabilities (2 bytes).