Statistics
| Branch: | Revision:

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