1 /***************************************************************************
2  $RCSfile$
3                              -------------------
4     cvs         : $Id: crypttoken.h 1113 2007-01-10 09:14:16Z martin $
5     begin       : Wed Mar 16 2005
6     copyright   : (C) 2005 by Martin Preuss
7     email       : martin@libchipcard.de
8 
9  ***************************************************************************
10  *          Please see toplevel file COPYING for license details           *
11  ***************************************************************************/
12 
13 
14 #ifndef GWEN_CRYPT_CRYPTTOKEN_P_H
15 #define GWEN_CRYPT_CRYPTTOKEN_P_H
16 
17 
18 #include <gwenhywfar/ct_be.h>
19 
20 
21 
22 struct GWEN_CRYPT_TOKEN {
23   GWEN_INHERIT_ELEMENT(GWEN_CRYPT_TOKEN)
24   GWEN_LIST_ELEMENT(GWEN_CRYPT_TOKEN)
25 
26   GWEN_CRYPT_TOKEN_DEVICE device;
27   char *typeName;
28   char *tokenName;
29 
30   char *friendlyName;
31 
32   uint32_t modes;
33   uint32_t flags;
34 
35   GWEN_CRYPT_TOKEN_OPEN_FN openFn;
36   GWEN_CRYPT_TOKEN_CREATE_FN createFn;
37   GWEN_CRYPT_TOKEN_CLOSE_FN closeFn;
38 
39   GWEN_CRYPT_TOKEN_GETKEYIDLIST_FN getKeyIdListFn;
40   GWEN_CRYPT_TOKEN_GETKEYINFO_FN getKeyInfoFn;
41   GWEN_CRYPT_TOKEN_SETKEYINFO_FN setKeyInfoFn;
42 
43   GWEN_CRYPT_TOKEN_GETCONTEXTIDLIST_FN getContextIdListFn;
44   GWEN_CRYPT_TOKEN_GETCONTEXT_FN getContextFn;
45   GWEN_CRYPT_TOKEN_SETCONTEXT_FN setContextFn;
46 
47   GWEN_CRYPT_TOKEN_SIGN_FN signFn;
48   GWEN_CRYPT_TOKEN_VERIFY_FN verifyFn;
49   GWEN_CRYPT_TOKEN_ENCIPHER_FN encipherFn;
50   GWEN_CRYPT_TOKEN_DECIPHER_FN decipherFn;
51 
52   GWEN_CRYPT_TOKEN_CHANGEPIN_FN changePinFn;
53 
54   GWEN_CRYPT_TOKEN_GENERATEKEY_FN generateKeyFn;
55 
56   GWEN_CRYPT_TOKEN_ACTIVATEKEY_FN activateKeyFn;
57 
58   int openCount;
59 
60   int refCount;
61 };
62 
63 
64 
65 
66 
67 #endif
68 
69 
70