gwenhywfar  4.15.2beta
ct_be.h
Go to the documentation of this file.
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_BE_H
15 #define GWEN_CRYPT_CRYPTTOKEN_BE_H
16 
17 
18 #include <gwenhywfar/ct.h>
19 #include <gwenhywfar/inherit.h>
20 #include <gwenhywfar/buffer.h>
21 #include <gwenhywfar/hashalgo.h>
22 
23 
24 
26 
27 
28 
29 
30 
34 typedef int GWENHYWFAR_CB
35 (*GWEN_CRYPT_TOKEN_OPEN_FN)(GWEN_CRYPT_TOKEN *ct, int admin, uint32_t gid);
36 typedef int GWENHYWFAR_CB
38 typedef int GWENHYWFAR_CB
39 (*GWEN_CRYPT_TOKEN_CLOSE_FN)(GWEN_CRYPT_TOKEN *ct, int abandon, uint32_t gid);
40 
41 typedef int GWENHYWFAR_CB
43  uint32_t *pIdList,
44  uint32_t *pCount,
45  uint32_t gid);
48  uint32_t id,
49  uint32_t flags,
50  uint32_t gid);
51 
52 typedef int GWENHYWFAR_CB
54  uint32_t id,
55  const GWEN_CRYPT_TOKEN_KEYINFO *ki,
56  uint32_t gid);
57 
58 typedef int GWENHYWFAR_CB
60  uint32_t *pIdList,
61  uint32_t *pCount,
62  uint32_t gid);
65  uint32_t id,
66  uint32_t gid);
67 
68 typedef int GWENHYWFAR_CB
70  uint32_t id,
71  const GWEN_CRYPT_TOKEN_CONTEXT *ctx,
72  uint32_t gid);
73 
74 
75 typedef int GWENHYWFAR_CB
77  uint32_t keyId,
79  const uint8_t *pInData,
80  uint32_t inLen,
81  uint8_t *pSignatureData,
82  uint32_t *pSignatureLen,
83  uint32_t *pSeqCounter,
84  uint32_t gid);
85 
86 typedef int GWENHYWFAR_CB
88  uint32_t keyId,
90  const uint8_t *pInData,
91  uint32_t inLen,
92  const uint8_t *pSignatureData,
93  uint32_t signatureLen,
94  uint32_t seqCounter,
95  uint32_t gid);
96 
97 typedef int GWENHYWFAR_CB
99  uint32_t keyId,
101  const uint8_t *pInData,
102  uint32_t inLen,
103  uint8_t *pOutData,
104  uint32_t *pOutLen,
105  uint32_t gid);
106 
107 typedef int GWENHYWFAR_CB
109  uint32_t keyId,
111  const uint8_t *pInData,
112  uint32_t inLen,
113  uint8_t *pOutData,
114  uint32_t *pOutLen,
115  uint32_t gid);
116 
117 
118 typedef int GWENHYWFAR_CB
120  uint32_t keyId,
121  const GWEN_CRYPT_CRYPTALGO *a,
122  uint32_t gid);
123 
124 typedef int GWENHYWFAR_CB
125 (*GWEN_CRYPT_TOKEN_CHANGEPIN_FN)(GWEN_CRYPT_TOKEN *ct, int admin, uint32_t gid);
126 
127 typedef int GWENHYWFAR_CB
128 (*GWEN_CRYPT_TOKEN_ACTIVATEKEY_FN)(GWEN_CRYPT_TOKEN *ct, uint32_t id, uint32_t gid);
129 
140  const char *typeName,
141  const char *tokenName);
151 
166  uint32_t flags,
167  unsigned char *pwbuffer,
168  unsigned int minLength,
169  unsigned int maxLength,
170  unsigned int *pinLength,
171  uint32_t gid);
172 
173 
177  uint32_t flags,
178  const unsigned char *buffer,
179  unsigned int pinLength,
180  int isOk,
181  uint32_t gid);
182 
185  uint32_t gid);
186 
189  int ok,
190  uint32_t id);
191 
193 
206 
209 
212 
216 
219 
222 
226 
229 
232 
235 
238 
241 
244 
247 
250 
253 
259 #endif
260 
261 
GWENHYWFAR_API GWEN_CRYPT_TOKEN_DECIPHER_FN GWEN_Crypt_Token_SetDecipherFn(GWEN_CRYPT_TOKEN *ct, GWEN_CRYPT_TOKEN_DECIPHER_FN f)
GWENHYWFAR_API GWEN_CRYPT_TOKEN_SETKEYINFO_FN GWEN_Crypt_Token_SetSetKeyInfoFn(GWEN_CRYPT_TOKEN *ct, GWEN_CRYPT_TOKEN_SETKEYINFO_FN f)
GWENHYWFAR_API GWEN_CRYPT_TOKEN_SIGN_FN GWEN_Crypt_Token_SetSignFn(GWEN_CRYPT_TOKEN *ct, GWEN_CRYPT_TOKEN_SIGN_FN f)
GWENHYWFAR_API void GWEN_Crypt_Token_SetFlags(GWEN_CRYPT_TOKEN *ct, uint32_t f)
GWENHYWFAR_API int GWEN_Crypt_Token_InsertCorrectToken(GWEN_CRYPT_TOKEN *ct, uint32_t gid)
GWEN_CRYPT_TOKEN_ACTIVATEKEY_FN GWEN_Crypt_Token_SetActivateKeyFn(GWEN_CRYPT_TOKEN *ct, GWEN_CRYPT_TOKEN_ACTIVATEKEY_FN f)
int GWENHYWFAR_CB(* GWEN_CRYPT_TOKEN_CREATE_FN)(GWEN_CRYPT_TOKEN *ct, uint32_t gid)
Definition: ct_be.h:37
GWENHYWFAR_API uint32_t GWEN_Crypt_Token_BeginEnterPin(GWEN_CRYPT_TOKEN *ct, GWEN_CRYPT_PINTYPE pt, uint32_t gid)
GWENHYWFAR_API GWEN_CRYPT_TOKEN_GENERATEKEY_FN GWEN_Crypt_Token_SetGenerateKeyFn(GWEN_CRYPT_TOKEN *ct, GWEN_CRYPT_TOKEN_GENERATEKEY_FN f)
int GWENHYWFAR_CB(* GWEN_CRYPT_TOKEN_SIGN_FN)(GWEN_CRYPT_TOKEN *ct, uint32_t keyId, GWEN_CRYPT_PADDALGO *a, const uint8_t *pInData, uint32_t inLen, uint8_t *pSignatureData, uint32_t *pSignatureLen, uint32_t *pSeqCounter, uint32_t gid)
Definition: ct_be.h:76
GWENHYWFAR_API int GWEN_Crypt_Token_InsertToken(GWEN_CRYPT_TOKEN *ct, uint32_t gid)
GWENHYWFAR_API GWEN_CRYPT_TOKEN_OPEN_FN GWEN_Crypt_Token_SetOpenFn(GWEN_CRYPT_TOKEN *ct, GWEN_CRYPT_TOKEN_OPEN_FN f)
GWENHYWFAR_API GWEN_CRYPT_TOKEN_GETCONTEXT_FN GWEN_Crypt_Token_SetGetContextFn(GWEN_CRYPT_TOKEN *ct, GWEN_CRYPT_TOKEN_GETCONTEXT_FN f)
GWEN_CRYPT_PINTYPE
Definition: cryptdefs.h:26
int GWENHYWFAR_CB(* GWEN_CRYPT_TOKEN_SETKEYINFO_FN)(GWEN_CRYPT_TOKEN *ct, uint32_t id, const GWEN_CRYPT_TOKEN_KEYINFO *ki, uint32_t gid)
Definition: ct_be.h:53
GWENHYWFAR_API void GWEN_Crypt_Token_SetTokenName(GWEN_CRYPT_TOKEN *ct, const char *s)
int GWENHYWFAR_CB(* GWEN_CRYPT_TOKEN_DECIPHER_FN)(GWEN_CRYPT_TOKEN *ct, uint32_t keyId, GWEN_CRYPT_PADDALGO *a, const uint8_t *pInData, uint32_t inLen, uint8_t *pOutData, uint32_t *pOutLen, uint32_t gid)
Definition: ct_be.h:108
struct GWEN_CRYPT_PADDALGO GWEN_CRYPT_PADDALGO
Definition: paddalgo.h:21
int GWENHYWFAR_CB(* GWEN_CRYPT_TOKEN_GETCONTEXTIDLIST_FN)(GWEN_CRYPT_TOKEN *ct, uint32_t *pIdList, uint32_t *pCount, uint32_t gid)
Definition: ct_be.h:59
int GWENHYWFAR_CB(* GWEN_CRYPT_TOKEN_CLOSE_FN)(GWEN_CRYPT_TOKEN *ct, int abandon, uint32_t gid)
Definition: ct_be.h:39
GWENHYWFAR_API int GWEN_Crypt_Token_GetPin(GWEN_CRYPT_TOKEN *ct, GWEN_CRYPT_PINTYPE pt, GWEN_CRYPT_PINENCODING pe, uint32_t flags, unsigned char *pwbuffer, unsigned int minLength, unsigned int maxLength, unsigned int *pinLength, uint32_t gid)
GWENHYWFAR_API GWEN_CRYPT_TOKEN_CLOSE_FN GWEN_Crypt_Token_SetCloseFn(GWEN_CRYPT_TOKEN *ct, GWEN_CRYPT_TOKEN_CLOSE_FN f)
int GWENHYWFAR_CB(* GWEN_CRYPT_TOKEN_OPEN_FN)(GWEN_CRYPT_TOKEN *ct, int admin, uint32_t gid)
Definition: ct_be.h:35
#define GWEN_INHERIT_FUNCTION_LIB_DEFS(t, decl)
Definition: inherit.h:125
GWENHYWFAR_API GWEN_CRYPT_TOKEN_GETKEYIDLIST_FN GWEN_Crypt_Token_SetGetKeyIdListFn(GWEN_CRYPT_TOKEN *ct, GWEN_CRYPT_TOKEN_GETKEYIDLIST_FN f)
#define GWENHYWFAR_CB
Definition: gwenhywfarapi.h:89
GWENHYWFAR_API GWEN_CRYPT_TOKEN_GETKEYINFO_FN GWEN_Crypt_Token_SetGetKeyInfoFn(GWEN_CRYPT_TOKEN *ct, GWEN_CRYPT_TOKEN_GETKEYINFO_FN f)
int GWENHYWFAR_CB(* GWEN_CRYPT_TOKEN_GETKEYIDLIST_FN)(GWEN_CRYPT_TOKEN *ct, uint32_t *pIdList, uint32_t *pCount, uint32_t gid)
Definition: ct_be.h:42
const GWEN_CRYPT_TOKEN_KEYINFO *GWENHYWFAR_CB(* GWEN_CRYPT_TOKEN_GETKEYINFO_FN)(GWEN_CRYPT_TOKEN *ct, uint32_t id, uint32_t flags, uint32_t gid)
Definition: ct_be.h:47
int GWENHYWFAR_CB(* GWEN_CRYPT_TOKEN_CHANGEPIN_FN)(GWEN_CRYPT_TOKEN *ct, int admin, uint32_t gid)
Definition: ct_be.h:125
GWENHYWFAR_API GWEN_CRYPT_TOKEN_CREATE_FN GWEN_Crypt_Token_SetCreateFn(GWEN_CRYPT_TOKEN *ct, GWEN_CRYPT_TOKEN_CREATE_FN f)
GWENHYWFAR_API void GWEN_Crypt_Token_SubFlags(GWEN_CRYPT_TOKEN *ct, uint32_t f)
struct GWEN_CRYPT_TOKEN GWEN_CRYPT_TOKEN
Definition: ct.h:19
#define GWENHYWFAR_API
Definition: gwenhywfarapi.h:67
struct GWEN_CRYPT_TOKEN_KEYINFO GWEN_CRYPT_TOKEN_KEYINFO
Definition: ct_keyinfo.h:23
struct GWEN_CRYPT_CRYPTALGO GWEN_CRYPT_CRYPTALGO
Definition: cryptalgo.h:20
struct GWEN_CRYPT_TOKEN_CONTEXT GWEN_CRYPT_TOKEN_CONTEXT
Definition: ct_context.h:27
int GWENHYWFAR_CB(* GWEN_CRYPT_TOKEN_ENCIPHER_FN)(GWEN_CRYPT_TOKEN *ct, uint32_t keyId, GWEN_CRYPT_PADDALGO *a, const uint8_t *pInData, uint32_t inLen, uint8_t *pOutData, uint32_t *pOutLen, uint32_t gid)
Definition: ct_be.h:98
GWENHYWFAR_API GWEN_CRYPT_TOKEN_ENCIPHER_FN GWEN_Crypt_Token_SetEncipherFn(GWEN_CRYPT_TOKEN *ct, GWEN_CRYPT_TOKEN_ENCIPHER_FN f)
int GWENHYWFAR_CB(* GWEN_CRYPT_TOKEN_ACTIVATEKEY_FN)(GWEN_CRYPT_TOKEN *ct, uint32_t id, uint32_t gid)
Definition: ct_be.h:128
GWENHYWFAR_API GWEN_CRYPT_TOKEN_CHANGEPIN_FN GWEN_Crypt_Token_SetChangePinFn(GWEN_CRYPT_TOKEN *ct, GWEN_CRYPT_TOKEN_CHANGEPIN_FN f)
int GWENHYWFAR_CB(* GWEN_CRYPT_TOKEN_VERIFY_FN)(GWEN_CRYPT_TOKEN *ct, uint32_t keyId, GWEN_CRYPT_PADDALGO *a, const uint8_t *pInData, uint32_t inLen, const uint8_t *pSignatureData, uint32_t signatureLen, uint32_t seqCounter, uint32_t gid)
Definition: ct_be.h:87
GWENHYWFAR_API int GWEN_Crypt_Token_SetPinStatus(GWEN_CRYPT_TOKEN *ct, GWEN_CRYPT_PINTYPE pt, GWEN_CRYPT_PINENCODING pe, uint32_t flags, const unsigned char *buffer, unsigned int pinLength, int isOk, uint32_t gid)
GWEN_CRYPT_PINENCODING
Definition: cryptdefs.h:39
GWENHYWFAR_API void GWEN_Crypt_Token_AddFlags(GWEN_CRYPT_TOKEN *ct, uint32_t f)
GWEN_CRYPT_TOKEN_DEVICE
Definition: ct.h:35
GWENHYWFAR_API GWEN_CRYPT_TOKEN * GWEN_Crypt_Token_new(GWEN_CRYPT_TOKEN_DEVICE dev, const char *typeName, const char *tokenName)
int GWENHYWFAR_CB(* GWEN_CRYPT_TOKEN_SETCONTEXT_FN)(GWEN_CRYPT_TOKEN *ct, uint32_t id, const GWEN_CRYPT_TOKEN_CONTEXT *ctx, uint32_t gid)
Definition: ct_be.h:69
GWENHYWFAR_API GWEN_CRYPT_TOKEN_VERIFY_FN GWEN_Crypt_Token_SetVerifyFn(GWEN_CRYPT_TOKEN *ct, GWEN_CRYPT_TOKEN_VERIFY_FN f)
GWENHYWFAR_API int GWEN_Crypt_Token_EndEnterPin(GWEN_CRYPT_TOKEN *ct, GWEN_CRYPT_PINTYPE pt, int ok, uint32_t id)
int GWENHYWFAR_CB(* GWEN_CRYPT_TOKEN_GENERATEKEY_FN)(GWEN_CRYPT_TOKEN *ct, uint32_t keyId, const GWEN_CRYPT_CRYPTALGO *a, uint32_t gid)
Definition: ct_be.h:119
GWENHYWFAR_API GWEN_CRYPT_TOKEN_GETCONTEXTIDLIST_FN GWEN_Crypt_Token_SetGetContextIdListFn(GWEN_CRYPT_TOKEN *ct, GWEN_CRYPT_TOKEN_GETCONTEXTIDLIST_FN f)
const GWEN_CRYPT_TOKEN_CONTEXT *GWENHYWFAR_CB(* GWEN_CRYPT_TOKEN_GETCONTEXT_FN)(GWEN_CRYPT_TOKEN *ct, uint32_t id, uint32_t gid)
Definition: ct_be.h:64
GWENHYWFAR_API GWEN_CRYPT_TOKEN_SETCONTEXT_FN GWEN_Crypt_Token_SetSetContextFn(GWEN_CRYPT_TOKEN *ct, GWEN_CRYPT_TOKEN_SETCONTEXT_FN f)