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 CardFamiliesFilter, bool Reselect, bool 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 Id, unsigned Adr, unsigned 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 Id, unsigned Adr, brp_buf Data, size_t 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 AssumedCardType, brp_buf Cmd, size_t 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 ConsideredCardType, brp_VHL_Setup_HasMifareKey HasMifareKey, brp_buf MifareKey, brp_VHL_Setup_MifareHasAsKeyA MifareHasAsKeyA, bool MifareAsKeyA, brp_VHL_Setup_MifareHasMadId MifareHasMadId, unsigned MifareMadId, brp_VHL_Setup_DesfireHasAppId DesfireHasAppId, unsigned DesfireAppId, brp_VHL_Setup_HasDesfireFileDesc HasDesfireFileDesc, brp_DesfireFileDescription DesfireFileDesc, brp_buf DesfireKey, size_t DesfireKey_len, brp_buf LegicSegmentInfo, size_t LegicSegmentInfo_len, brp_VHL_Setup_LegicHasEnStamp LegicHasEnStamp, bool LegicEnStamp, brp_VHL_Setup_LegicHasAdrMode LegicHasAdrMode, brp_VHL_Setup_LegicAdrMode LegicAdrMode, brp_VHL_Setup_Iso15HasFirstBlock Iso15HasFirstBlock, unsigned Iso15FirstBlock, brp_VHL_Setup_Iso15HasBlockCount Iso15HasBlockCount, unsigned Iso15BlockCount, brp_VHL_Setup_Iso15HasOptionFlag Iso15HasOptionFlag, brp_VHL_Setup_Iso15OptionFlag Iso15OptionFlag, brp_VHL_Setup_Iso15HasBlockSize Iso15HasBlockSize, unsigned Iso15BlockSize, unsigned Iso14SelectFileCmdListLen, brp_VHL_Setup_Iso14SelectFileCmdList_Entry* Iso14SelectFileCmdList, size_t Iso14SelectFileCmdList_len, brp_VHL_Setup_Iso14HasFileLen Iso14HasFileLen, unsigned Iso14FileLen, brp_VHL_Setup_Iso14HasApduTimeout Iso14HasApduTimeout, unsigned 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 CustomKey, bool KeyA, brp_buf Key);
398 #else
399 brp_errcode brp_VHL_SetupMifare(brp_VHL_SetupMifare_t params);
400 #endif
401 #endif // BALTECH_SDK_INTERNAL
402 #ifdef BALTECH_SDK_INTERNAL
403 typedef struct {
404  brp_protocol protocol;
405  unsigned StampLen;
406  unsigned SegmentID;
407  brp_buf Stamp;
408  size_t Stamp_len;
409 } brp_VHL_SetupLegic_t;
428 #ifdef BRP_SUPPORT_LEGACY_METHODS
429 brp_errcode brp_VHL_SetupLegic(brp_protocol protocol, unsigned StampLen, unsigned SegmentID, brp_buf Stamp, size_t Stamp_len);
430 #else
431 brp_errcode brp_VHL_SetupLegic(brp_VHL_SetupLegic_t params);
432 #endif
433 #endif // BALTECH_SDK_INTERNAL
434 #ifdef BALTECH_SDK_INTERNAL
435 typedef struct {
436  brp_protocol protocol;
437  unsigned FirstBlock;
438  unsigned BlockCount;
439  bool OptionFlag;
440 } brp_VHL_SetupISO15_t;
456 #ifdef BRP_SUPPORT_LEGACY_METHODS
457 brp_errcode brp_VHL_SetupISO15(brp_protocol protocol, unsigned FirstBlock, unsigned BlockCount, bool OptionFlag);
458 #else
459 brp_errcode brp_VHL_SetupISO15(brp_VHL_SetupISO15_t params);
460 #endif
461 #endif // BALTECH_SDK_INTERNAL
462 typedef struct {
464  bool* Failed;
475 #ifdef BRP_SUPPORT_LEGACY_METHODS
476 brp_errcode brp_VHL_CheckReconfigErr(brp_protocol protocol, bool* Failed);
477 #else
479 #endif
480 typedef struct {
483  bool Reset;
486  size_t Cmd_len;
489  size_t* Resp_len;
522 #ifdef BRP_SUPPORT_LEGACY_METHODS
523 brp_errcode brp_VHL_ExchangeLongAPDU(brp_protocol protocol, brp_CardType AssumedCardType, bool Reset, bool ContinueCmd, brp_buf Cmd, size_t Cmd_len, bool* ContinueResp, brp_buf* Resp, size_t* Resp_len, brp_mempool *mempool);
524 #else
526 #endif
527 typedef struct {
529  unsigned Id;
530  unsigned* Len;
531  unsigned* BlockSize;
550 #ifdef BRP_SUPPORT_LEGACY_METHODS
551 brp_errcode brp_VHL_GetFileInfo(brp_protocol protocol, unsigned Id, unsigned* Len, unsigned* BlockSize);
552 #else
554 #endif
555 typedef struct {
558  size_t* ATR_len;
570 #ifdef BRP_SUPPORT_LEGACY_METHODS
571 brp_errcode brp_VHL_GetATR(brp_protocol protocol, brp_buf* ATR, size_t* ATR_len, brp_mempool *mempool);
572 #else
574 #endif
575 #ifdef BALTECH_SDK_INTERNAL
576 typedef struct {
577  brp_protocol protocol;
578  unsigned Id;
579 } brp_VHL_Format_t;
589 #ifdef BRP_SUPPORT_LEGACY_METHODS
590 brp_errcode brp_VHL_Format(brp_protocol protocol, unsigned Id);
591 #else
592 brp_errcode brp_VHL_Format(brp_VHL_Format_t params);
593 #endif
594 #endif // BALTECH_SDK_INTERNAL
595 typedef struct {
597  char* FileName;
598  unsigned* Id;
619 #ifdef BRP_SUPPORT_LEGACY_METHODS
620 brp_errcode brp_VHL_ResolveFilename(brp_protocol protocol, char* FileName, unsigned* Id);
621 #else
623 #endif
624 typedef struct {
637 #ifdef BRP_SUPPORT_LEGACY_METHODS
638 brp_errcode brp_VHL_GetCardType(brp_protocol protocol, brp_CardType* SelectedCardType);
639 #else
641 #endif
642 #endif
643 
unsigned Id
Definition: vhl.h:529
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:490
brp_VHL_Setup_MifareHasMadId
Definition: typedefs.h:2331
size_t * Data_len
Definition: vhl.h:158
unsigned Iso14SelectFileCmdListLen
Definition: vhl.h:311
brp_CardType
Definition: typedefs.h:4040
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 brp_VHL_Selec...
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:2499
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:530
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:531
brp_VHL_Setup_LegicAdrMode
Specifies the addressing mode.
Definition: typedefs.h:2403
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:2303
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:556
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:2580
brp_CardFamilies CardFamiliesFilter
Definition: vhl.h:85
brp_CardType ConsideredCardType
Definition: vhl.h:284
brp_VHL_Setup_Iso15HasFirstBlock
Definition: typedefs.h:2439
brp_VHL_Setup_LegicAdrMode LegicAdrMode
Definition: vhl.h:302
brp_VHL_Setup_LegicHasEnStamp
Definition: typedefs.h:2373
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:528
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:558
brp_protocol protocol
Definition: vhl.h:481
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:2387
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:2359
brp_VHL_Setup_Iso14HasFileLen Iso14HasFileLen
Definition: vhl.h:314
brp_protocol protocol
Definition: vhl.h:596
brp_errcode brp_VHL_IsSelected(brp_VHL_IsSelected_t params)
This command checks if the card/label selected by the last execution of the brp_VHL_Select() command ...
brp_VHL_Setup_Iso15HasBlockCount
Definition: typedefs.h:2453
brp_mempool * mempool
Definition: vhl.h:132
brp_buf * ATR
Definition: vhl.h:557
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:2481
brp_VHL_Setup_Iso15HasOptionFlag
Definition: typedefs.h:2467
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:463
brp_VHL_Setup_Iso14HasFileLen
Definition: typedefs.h:2566
unsigned Iso15BlockSize
Definition: vhl.h:310
brp_VHL_Setup_DesfireHasAppId DesfireHasAppId
Definition: vhl.h:291
brp_VHL_Setup_DesfireHasAppId
Definition: typedefs.h:2345
size_t * Snr_len
Definition: vhl.h:131
brp_mempool * mempool
Definition: vhl.h:559
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:2533
brp_CardType AssumedCardType
Definition: vhl.h:482
brp_VHL_Setup_MifareHasMadId MifareHasMadId
Definition: vhl.h:289
brp_CardType * SelectedCardType
Definition: vhl.h:626
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:625
brp_VHL_Setup_MifareHasAsKeyA
Definition: typedefs.h:2317
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