BALTECH SDK wrapper functions reference
vhl.h
Go to the documentation of this file.
1 
14 #ifndef __BRP_BALTECH_SDK_CMDS_VHL_H__
15 #define __BRP_BALTECH_SDK_CMDS_VHL_H__
16 #include "../typedefs.h"
28 #define BRP_VHL_ErrNoTag BRP_ERR_STATUS(0x0100, 0x01)
29 
32 #define BRP_VHL_ErrCardNotSelected BRP_ERR_STATUS(0x0100, 0x02)
33 
36 #define BRP_VHL_ErrHf BRP_ERR_STATUS(0x0100, 0x03)
37 
40 #define BRP_VHL_ErrConfig BRP_ERR_STATUS(0x0100, 0x04)
41 
44 #define BRP_VHL_ErrAuth BRP_ERR_STATUS(0x0100, 0x05)
45 
48 #define BRP_VHL_ErrRead BRP_ERR_STATUS(0x0100, 0x06)
49 
52 #define BRP_VHL_ErrWrite BRP_ERR_STATUS(0x0100, 0x07)
53 
56 #define BRP_VHL_ConfcardRead BRP_ERR_STATUS(0x0100, 0x08)
57 #ifdef BALTECH_SDK_INTERNAL
58 
61 #define BRP_VHL_ErrInvalidCardType BRP_ERR_STATUS(0x0100, 0x09)
62 #endif // BALTECH_SDK_INTERNAL
63 #ifdef BALTECH_SDK_INTERNAL
64 
67 #define BRP_VHL_ErrNotSupported BRP_ERR_STATUS(0x0100, 0x0A)
68 #endif // BALTECH_SDK_INTERNAL
69 #ifdef BALTECH_SDK_INTERNAL
70 
73 #define BRP_VHL_ErrFormat BRP_ERR_STATUS(0x0100, 0x0B)
74 #endif // BALTECH_SDK_INTERNAL
75 
78 #define BRP_VHL_ErrHw BRP_ERR_STATUS(0x0100, 0x0C)
79 
82 #define BRP_VHL_ErrApdu BRP_ERR_STATUS(0x0100, 0x0D)
83 typedef struct {
86  bool Reselect;
123 #ifdef BRP_SUPPORT_LEGACY_METHODS
124 brp_errcode brp_VHL_Select(brp_protocol protocol, brp_CardFamilies _input_CardFamiliesFilter, bool _input_Reselect, bool _input_AcceptConfCard, brp_CardType* SelectedCardType);
125 #else
127 #endif
128 typedef struct {
131  size_t* Snr_len;
147 #ifdef BRP_SUPPORT_LEGACY_METHODS
148 brp_errcode brp_VHL_GetSnr(brp_protocol protocol, brp_buf* Snr, size_t* Snr_len, brp_mempool *mempool);
149 #else
151 #endif
152 typedef struct {
154  unsigned Id;
155  unsigned Adr;
156  unsigned Len;
158  size_t* Data_len;
173 #ifdef BRP_SUPPORT_LEGACY_METHODS
174 brp_errcode brp_VHL_Read(brp_protocol protocol, unsigned _input_Id, unsigned _input_Adr, unsigned _input_Len, brp_buf* Data, size_t* Data_len, brp_mempool *mempool);
175 #else
177 #endif
178 typedef struct {
180  unsigned Id;
181  unsigned Adr;
183  size_t Data_len;
195 #ifdef BRP_SUPPORT_LEGACY_METHODS
196 brp_errcode brp_VHL_Write(brp_protocol protocol, unsigned _input_Id, unsigned _input_Adr, brp_buf _input_Data, size_t _input_Data_len);
197 #else
199 #endif
200 typedef struct {
211 #ifdef BRP_SUPPORT_LEGACY_METHODS
213 #else
215 #endif
216 #ifdef BALTECH_SDK_INTERNAL
217 typedef struct {
218  brp_protocol protocol;
219  brp_buf* ATR;
220  size_t* ATR_len;
221  brp_mempool *mempool;
222 } brp_VHL_GetLegacyATR_t;
240 #ifdef BRP_SUPPORT_LEGACY_METHODS
241 brp_errcode brp_VHL_GetLegacyATR(brp_protocol protocol, brp_buf* ATR, size_t* ATR_len, brp_mempool *mempool);
242 #else
243 brp_errcode brp_VHL_GetLegacyATR(brp_VHL_GetLegacyATR_t params);
244 #endif
245 #endif // BALTECH_SDK_INTERNAL
246 typedef struct {
250  size_t Cmd_len;
252  size_t* Resp_len;
277 #ifdef BRP_SUPPORT_LEGACY_METHODS
278 brp_errcode brp_VHL_ExchangeAPDU(brp_protocol protocol, brp_CardType _input_AssumedCardType, brp_buf _input_Cmd, size_t _input_Cmd_len, brp_buf* Resp, size_t* Resp_len, brp_mempool *mempool);
279 #else
281 #endif
282 typedef struct {
290  unsigned MifareMadId;
292  unsigned DesfireAppId;
304  unsigned Iso15FirstBlock;
306  unsigned Iso15BlockCount;
310  unsigned Iso15BlockSize;
315  unsigned Iso14FileLen;
369 #ifdef BRP_SUPPORT_LEGACY_METHODS
370 brp_errcode brp_VHL_Setup(brp_protocol protocol, brp_CardType _input_ConsideredCardType, brp_VHL_Setup_HasMifareKey _input_HasMifareKey, brp_buf _input_MifareKey, brp_VHL_Setup_MifareHasAsKeyA _input_MifareHasAsKeyA, bool _input_MifareAsKeyA, brp_VHL_Setup_MifareHasMadId _input_MifareHasMadId, unsigned _input_MifareMadId, brp_VHL_Setup_DesfireHasAppId _input_DesfireHasAppId, unsigned _input_DesfireAppId, brp_VHL_Setup_HasDesfireFileDesc _input_HasDesfireFileDesc, brp_DesfireFileDescription _input_DesfireFileDesc, brp_buf _input_DesfireKey, size_t _input_DesfireKey_len, brp_buf _input_LegicSegmentInfo, size_t _input_LegicSegmentInfo_len, brp_VHL_Setup_LegicHasEnStamp _input_LegicHasEnStamp, bool _input_LegicEnStamp, brp_VHL_Setup_LegicHasAdrMode _input_LegicHasAdrMode, brp_VHL_Setup_LegicAdrMode _input_LegicAdrMode, brp_VHL_Setup_Iso15HasFirstBlock _input_Iso15HasFirstBlock, unsigned _input_Iso15FirstBlock, brp_VHL_Setup_Iso15HasBlockCount _input_Iso15HasBlockCount, unsigned _input_Iso15BlockCount, brp_VHL_Setup_Iso15HasOptionFlag _input_Iso15HasOptionFlag, brp_VHL_Setup_Iso15OptionFlag _input_Iso15OptionFlag, brp_VHL_Setup_Iso15HasBlockSize _input_Iso15HasBlockSize, unsigned _input_Iso15BlockSize, unsigned _input_Iso14SelectFileCmdListLen, brp_VHL_Setup_Iso14SelectFileCmdList_Entry* _input_Iso14SelectFileCmdList, size_t _input_Iso14SelectFileCmdList_len, brp_VHL_Setup_Iso14HasFileLen _input_Iso14HasFileLen, unsigned _input_Iso14FileLen, brp_VHL_Setup_Iso14HasApduTimeout _input_Iso14HasApduTimeout, unsigned _input_Iso14ApduTimeout);
371 #else
373 #endif
374 #ifdef BALTECH_SDK_INTERNAL
375 typedef struct {
376  brp_protocol protocol;
377  bool CustomKey;
378  bool KeyA;
379  brp_buf Key;
380 } brp_VHL_SetupMifare_t;
396 #ifdef BRP_SUPPORT_LEGACY_METHODS
397 brp_errcode brp_VHL_SetupMifare(brp_protocol protocol, bool _input_CustomKey, bool _input_KeyA, brp_buf _input_Key);
398 #else
399 brp_errcode brp_VHL_SetupMifare(brp_VHL_SetupMifare_t params);
400 #endif
401 typedef struct {
402  brp_protocol protocol;
403  unsigned StampLen;
404  unsigned SegmentID;
405  brp_buf Stamp;
406  size_t Stamp_len;
407 } brp_VHL_SetupLegic_t;
426 #ifdef BRP_SUPPORT_LEGACY_METHODS
427 brp_errcode brp_VHL_SetupLegic(brp_protocol protocol, unsigned _input_StampLen, unsigned _input_SegmentID, brp_buf _input_Stamp, size_t _input_Stamp_len);
428 #else
429 brp_errcode brp_VHL_SetupLegic(brp_VHL_SetupLegic_t params);
430 #endif
431 typedef struct {
432  brp_protocol protocol;
433  unsigned FirstBlock;
434  unsigned BlockCount;
435  bool OptionFlag;
436 } brp_VHL_SetupISO15_t;
452 #ifdef BRP_SUPPORT_LEGACY_METHODS
453 brp_errcode brp_VHL_SetupISO15(brp_protocol protocol, unsigned _input_FirstBlock, unsigned _input_BlockCount, bool _input_OptionFlag);
454 #else
455 brp_errcode brp_VHL_SetupISO15(brp_VHL_SetupISO15_t params);
456 #endif
457 #endif // BALTECH_SDK_INTERNAL
458 typedef struct {
460  bool* Failed;
471 #ifdef BRP_SUPPORT_LEGACY_METHODS
472 brp_errcode brp_VHL_CheckReconfigErr(brp_protocol protocol, bool* Failed);
473 #else
475 #endif
476 typedef struct {
479  bool Reset;
482  size_t Cmd_len;
485  size_t* Resp_len;
518 #ifdef BRP_SUPPORT_LEGACY_METHODS
519 brp_errcode brp_VHL_ExchangeLongAPDU(brp_protocol protocol, brp_CardType _input_AssumedCardType, bool _input_Reset, bool _input_ContinueCmd, brp_buf _input_Cmd, size_t _input_Cmd_len, bool* ContinueResp, brp_buf* Resp, size_t* Resp_len, brp_mempool *mempool);
520 #else
522 #endif
523 typedef struct {
525  unsigned Id;
526  unsigned* Len;
527  unsigned* BlockSize;
546 #ifdef BRP_SUPPORT_LEGACY_METHODS
547 brp_errcode brp_VHL_GetFileInfo(brp_protocol protocol, unsigned _input_Id, unsigned* Len, unsigned* BlockSize);
548 #else
550 #endif
551 typedef struct {
554  size_t* ATR_len;
566 #ifdef BRP_SUPPORT_LEGACY_METHODS
567 brp_errcode brp_VHL_GetATR(brp_protocol protocol, brp_buf* ATR, size_t* ATR_len, brp_mempool *mempool);
568 #else
570 #endif
571 #ifdef BALTECH_SDK_INTERNAL
572 typedef struct {
573  brp_protocol protocol;
574  unsigned Id;
575 } brp_VHL_Format_t;
585 #ifdef BRP_SUPPORT_LEGACY_METHODS
586 brp_errcode brp_VHL_Format(brp_protocol protocol, unsigned _input_Id);
587 #else
588 brp_errcode brp_VHL_Format(brp_VHL_Format_t params);
589 #endif
590 #endif // BALTECH_SDK_INTERNAL
591 typedef struct {
593  char* FileName;
594  unsigned* Id;
615 #ifdef BRP_SUPPORT_LEGACY_METHODS
616 brp_errcode brp_VHL_ResolveFilename(brp_protocol protocol, char* _input_FileName, unsigned* Id);
617 #else
619 #endif
620 typedef struct {
633 #ifdef BRP_SUPPORT_LEGACY_METHODS
634 brp_errcode brp_VHL_GetCardType(brp_protocol protocol, brp_CardType* SelectedCardType);
635 #else
637 #endif
638 #endif
639 
unsigned Id
Definition: vhl.h:525
brp_VHL_Setup_Iso15HasBlockSize Iso15HasBlockSize
Definition: vhl.h:309
brp_VHL_Setup_HasMifareKey HasMifareKey
Definition: vhl.h:285
unsigned Iso14ApduTimeout
Definition: vhl.h:317
brp_VHL_Setup_MifareHasAsKeyA MifareHasAsKeyA
Definition: vhl.h:287
brp_mempool * mempool
Definition: vhl.h:486
brp_VHL_Setup_MifareHasMadId
Definition: typedefs.h:5976
size_t * Data_len
Definition: vhl.h:158
unsigned Iso14SelectFileCmdListLen
Definition: vhl.h:311
brp_CardType
Definition: typedefs.h:2563
brp_buf MifareKey
Definition: vhl.h:286
brp_protocol protocol
Definition: vhl.h:247
brp_errcode brp_VHL_CheckReconfigErr(brp_VHL_CheckReconfigErr_t params)
This command returns the status of the last reconfiguration with a ConfigCard using the VHL...
brp_protocol protocol
Definition: vhl.h:283
size_t DesfireKey_len
Definition: vhl.h:296
brp_mempool * mempool
Definition: vhl.h:253
brp_errcode brp_VHL_Read(brp_VHL_Read_t params)
This command reads data from a card based on a VHL file.
unsigned Iso15BlockCount
Definition: vhl.h:306
brp_VHL_Setup_Iso15HasBlockSize
Definition: typedefs.h:6235
size_t Iso14SelectFileCmdList_len
Definition: vhl.h:313
brp_protocol protocol
Definition: vhl.h:129
brp_DesfireFileDescription DesfireFileDesc
Definition: vhl.h:294
brp_VHL_Setup_LegicHasEnStamp LegicHasEnStamp
Definition: vhl.h:299
brp_VHL_Setup_HasDesfireFileDesc HasDesfireFileDesc
Definition: vhl.h:293
brp_errcode brp_VHL_ResolveFilename(brp_VHL_ResolveFilename_t params)
This command returns the ID of a VHL file based on its filename.
unsigned int brp_errcode
This type is used library-wide for passing error codes in the return value of functions.
Definition: errorcodes.h:23
size_t LegicSegmentInfo_len
Definition: vhl.h:298
unsigned * Len
Definition: vhl.h:526
brp_protocol protocol
Definition: vhl.h:201
brp_errcode brp_VHL_Write(brp_VHL_Write_t params)
This command writes data to a card based on a VHL file.
unsigned * BlockSize
Definition: vhl.h:527
brp_VHL_Setup_LegicAdrMode
Specifies the addressing mode.
Definition: typedefs.h:6093
unsigned Id
Definition: vhl.h:180
brp_buf * Data
Definition: vhl.h:157
unsigned Adr
Definition: vhl.h:155
unsigned DesfireAppId
Definition: vhl.h:292
brp_VHL_Setup_HasMifareKey
Definition: typedefs.h:5930
brp_mempool * mempool
Definition: vhl.h:159
brp_VHL_Setup_Iso15HasBlockCount Iso15HasBlockCount
Definition: vhl.h:305
struct brp_protocol_t * brp_protocol
This is a generic handle of a protocol.
Definition: protocol.h:34
brp_protocol protocol
Definition: vhl.h:552
unsigned Len
Definition: vhl.h:156
unsigned MifareMadId
Definition: vhl.h:290
unsigned Id
Definition: vhl.h:154
brp_VHL_Setup_Iso14HasApduTimeout
Definition: typedefs.h:6344
brp_CardFamilies CardFamiliesFilter
Definition: vhl.h:85
brp_CardType ConsideredCardType
Definition: vhl.h:284
brp_VHL_Setup_Iso15HasFirstBlock
Definition: typedefs.h:6138
brp_VHL_Setup_LegicAdrMode LegicAdrMode
Definition: vhl.h:302
brp_VHL_Setup_LegicHasEnStamp
Definition: typedefs.h:6045
brp_buf DesfireKey
Definition: vhl.h:295
struct brp_mempool_object_t * brp_mempool
mempool handle.
Definition: mempool.h:29
brp_protocol protocol
Definition: vhl.h:524
brp_errcode brp_VHL_GetFileInfo(brp_VHL_GetFileInfo_t params)
This command returns the available size of the VHL-file whose ID is specified by the ID parameter...
size_t * ATR_len
Definition: vhl.h:554
brp_protocol protocol
Definition: vhl.h:477
size_t Data_len
Definition: vhl.h:183
brp_errcode brp_VHL_GetCardType(brp_VHL_GetCardType_t params)
This command returns the card type of the currently selected card.
bool Reselect
Definition: vhl.h:86
unsigned Iso14FileLen
Definition: vhl.h:315
brp_buf * Snr
Definition: vhl.h:130
unsigned Iso15FirstBlock
Definition: vhl.h:304
bool MifareAsKeyA
Definition: vhl.h:288
bool AcceptConfCard
Definition: vhl.h:87
unsigned Adr
Definition: vhl.h:181
brp_VHL_Setup_Iso14HasApduTimeout Iso14HasApduTimeout
Definition: vhl.h:316
brp_VHL_Setup_LegicHasAdrMode
Definition: typedefs.h:6068
bool LegicEnStamp
Definition: vhl.h:300
brp_protocol protocol
Definition: vhl.h:84
brp_protocol protocol
Definition: vhl.h:179
brp_errcode brp_VHL_Setup(brp_VHL_Setup_t params)
This command creates a VHL file dynamically and transfers it to the reader's RAM. ...
brp_buf Data
Definition: vhl.h:182
brp_VHL_Setup_HasDesfireFileDesc
Definition: typedefs.h:6022
brp_VHL_Setup_Iso14HasFileLen Iso14HasFileLen
Definition: vhl.h:314
brp_protocol protocol
Definition: vhl.h:592
brp_errcode brp_VHL_IsSelected(brp_VHL_IsSelected_t params)
This command checks if the card/label selected by the last execution of the VHL.Select command is sti...
brp_VHL_Setup_Iso15HasBlockCount
Definition: typedefs.h:6161
brp_mempool * mempool
Definition: vhl.h:132
brp_buf * ATR
Definition: vhl.h:553
brp_CardType AssumedCardType
Definition: vhl.h:248
brp_errcode brp_VHL_Select(brp_VHL_Select_t params)
This command selects a card or tag in the antenna field for further operations.
brp_buf LegicSegmentInfo
Definition: vhl.h:297
brp_errcode brp_VHL_GetSnr(brp_VHL_GetSnr_t params)
This command returns the serial number (UID) of the currently selected card.
brp_buf * Resp
Definition: vhl.h:251
brp_VHL_Setup_Iso15OptionFlag
Option flag value for read/write operations.
Definition: typedefs.h:6207
brp_VHL_Setup_Iso15HasOptionFlag
Definition: typedefs.h:6184
brp_VHL_Setup_Iso15HasOptionFlag Iso15HasOptionFlag
Definition: vhl.h:307
brp_errcode brp_VHL_GetATR(brp_VHL_GetATR_t params)
This command returns the Answer to Reset (ATR) of the currently selected card as defined in the PC/SC...
brp_protocol protocol
Definition: vhl.h:459
brp_VHL_Setup_Iso14HasFileLen
Definition: typedefs.h:6321
unsigned Iso15BlockSize
Definition: vhl.h:310
brp_VHL_Setup_DesfireHasAppId DesfireHasAppId
Definition: vhl.h:291
brp_VHL_Setup_DesfireHasAppId
Definition: typedefs.h:5999
size_t * Snr_len
Definition: vhl.h:131
brp_mempool * mempool
Definition: vhl.h:555
unsigned char * brp_buf
represents a pointer to a protocol data buffer.
Definition: common.h:61
brp_errcode brp_VHL_ExchangeLongAPDU(brp_VHL_ExchangeLongAPDU_t params)
This command sends basic Inter-Industry commands to the currently selected card in accordance with th...
brp_VHL_Setup_Iso14SelectFileCmdList_Entry * Iso14SelectFileCmdList
Definition: vhl.h:312
size_t * Resp_len
Definition: vhl.h:252
Definition: typedefs.h:6288
brp_CardType AssumedCardType
Definition: vhl.h:478
brp_VHL_Setup_MifareHasMadId MifareHasMadId
Definition: vhl.h:289
brp_CardType * SelectedCardType
Definition: vhl.h:622
brp_protocol protocol
Definition: vhl.h:153
brp_VHL_Setup_LegicHasAdrMode LegicHasAdrMode
Definition: vhl.h:301
brp_VHL_Setup_Iso15OptionFlag Iso15OptionFlag
Definition: vhl.h:308
brp_protocol protocol
Definition: vhl.h:621
brp_VHL_Setup_MifareHasAsKeyA
Definition: typedefs.h:5953
brp_errcode brp_VHL_ExchangeAPDU(brp_VHL_ExchangeAPDU_t params)
This command sends APDUs to the currently selected card.
brp_VHL_Setup_Iso15HasFirstBlock Iso15HasFirstBlock
Definition: vhl.h:303
brp_CardType * SelectedCardType
Definition: vhl.h:88