root / libcacard / vcardt.h @ 0b6a16c1
History | View | Annotate | Download (1.5 kB)
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 |
typedef enum { |
29 |
VCARD_DONE, |
30 |
VCARD_NEXT, |
31 |
VCARD_FAIL |
32 |
} VCardStatus; |
33 |
|
34 |
typedef enum { |
35 |
VCARD_FILE_SYSTEM, |
36 |
VCARD_VM, |
37 |
VCARD_DIRECT |
38 |
} VCardType; |
39 |
|
40 |
typedef enum { |
41 |
VCARD_POWER_ON, |
42 |
VCARD_POWER_OFF |
43 |
} VCardPower; |
44 |
|
45 |
typedef VCardStatus (*VCardProcessAPDU)(VCard *card, VCardAPDU *apdu,
|
46 |
VCardResponse **response); |
47 |
typedef VCardStatus (*VCardResetApplet)(VCard *card, int channel); |
48 |
typedef void (*VCardAppletPrivateFree) (VCardAppletPrivate *); |
49 |
typedef void (*VCardEmulFree) (VCardEmul *); |
50 |
typedef void (*VCardGetAtr) (VCard *, unsigned char *atr, int *atr_len); |
51 |
|
52 |
struct VCardBufferResponseStruct {
|
53 |
unsigned char *buffer; |
54 |
int buffer_len;
|
55 |
unsigned char *current; |
56 |
int len;
|
57 |
}; |
58 |
|
59 |
#endif
|