summaryrefslogtreecommitdiff
path: root/vcard_emul_type.h
blob: a17dbbdb7d1c100340d17ec189dfdb28dc871608 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
/*
 *  This header file abstracts the different card types. The goal is new card types can easily
 *  be added by simply changing this file and vcard_emul_type.c. It is currently not a requirement
 *  to dynamically add new card types.
 */

#ifndef VCARD_EMUL_TYPE_H
#define VCARD_EMUL_TYPE_H 1
#include "vcardt.h"
#include "vreadert.h"

/*
 * types
 */
typedef enum {
     VCARD_EMUL_NONE =0,
     VCARD_EMUL_CAC
} VCardEmulType;

/* functions used by the rest of the emulator */
VCardStatus vcard_init(VCard *vcard, VCardEmulType type, const char * flags, 
                       unsigned char * const *cert, int cert_len[], VCardKey *key[], 
                       int cert_count);
VCardEmulType vcard_emul_type_select(VReader *vreader);
VCardEmulType vcard_emul_type_from_string(char *type_string);

/* forward declarations of emul type functions used by vcard_emul_type.c */
VCardStatus cac_card_init(VCard *vcard, const char * flags, unsigned char *const *cert, 
                          int cert_len[], VCardKey *key[], int cert_count);
VCardStatus cac_is_cac_card(VReader *reader);
#endif