29 #ifndef __BRP_BALTECH_SDK_CMDS_MIF_H__ 30 #define __BRP_BALTECH_SDK_CMDS_MIF_H__ 31 #include "../typedefs.h" 35 #define BRP_Mif_ErrNoTag BRP_ERR_STATUS(0x1000, 0x01) 36 #ifdef BALTECH_SDK_INTERNAL 40 #define BRP_Mif_ErrCrc BRP_ERR_STATUS(0x1000, 0x02) 41 #endif // BALTECH_SDK_INTERNAL 45 #define BRP_Mif_ErrAuth BRP_ERR_STATUS(0x1000, 0x04) 49 #define BRP_Mif_ErrParity BRP_ERR_STATUS(0x1000, 0x05) 53 #define BRP_Mif_ErrCode BRP_ERR_STATUS(0x1000, 0x06) 54 #ifdef BALTECH_SDK_INTERNAL 58 #define BRP_Mif_ErrSnr BRP_ERR_STATUS(0x1000, 0x08) 59 #endif // BALTECH_SDK_INTERNAL 63 #define BRP_Mif_ErrKey BRP_ERR_STATUS(0x1000, 0x09) 67 #define BRP_Mif_ErrNotauth BRP_ERR_STATUS(0x1000, 0x0A) 71 #define BRP_Mif_ErrBitcount BRP_ERR_STATUS(0x1000, 0x0B) 75 #define BRP_Mif_ErrBytecount BRP_ERR_STATUS(0x1000, 0x0C) 79 #define BRP_Mif_VcsAndProxCheckError BRP_ERR_STATUS(0x1000, 0x0E) 80 #ifdef BALTECH_SDK_INTERNAL 84 #define BRP_Mif_ErrWrite BRP_ERR_STATUS(0x1000, 0x0F) 85 #endif // BALTECH_SDK_INTERNAL 86 #ifdef BALTECH_SDK_INTERNAL 90 #define BRP_Mif_ErrInc BRP_ERR_STATUS(0x1000, 0x10) 91 #endif // BALTECH_SDK_INTERNAL 92 #ifdef BALTECH_SDK_INTERNAL 96 #define BRP_Mif_ErrDecr BRP_ERR_STATUS(0x1000, 0x11) 97 #endif // BALTECH_SDK_INTERNAL 98 #ifdef BALTECH_SDK_INTERNAL 102 #define BRP_Mif_ErrRead BRP_ERR_STATUS(0x1000, 0x12) 103 #endif // BALTECH_SDK_INTERNAL 104 #ifdef BALTECH_SDK_INTERNAL 108 #define BRP_Mif_ErrOvfl BRP_ERR_STATUS(0x1000, 0x13) 109 #endif // BALTECH_SDK_INTERNAL 113 #define BRP_Mif_ErrFraming BRP_ERR_STATUS(0x1000, 0x15) 114 #ifdef BALTECH_SDK_INTERNAL 120 #define BRP_Mif_ErrBreak BRP_ERR_STATUS(0x1000, 0x16) 121 #endif // BALTECH_SDK_INTERNAL 125 #define BRP_Mif_ErrCmd BRP_ERR_STATUS(0x1000, 0x17) 129 #define BRP_Mif_ErrColl BRP_ERR_STATUS(0x1000, 0x18) 130 #ifdef BALTECH_SDK_INTERNAL 134 #define BRP_Mif_ErrReaderChipCommunication BRP_ERR_STATUS(0x1000, 0x1A) 135 #endif // BALTECH_SDK_INTERNAL 136 #ifdef BALTECH_SDK_INTERNAL 140 #define BRP_Mif_ErrFirmwareNotSupported BRP_ERR_STATUS(0x1000, 0x1D) 141 #endif // BALTECH_SDK_INTERNAL 142 #ifdef BALTECH_SDK_INTERNAL 146 #define BRP_Mif_ErrVal BRP_ERR_STATUS(0x1000, 0x1E) 147 #endif // BALTECH_SDK_INTERNAL 148 #ifdef BALTECH_SDK_INTERNAL 152 #define BRP_Mif_ErrIntegrity BRP_ERR_STATUS(0x1000, 0x1F) 153 #endif // BALTECH_SDK_INTERNAL 157 #define BRP_Mif_CondNotvalid BRP_ERR_STATUS(0x1000, 0x20) 158 #ifdef BALTECH_SDK_INTERNAL 162 #define BRP_Mif_ErrHwNotSupported BRP_ERR_STATUS(0x1000, 0x21) 163 #endif // BALTECH_SDK_INTERNAL 164 #ifdef BALTECH_SDK_INTERNAL 168 #define BRP_Mif_ErrSamUnlock BRP_ERR_STATUS(0x1000, 0x22) 169 #endif // BALTECH_SDK_INTERNAL 170 #ifdef BALTECH_SDK_INTERNAL 174 #define BRP_Mif_ErrSamCommunication BRP_ERR_STATUS(0x1000, 0x23) 175 #endif // BALTECH_SDK_INTERNAL 189 #ifdef BRP_SUPPORT_LEGACY_METHODS 194 #ifdef BALTECH_SDK_INTERNAL 212 #ifdef BRP_SUPPORT_LEGACY_METHODS 215 brp_errcode brp_Mif_Request(brp_Mif_Request_t params);
217 #endif // BALTECH_SDK_INTERNAL 218 #ifdef BALTECH_SDK_INTERNAL 225 } brp_Mif_Anticoll_t;
240 #ifdef BRP_SUPPORT_LEGACY_METHODS 243 brp_errcode brp_Mif_Anticoll(brp_Mif_Anticoll_t params);
245 #endif // BALTECH_SDK_INTERNAL 246 #ifdef BALTECH_SDK_INTERNAL 262 #ifdef BRP_SUPPORT_LEGACY_METHODS 265 brp_errcode brp_Mif_Select(brp_Mif_Select_t params);
267 #endif // BALTECH_SDK_INTERNAL 287 #ifdef BRP_SUPPORT_LEGACY_METHODS 311 #ifdef BRP_SUPPORT_LEGACY_METHODS 331 #ifdef BRP_SUPPORT_LEGACY_METHODS 349 #ifdef BRP_SUPPORT_LEGACY_METHODS 377 #ifdef BRP_SUPPORT_LEGACY_METHODS 399 #ifdef BRP_SUPPORT_LEGACY_METHODS 419 #ifdef BRP_SUPPORT_LEGACY_METHODS 424 #ifdef BALTECH_SDK_INTERNAL 434 #ifdef BRP_SUPPORT_LEGACY_METHODS 439 #endif // BALTECH_SDK_INTERNAL 469 #ifdef BRP_SUPPORT_LEGACY_METHODS 497 #ifdef BRP_SUPPORT_LEGACY_METHODS 511 #ifdef BRP_SUPPORT_LEGACY_METHODS 541 #ifdef BRP_SUPPORT_LEGACY_METHODS 565 #ifdef BRP_SUPPORT_LEGACY_METHODS 593 #ifdef BRP_SUPPORT_LEGACY_METHODS 625 #ifdef BRP_SUPPORT_LEGACY_METHODS 659 #ifdef BRP_SUPPORT_LEGACY_METHODS 660 brp_errcode brp_Mif_ProxCheck(
brp_protocol protocol,
unsigned M,
bool DisableIsoWrapping,
bool UseExtProxKey,
bool DiversifyProxKey,
bool UseProxKey,
unsigned ProxKeyIdx,
brp_buf DivData,
size_t DivData_len,
brp_buf ProxKey,
size_t ProxKey_len);
679 #ifdef BRP_SUPPORT_LEGACY_METHODS 699 #ifdef BRP_SUPPORT_LEGACY_METHODS 751 #ifdef BRP_SUPPORT_LEGACY_METHODS 752 brp_errcode brp_Mif_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,
brp_Mif_VirtualCardSelect_FciType* FciType,
brp_buf* Fci,
size_t* Fci_len,
brp_mempool *mempool);
781 #ifdef BRP_SUPPORT_LEGACY_METHODS 803 #ifdef BRP_SUPPORT_LEGACY_METHODS 819 #ifdef BRP_SUPPORT_LEGACY_METHODS
brp_errcode brp_Mif_AuthE2(brp_Mif_AuthE2_t params)
This command authenticates a certain sector of a card using a key from the secure EEPROM of the Balte...
brp_errcode brp_Mif_CommitReaderID(brp_Mif_CommitReaderID_t params)
This commands commits a reader ID from a card and returns the encrypted TMRI to the host...
brp_errcode brp_Mif_Write(brp_Mif_Write_t params)
This command write data to a specified block of the currently selected card, providing authentication...
brp_errcode brp_Mif_ResetAuth(brp_Mif_ResetAuth_t params)
This command resets the reader's authentication state (used for MIFARE Pro specific Read/Write counte...
brp_Mif_SectorSwitch_SectorSpec_Entry * SectorSpec
brp_Mif_ChangeValueBackup_Mode
Access mode.
brp_Mif_AuthUser_AuthMode
Authentication Mode.
brp_Mif_AuthE2_AuthMode AuthMode
unsigned int brp_errcode
This type is used library-wide for passing error codes in the return value of functions.
brp_errcode brp_Mif_ValueSL3(brp_Mif_ValueSL3_t params)
This command performs an operation on a value block.
brp_buf SectorSwitchKeyDivData
brp_Mif_AuthE2_AuthMode
Authentication Mode.
struct brp_protocol_t * brp_protocol
This is a generic handle of a protocol.
size_t * TMCounterTMValue_len
brp_Mif_ChangeValue_Mode
Access mode.
brp_Mif_ValueSL3_Cmd
Selects a value operation.
brp_errcode brp_Mif_SetFraming(brp_Mif_SetFraming_t params)
This command switches the communication protocol mode for MIFARE Plus EV1 cards.
brp_errcode brp_Mif_GetCardVersion(brp_Mif_GetCardVersion_t params)
This command returns HW- / SW- / Production-Information.
brp_errcode brp_Mif_AuthUser(brp_Mif_AuthUser_t params)
This command authenticates a certain sector of a card using the key specified in the Key variable...
struct brp_mempool_object_t * brp_mempool
mempool handle.
bool ForceVcsAuthentication
brp_errcode brp_Mif_ChangeValueBackup(brp_Mif_ChangeValueBackup_t params)
This command is identical to brp_Mif_ChangeValue(), but can only be used for MIFARE cards which suppo...
brp_errcode brp_Mif_AuthUserExtended(brp_Mif_AuthUserExtended_t params)
This command is identical to the brp_Mif_AuthUser() command with the exception that it supports stron...
brp_Mif_VirtualCardSelect_FciType
Type of File Control Information returned.
brp_errcode brp_Mif_AuthE2Extended(brp_Mif_AuthE2Extended_t params)
This command is identical to the brp_Mif_AuthE2() command with the exception that it supports stronge...
unsigned SectorSwitchKeyIdx
brp_errcode brp_Mif_TransferBlock(brp_Mif_TransferBlock_t params)
This command transfers data from the card's internal Transfer Buffer to a specified block...
brp_errcode brp_Mif_SectorSwitch(brp_Mif_SectorSwitch_t params)
This command performs a sector switch command (only for EV1 cards).
brp_errcode brp_Mif_VirtualCardSelect(brp_Mif_VirtualCardSelect_t params)
Command is only supported by MIFARE Plus EV1 cards.
size_t * NxpSignature_len
brp_errcode brp_Mif_Read(brp_Mif_Read_t params)
This command reads data from a specified block of the currently selected card, providing authenticati...
brp_Mif_ChangeValueBackup_Mode Mode
brp_Mif_SetFraming_CommMode
Defines 14443-4 communication mode for MIFARE Plus EV1 cards.
brp_errcode brp_Mif_WriteSL3(brp_Mif_WriteSL3_t params)
This command writes blocks to an SL3-authenticated MIFARE Pro card.
brp_errcode brp_Mif_ProxCheck(brp_Mif_ProxCheck_t params)
This command performs a proximity check.
brp_errcode brp_Mif_ReadSL3(brp_Mif_ReadSL3_t params)
This command reads blocks from an SL3-authenticated MIFARE Pro card.
size_t SectorSwitchKeyDivData_len
brp_Mif_AuthUserExtended_AuthLevel AuthLevel
brp_errcode brp_Mif_LoadKey(brp_Mif_LoadKey_t params)
This command writes a MIFARE Classic key to the reader's secure key memory.
brp_errcode brp_Mif_ChangeAESKey(brp_Mif_ChangeAESKey_t params)
This command changes an AES key on a MIFARE Plus card.
brp_buf * TMCounterTMValue
brp_Mif_AuthE2Extended_AuthLevel
Desired authentication level.
brp_Mif_AuthUserExtended_AuthLevel
Desired authentication level.
size_t SectorKeysDivData_len
brp_buf SectorKeysDivData
unsigned char * brp_buf
represents a pointer to a protocol data buffer.
brp_Mif_ChangeValue_Mode Mode
brp_Mif_AuthE2Extended_AuthLevel AuthLevel
brp_Mif_AuthUser_AuthMode AuthMode
brp_Mif_SetFraming_CommMode CommMode
brp_errcode brp_Mif_ChangeValue(brp_Mif_ChangeValue_t params)
This command uses the value block specified by the Block parameter and performs an operation given by...
brp_errcode brp_Mif_ReadSig(brp_Mif_ReadSig_t params)
brp_Mif_VirtualCardSelect_FciType * FciType