]>
Commit | Line | Data |
---|---|---|
111a38b0 RR |
1 | /* |
2 | * This work is licensed under the terms of the GNU LGPL, version 2.1 or later. | |
3 | * See the COPYING.LIB file in the top-level directory. | |
4 | */ | |
5 | #ifndef VCARDT_H | |
6 | #define VCARDT_H 1 | |
7 | ||
8 | /* | |
9 | * these should come from some common spice header file | |
10 | */ | |
11 | #include <assert.h> | |
12 | #ifndef MIN | |
13 | #define MIN(x, y) ((x) > (y) ? (y) : (x)) | |
14 | #define MAX(x, y) ((x) > (y) ? (x) : (y)) | |
15 | #endif | |
16 | ||
17 | typedef struct VCardStruct VCard; | |
18 | typedef struct VCardAPDUStruct VCardAPDU; | |
19 | typedef struct VCardResponseStruct VCardResponse; | |
20 | typedef struct VCardBufferResponseStruct VCardBufferResponse; | |
21 | typedef struct VCardAppletStruct VCardApplet; | |
22 | typedef struct VCardAppletPrivateStruct VCardAppletPrivate; | |
23 | typedef struct VCardKeyStruct VCardKey; /* opaque */ | |
24 | typedef struct VCardEmulStruct VCardEmul; | |
25 | ||
26 | #define MAX_CHANNEL 4 | |
27 | ||
28 | /* create an ATR with appropriate historical bytes */ | |
29 | #define VCARD_ATR_PREFIX(size) 0x3b, 0x66+(size), 0x00, 0xff, \ | |
30 | 'V', 'C', 'A', 'R', 'D', '_' | |
31 | ||
32 | ||
33 | typedef enum { | |
34 | VCARD_DONE, | |
35 | VCARD_NEXT, | |
36 | VCARD_FAIL | |
37 | } VCardStatus; | |
38 | ||
39 | typedef enum { | |
40 | VCARD_FILE_SYSTEM, | |
41 | VCARD_VM, | |
42 | VCARD_DIRECT | |
43 | } VCardType; | |
44 | ||
45 | typedef enum { | |
46 | VCARD_POWER_ON, | |
47 | VCARD_POWER_OFF | |
48 | } VCardPower; | |
49 | ||
50 | typedef VCardStatus (*VCardProcessAPDU)(VCard *card, VCardAPDU *apdu, | |
51 | VCardResponse **response); | |
52 | typedef VCardStatus (*VCardResetApplet)(VCard *card, int channel); | |
53 | typedef void (*VCardAppletPrivateFree) (VCardAppletPrivate *); | |
54 | typedef void (*VCardEmulFree) (VCardEmul *); | |
55 | typedef void (*VCardGetAtr) (VCard *, unsigned char *atr, int *atr_len); | |
56 | ||
57 | struct VCardBufferResponseStruct { | |
58 | unsigned char *buffer; | |
59 | int buffer_len; | |
60 | unsigned char *current; | |
61 | int len; | |
62 | }; | |
63 | ||
64 | #endif |