12 #ifndef __BRP_BALTECH_SDK_CMDS_DESFIRE_H__ 13 #define __BRP_BALTECH_SDK_CMDS_DESFIRE_H__ 14 #include "../typedefs.h" 18 #define BRP_Desfire_ErrIso14NoTag BRP_ERR_STATUS(0x1B00, 0x01) 24 #define BRP_Desfire_ErrBreak BRP_ERR_STATUS(0x1B00, 0x03) 28 #define BRP_Desfire_ErrIso14Hf BRP_ERR_STATUS(0x1B00, 0x04) 32 #define BRP_Desfire_ErrIso14CardInvalid BRP_ERR_STATUS(0x1B00, 0x05) 36 #define BRP_Desfire_ErrReaderChipCommunication BRP_ERR_STATUS(0x1B00, 0x06) 40 #define BRP_Desfire_ErrIso14ApduCmd BRP_ERR_STATUS(0x1B00, 0x07) 44 #define BRP_Desfire_ErrIso14InvalidResponse BRP_ERR_STATUS(0x1B00, 0x08) 48 #define BRP_Desfire_ErrPcdAuthentication BRP_ERR_STATUS(0x1B00, 0x09) 52 #define BRP_Desfire_ErrIntegrity BRP_ERR_STATUS(0x1B00, 0x0A) 56 #define BRP_Desfire_ErrPcdKey BRP_ERR_STATUS(0x1B00, 0x0B) 60 #define BRP_Desfire_ErrNoChanges BRP_ERR_STATUS(0x1B00, 0x0C) 64 #define BRP_Desfire_ErrPcdParam BRP_ERR_STATUS(0x1B00, 0x0D) 68 #define BRP_Desfire_VcsAndProxCheckError BRP_ERR_STATUS(0x1B00, 0x0F) 72 #define BRP_Desfire_ErrFirmwareNotSupported BRP_ERR_STATUS(0x1B00, 0x10) 76 #define BRP_Desfire_ErrSamCommunication BRP_ERR_STATUS(0x1B00, 0x11) 80 #define BRP_Desfire_ErrSamUnlock BRP_ERR_STATUS(0x1B00, 0x12) 86 #define BRP_Desfire_ErrHardwareNotSupported BRP_ERR_STATUS(0x1B00, 0x13) 90 #define BRP_Desfire_ErrIllegalCmdLegacy BRP_ERR_STATUS(0x1B00, 0x1C) 94 #define BRP_Desfire_ErrLength BRP_ERR_STATUS(0x1B00, 0x20) 98 #define BRP_Desfire_ErrPermissionDenied BRP_ERR_STATUS(0x1B00, 0x21) 102 #define BRP_Desfire_ErrParameter BRP_ERR_STATUS(0x1B00, 0x22) 106 #define BRP_Desfire_ErrAppNotFound BRP_ERR_STATUS(0x1B00, 0x23) 110 #define BRP_Desfire_ErrAppIntegrity BRP_ERR_STATUS(0x1B00, 0x24) 114 #define BRP_Desfire_ErrAuthentication BRP_ERR_STATUS(0x1B00, 0x25) 118 #define BRP_Desfire_ErrBoundary BRP_ERR_STATUS(0x1B00, 0x27) 122 #define BRP_Desfire_ErrPiccIntegrity BRP_ERR_STATUS(0x1B00, 0x28) 126 #define BRP_Desfire_ErrCommandAborted BRP_ERR_STATUS(0x1B00, 0x29) 130 #define BRP_Desfire_ErrPiccDisabled BRP_ERR_STATUS(0x1B00, 0x2A) 134 #define BRP_Desfire_ErrCount BRP_ERR_STATUS(0x1B00, 0x2B) 138 #define BRP_Desfire_ErrDuplicate BRP_ERR_STATUS(0x1B00, 0x2C) 142 #define BRP_Desfire_ErrEeprom BRP_ERR_STATUS(0x1B00, 0x2D) 146 #define BRP_Desfire_ErrFileNotFound BRP_ERR_STATUS(0x1B00, 0x2E) 150 #define BRP_Desfire_ErrFileIntegrity BRP_ERR_STATUS(0x1B00, 0x2F) 154 #define BRP_Desfire_ErrNoSuchKey BRP_ERR_STATUS(0x1B00, 0x30) 158 #define BRP_Desfire_ErrOutOfMemory BRP_ERR_STATUS(0x1B00, 0x32) 162 #define BRP_Desfire_ErrIllegalCmd BRP_ERR_STATUS(0x1B00, 0x33) 166 #define BRP_Desfire_ErrCmdOverflow BRP_ERR_STATUS(0x1B00, 0x34) 200 #ifdef BRP_SUPPORT_LEGACY_METHODS 201 brp_errcode brp_Desfire_ExecCommand(
brp_protocol protocol,
unsigned Cmd,
brp_buf Header,
size_t Header_len,
brp_buf Param,
size_t Param_len,
brp_Desfire_ExecCommand_CryptoMode CryptoMode,
unsigned ResponseLen,
brp_buf* Resp,
size_t* Resp_len,
brp_mempool *mempool);
234 #ifdef BRP_SUPPORT_LEGACY_METHODS 262 #ifdef BRP_SUPPORT_LEGACY_METHODS 278 #ifdef BRP_SUPPORT_LEGACY_METHODS 306 #ifdef BRP_SUPPORT_LEGACY_METHODS 330 #ifdef BRP_SUPPORT_LEGACY_METHODS 374 #ifdef BRP_SUPPORT_LEGACY_METHODS 375 brp_errcode brp_Desfire_ChangeExtKey(
brp_protocol protocol,
brp_Desfire_ChangeExtKey_MasterKeyType MasterKeyType,
bool IsKeySet,
bool IsAesKey,
bool IsVersion,
bool IsChangeKey,
unsigned KeyNo,
unsigned KeyVersion,
brp_buf NewKey,
size_t NewKey_len,
brp_buf OldKey,
size_t OldKey_len,
unsigned KeySet);
426 #ifdef BRP_SUPPORT_LEGACY_METHODS 427 brp_errcode brp_Desfire_ChangeKey(
brp_protocol protocol,
bool IsKeySet,
bool IsMasterKey,
bool IsChangeKey,
unsigned KeyNr,
brp_Desfire_ChangeKey_NewKeyDivMode NewKeyDivMode,
bool NewKeyHasDivData,
bool NewKeyHasExtIdx,
unsigned NewKeyIdx,
brp_Desfire_ChangeKey_CurKeyDivMode CurKeyDivMode,
bool CurKeyHasDivData,
bool CurKeyHasExtIdx,
unsigned CurKeyIdx,
brp_buf NewKeyDivData,
size_t NewKeyDivData_len,
brp_buf CurKeyDivData,
size_t CurKeyDivData_len,
unsigned NewKeyExtIdx,
unsigned CurKeyExtIdx,
unsigned KeySet);
442 #ifdef BRP_SUPPORT_LEGACY_METHODS 458 #ifdef BRP_SUPPORT_LEGACY_METHODS 486 #ifdef BRP_SUPPORT_LEGACY_METHODS 506 #ifdef BRP_SUPPORT_LEGACY_METHODS 558 #ifdef BRP_SUPPORT_LEGACY_METHODS 559 brp_errcode brp_Desfire_VirtualCardSelect(
brp_protocol protocol,
bool ForceVcsAuthentication,
bool UseExtVcSelectKeys,
unsigned DiversifyMacKey,
bool DiversifyEncKey,
bool UseVcSelectKeys,
brp_buf IID,
size_t IID_len,
unsigned EncKeyIdx,
unsigned MacKeyIdx,
brp_buf DivData,
size_t DivData_len,
brp_buf EncKey,
size_t EncKey_len,
brp_buf MacKey,
size_t MacKey_len,
unsigned* FciType,
brp_buf* Fci,
size_t* Fci_len,
brp_mempool *mempool);
590 #ifdef BRP_SUPPORT_LEGACY_METHODS 610 #ifdef BRP_SUPPORT_LEGACY_METHODS
brp_Desfire_WriteData_Mode
Communication settings linked to the file.
brp_errcode brp_Desfire_VirtualCardSelect(brp_Desfire_VirtualCardSelect_t params)
This command selects a virtual card.
brp_errcode brp_Desfire_ResetAuthentication(brp_Desfire_ResetAuthentication_t params)
This command resets the reader's authentication state until the next call of the brp_Desfire_Authenti...
brp_Desfire_ChangeExtKey_MasterKeyType MasterKeyType
brp_Desfire_Authenticate_KeyDivMode
Specifies diversification algorithm.
unsigned int brp_errcode
This type is used library-wide for passing error codes in the return value of functions.
brp_Desfire_WriteData_Mode Mode
brp_errcode brp_Desfire_ChangeExtKey(brp_Desfire_ChangeExtKey_t params)
This command allows to change any key stored on the card.
brp_Desfire_SetFraming_CommMode
Defines 14443-4 communication mode to DESFire card.
brp_errcode brp_Desfire_GetOriginalitySignature(brp_Desfire_GetOriginalitySignature_t params)
This command returns the NXP originality signature of a desfire card.
struct brp_protocol_t * brp_protocol
This is a generic handle of a protocol.
brp_Desfire_AuthExtKey_CryptoMode
Sets the encryption algorithm.
brp_Desfire_ChangeExtKey_MasterKeyType
These bits must only be set if the card's Master Key is changed.
struct brp_mempool_object_t * brp_mempool
mempool handle.
brp_Desfire_ChangeKey_NewKeyDivMode
Specifies diversification algorithm.
brp_Desfire_SetFraming_CommMode CommMode
brp_errcode brp_Desfire_SelectApplication(brp_Desfire_SelectApplication_t params)
Selects an application of the DESFire card.
size_t EncryptedDefaultDamKey_len
brp_Desfire_ReadData_Mode
Communication settings linked to the file.
brp_errcode brp_Desfire_SetFraming(brp_Desfire_SetFraming_t params)
This command switches the DESFire communication protocol mode to use (std, iso_wrapping).
brp_Desfire_ChangeKey_NewKeyDivMode NewKeyDivMode
brp_buf EncryptedDefaultDamKey
brp_errcode brp_Desfire_ExecCommand(brp_Desfire_ExecCommand_t params)
Generic command to communicate to a DESFire card.
brp_Desfire_AuthExtKey_CryptoMode CryptoMode
brp_Desfire_AuthExtKey_SecureMessaging
Sets the secure messaging mode.
brp_Desfire_GetDfNames_AppNr_Entry ** AppNr
brp_errcode brp_Desfire_ChangeKey(brp_Desfire_ChangeKey_t params)
Modifies a DESFire card key defined in the SAM or crypto memory.
brp_Desfire_Authenticate_KeyDivMode KeyDivMode
brp_Desfire_ChangeKey_CurKeyDivMode CurKeyDivMode
brp_errcode brp_Desfire_WriteData(brp_Desfire_WriteData_t params)
Writes data to a Standard or a Backup data file.
brp_Desfire_Authenticate_SecureMessaging SecureMessaging
brp_Desfire_ExecCommand_CryptoMode CryptoMode
brp_errcode brp_Desfire_Authenticate(brp_Desfire_Authenticate_t params)
This command authenticates a card with the reader.
brp_Desfire_ChangeKey_CurKeyDivMode
Specifies diversification algorithm.
unsigned char * brp_buf
represents a pointer to a protocol data buffer.
brp_Desfire_ExecCommand_CryptoMode
Type of encryption.
brp_Desfire_ReadData_Mode Mode
brp_errcode brp_Desfire_ProxCheck(brp_Desfire_ProxCheck_t params)
This command executes a proximity check of the card.
brp_Desfire_AuthExtKey_SecureMessaging SecureMessaging
brp_errcode brp_Desfire_GetDfNames(brp_Desfire_GetDfNames_t params)
This command returns the application identifiers together with file IDs and (optionally) DF names of ...
brp_Desfire_Authenticate_SecureMessaging
Sets the secure messaging mode.
brp_errcode brp_Desfire_AuthExtKey(brp_Desfire_AuthExtKey_t params)
This command authenticates a card with the reader, similarly to the brp_Desfire_Authenticate() comman...
brp_errcode brp_Desfire_ReadData(brp_Desfire_ReadData_t params)
Reads data from a Standard or Backup data file.
bool ForceVcsAuthentication
brp_errcode brp_Desfire_CreateDam(brp_Desfire_CreateDam_t params)
This command creates a delegated application.