Statistics
| Branch: | Revision:

root / libcacard / vcardt.h @ 111a38b0

History | View | Annotate | Download (1.7 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
/* 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