gwenhywfar  5.11.1beta
ct.h
Go to the documentation of this file.
1 /***************************************************************************
2  begin : Wed Mar 16 2005
3  copyright : (C) 2005 by Martin Preuss
4  email : martin@libchipcard.de
5 
6  ***************************************************************************
7  * Please see toplevel file COPYING for license details *
8  ***************************************************************************/
9 
10 
11 #ifndef GWEN_CRYPT_CRYPTTOKEN_H
12 #define GWEN_CRYPT_CRYPTTOKEN_H
13 
14 #include <gwenhywfar/list1.h>
15 #include <gwenhywfar/list2.h>
16 
17 
18 
19 typedef struct GWEN_CRYPT_TOKEN GWEN_CRYPT_TOKEN;
20 
21 #ifdef __cplusplus
22 extern "C" {
23 #endif
24 
25 
28 
29 #ifdef __cplusplus
30 }
31 #endif
32 
33 
34 
35 typedef enum {
42 
43 
44 #ifdef __cplusplus
45 extern "C" {
46 #endif
47 
58 #define GWEN_CRYPT_TOKEN_MODE_SECURE_PIN_ENTRY 0x00000001
59 #define GWEN_CRYPT_TOKEN_MODE_FORCE_PIN_ENTRY 0x00000002
61 #define GWEN_CRYPT_TOKEN_MODE_ALLOW_UPDATE 0x00000004
62 #define GWEN_CRYPT_TOKEN_MODE_EXP_65537 0x00000008
63 #define GWEN_CRYPT_TOKEN_MODE_DIRECT_SIGN 0x00000010
64 
65 
66 
67 #define GWEN_CRYPT_TOKEN_FLAGS_MANAGES_SIGNSEQ 0x00000001
68 
69 
70 
71 #include <gwenhywfar/ct_keyinfo.h>
72 #include <gwenhywfar/ct_context.h>
73 #include <gwenhywfar/paddalgo.h>
74 #include <gwenhywfar/hashalgo.h>
75 #include <gwenhywfar/cryptalgo.h>
76 #include <gwenhywfar/cryptdefs.h>
77 
78 
93 
95 
97 
99 
101 
103 
105 
107 
109 
119 GWENHYWFAR_API int GWEN_Crypt_Token_Open(GWEN_CRYPT_TOKEN *ct, int admin, uint32_t gid);
120 
121 
123 
124 GWENHYWFAR_API int GWEN_Crypt_Token_Close(GWEN_CRYPT_TOKEN *ct, int abandon, uint32_t gid);
125 
127 
137  uint32_t *pIdList,
138  uint32_t *pCount,
139  uint32_t gid);
140 
142  uint32_t id,
143  uint32_t flags,
144  uint32_t gid);
145 
147  uint32_t id,
148  const GWEN_CRYPT_TOKEN_KEYINFO *ki,
149  uint32_t gid);
150 
151 
153  uint32_t *pIdList,
154  uint32_t *pCount,
155  uint32_t gid);
156 
158  uint32_t id,
159  uint32_t gid);
160 
162  uint32_t id,
163  const GWEN_CRYPT_TOKEN_CONTEXT *ctx,
164  uint32_t gid);
174  uint32_t keyId,
176  const uint8_t *pInData,
177  uint32_t inLen,
178  uint8_t *pSignatureData,
179  uint32_t *pSignatureLen,
180  uint32_t *pSeqCounter,
181  uint32_t gid);
182 
184  uint32_t keyId,
186  const uint8_t *pInData,
187  uint32_t inLen,
188  const uint8_t *pSignatureData,
189  uint32_t signatureLen,
190  uint32_t seqCounter,
191  uint32_t gid);
192 
194  uint32_t keyId,
196  const uint8_t *pInData,
197  uint32_t inLen,
198  uint8_t *pOutData,
199  uint32_t *pOutLen,
200  uint32_t gid);
201 
203  uint32_t keyId,
205  const uint8_t *pInData,
206  uint32_t inLen,
207  uint8_t *pOutData,
208  uint32_t *pOutLen,
209  uint32_t gid);
219  uint32_t keyId,
220  const GWEN_CRYPT_CRYPTALGO *a,
221  uint32_t gid);
222 
224 
226 
230 #ifdef __cplusplus
231 }
232 #endif
233 
234 
235 
236 #endif
237 
238 
struct GWEN_CRYPT_CRYPTALGO GWEN_CRYPT_CRYPTALGO
Definition: cryptalgo.h:20
GWENHYWFAR_API int GWEN_Crypt_Token_IsOpen(const GWEN_CRYPT_TOKEN *ct)
GWENHYWFAR_API int GWEN_Crypt_Token_ActivateKey(GWEN_CRYPT_TOKEN *ct, uint32_t id, uint32_t gid)
GWENHYWFAR_API uint32_t GWEN_Crypt_Token_GetFlags(const GWEN_CRYPT_TOKEN *ct)
GWENHYWFAR_API int GWEN_Crypt_Token_GenerateKey(GWEN_CRYPT_TOKEN *ct, uint32_t keyId, const GWEN_CRYPT_CRYPTALGO *a, uint32_t gid)
GWENHYWFAR_API const char * GWEN_Crypt_Token_GetTokenName(const GWEN_CRYPT_TOKEN *ct)
GWENHYWFAR_API int GWEN_Crypt_Token_Close(GWEN_CRYPT_TOKEN *ct, int abandon, uint32_t gid)
GWENHYWFAR_API const GWEN_CRYPT_TOKEN_KEYINFO * GWEN_Crypt_Token_GetKeyInfo(GWEN_CRYPT_TOKEN *ct, uint32_t id, uint32_t flags, uint32_t gid)
GWENHYWFAR_API void GWEN_Crypt_Token_SetModes(GWEN_CRYPT_TOKEN *ct, uint32_t f)
GWENHYWFAR_API void GWEN_Crypt_Token_SetFriendlyName(GWEN_CRYPT_TOKEN *ct, const char *s)
GWENHYWFAR_API int GWEN_Crypt_Token_Decipher(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)
GWENHYWFAR_API int GWEN_Crypt_Token_Create(GWEN_CRYPT_TOKEN *ct, uint32_t gid)
GWENHYWFAR_API const char * GWEN_Crypt_Token_GetTypeName(const GWEN_CRYPT_TOKEN *ct)
GWENHYWFAR_API int GWEN_Crypt_Token_GetContextIdList(GWEN_CRYPT_TOKEN *ct, uint32_t *pIdList, uint32_t *pCount, uint32_t gid)
GWENHYWFAR_API const GWEN_CRYPT_TOKEN_CONTEXT * GWEN_Crypt_Token_GetContext(GWEN_CRYPT_TOKEN *ct, uint32_t id, uint32_t gid)
GWENHYWFAR_API const char * GWEN_Crypt_Token_GetFriendlyName(const GWEN_CRYPT_TOKEN *ct)
GWENHYWFAR_API int GWEN_Crypt_Token_Encipher(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)
GWENHYWFAR_API void GWEN_Crypt_Token_free(GWEN_CRYPT_TOKEN *ct)
GWENHYWFAR_API int GWEN_Crypt_Token_ChangePin(GWEN_CRYPT_TOKEN *ct, int admin, uint32_t gid)
struct GWEN_CRYPT_TOKEN GWEN_CRYPT_TOKEN
Definition: ct.h:19
GWEN_CRYPT_TOKEN_DEVICE
Definition: ct.h:35
@ GWEN_Crypt_Token_Device_Any
Definition: ct.h:40
@ GWEN_Crypt_Token_Device_Unknown
Definition: ct.h:36
@ GWEN_Crypt_Token_Device_File
Definition: ct.h:38
@ GWEN_Crypt_Token_Device_Card
Definition: ct.h:39
@ GWEN_Crypt_Token_Device_None
Definition: ct.h:37
GWENHYWFAR_API void GWEN_Crypt_Token_SubModes(GWEN_CRYPT_TOKEN *ct, uint32_t f)
GWENHYWFAR_API int GWEN_Crypt_Token_GetKeyIdList(GWEN_CRYPT_TOKEN *ct, uint32_t *pIdList, uint32_t *pCount, uint32_t gid)
GWENHYWFAR_API const char * GWEN_Crypt_Token_Device_toString(GWEN_CRYPT_TOKEN_DEVICE d)
GWENHYWFAR_API int GWEN_Crypt_Token_Open(GWEN_CRYPT_TOKEN *ct, int admin, uint32_t gid)
GWENHYWFAR_API GWEN_CRYPT_TOKEN_DEVICE GWEN_Crypt_Token_Device_fromString(const char *s)
GWENHYWFAR_API int GWEN_Crypt_Token_SetContext(GWEN_CRYPT_TOKEN *ct, uint32_t id, const GWEN_CRYPT_TOKEN_CONTEXT *ctx, uint32_t gid)
GWENHYWFAR_API uint32_t GWEN_Crypt_Token_GetModes(const GWEN_CRYPT_TOKEN *ct)
GWENHYWFAR_API int GWEN_Crypt_Token_SetKeyInfo(GWEN_CRYPT_TOKEN *ct, uint32_t id, const GWEN_CRYPT_TOKEN_KEYINFO *ki, uint32_t gid)
GWENHYWFAR_API int GWEN_Crypt_Token_Verify(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)
GWENHYWFAR_API void GWEN_Crypt_Token_AddModes(GWEN_CRYPT_TOKEN *ct, uint32_t f)
GWENHYWFAR_API GWEN_CRYPT_TOKEN_DEVICE GWEN_Crypt_Token_GetDevice(const GWEN_CRYPT_TOKEN *ct)
GWENHYWFAR_API int GWEN_Crypt_Token_Sign(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)
struct GWEN_CRYPT_TOKEN_CONTEXT GWEN_CRYPT_TOKEN_CONTEXT
Definition: ct_context.h:221
struct GWEN_CRYPT_TOKEN_KEYINFO GWEN_CRYPT_TOKEN_KEYINFO
Definition: ct_keyinfo.h:127
#define GWENHYWFAR_API
Definition: gwenhywfarapi.h:67
#define GWEN_LIST_FUNCTION_LIB_DEFS(t, pr, decl)
Definition: list1.h:348
This file contains some macros concerning lists.
#define GWEN_LIST2_FUNCTION_LIB_DEFS(t, pr, decl)
Definition: list2.h:56
struct GWEN_CRYPT_PADDALGO GWEN_CRYPT_PADDALGO
Definition: paddalgo.h:21