gwenhywfar  5.3.0
src/crypttoken/cttest.c
Go to the documentation of this file.
1 /***************************************************************************
2  begin : Sun Jan 13 2019
3  copyright : (C) 2019 by Martin Preuss
4  email : martin@libchipcard.de
5 
6  ***************************************************************************
7  * Please see toplevel file COPYING for license details *
8  ***************************************************************************/
9 
10 #ifdef HAVE_CONFIG_H
11 # include <config.h>
12 #endif
13 
14 #define DISABLE_DEBUGLOG
15 
16 
17 #include "cttest_p.h"
18 
19 
20 
21 
22 GWEN_CRYPT_TOKEN *GWEN_Crypt_TokenTest_new(int maximumContexts, int maximumKeys)
23 {
24  GWEN_CRYPT_TOKEN *ct;
25  GWEN_CRYPT_TOKEN_TEST *lct;
26 
28  assert(ct);
29 
30  GWEN_NEW_OBJECT(GWEN_CRYPT_TOKEN_TEST, lct);
31  GWEN_INHERIT_SETDATA(GWEN_CRYPT_TOKEN, GWEN_CRYPT_TOKEN_TEST, ct, lct,
33 
48  GWEN_Crypt_Token_SetActivateKeyFn(ct, GWEN_Crypt_TokenTest__ActivateKey);
49 
50  lct->contextList=GWEN_Crypt_Token_Context_List_new();
51  lct->keyList=GWEN_CryptKey_List_new();
52 
53  lct->maximumContexts=maximumContexts;
54  lct->maximumKeys=maximumKeys;
55  return ct;
56 }
57 
58 
59 
60 void GWEN_Crypt_TokenTest_freeData(void *bp, void *p)
61 {
62  GWEN_CRYPT_TOKEN_TEST *lct;
63 
64  lct=(GWEN_CRYPT_TOKEN_TEST *) p;
65  GWEN_CryptKey_List_free(lct->keyList);
66  GWEN_Crypt_Token_Context_List_free(lct->contextList);
67 }
68 
69 
70 
72 {
73  int i;
74 
75  for (i=0; i<lct->maximumContexts; i++) {
77  int keyBaseId;
78 
81 
82  keyBaseId=(i*10);
84  GWEN_Crypt_Token_Context_SetVerifyKeyId(ctx, keyBaseId); /* same key for both */
85 
87  GWEN_Crypt_Token_Context_SetDecipherKeyId(ctx, keyBaseId+1); /* same key for both */
88 
90  GWEN_Crypt_Token_Context_SetAuthVerifyKeyId(ctx, keyBaseId+2); /* same key for both */
91 
92  }
93 }
94 
95 
96 int GWEN_Crypt_TokenTest_Open(GWEN_CRYPT_TOKEN *ct, int admin, uint32_t gid)
97 {
98 }
99 
100 
101 
102 int GWEN_Crypt_TokenTest_Close(GWEN_CRYPT_TOKEN *ct, int abandon, uint32_t gid)
103 {
104 }
105 
106 
107 
109  uint32_t *pIdList,
110  uint32_t *pCount,
111  uint32_t gid)
112 {
113 }
114 
115 
116 
118  uint32_t id,
119  uint32_t flags,
120  uint32_t gid)
121 {
122 }
123 
124 
125 
127  uint32_t id,
128  const GWEN_CRYPT_TOKEN_KEYINFO *ki,
129  uint32_t gid)
130 {
131 }
132 
133 
134 
136  uint32_t *pIdList,
137  uint32_t *pCount,
138  uint32_t gid)
139 {
140 }
141 
142 
143 
145  uint32_t id,
146  uint32_t gid)
147 {
148 }
149 
150 
151 
153  uint32_t id,
154  const GWEN_CRYPT_TOKEN_CONTEXT *nctx,
155  uint32_t gid)
156 {
157 }
158 
159 
160 
162  uint32_t keyId,
164  const uint8_t *pInData,
165  uint32_t inLen,
166  uint8_t *pSignatureData,
167  uint32_t *pSignatureLen,
168  uint32_t *pSeqCounter,
169  uint32_t gid)
170 {
171 }
172 
173 
174 
176  uint32_t keyId,
178  const uint8_t *pInData,
179  uint32_t inLen,
180  const uint8_t *pSignatureData,
181  uint32_t signatureLen,
182  uint32_t seqCounter,
183  uint32_t gid)
184 {
185 }
186 
187 
188 
190  uint32_t keyId,
192  const uint8_t *pInData,
193  uint32_t inLen,
194  uint8_t *pOutData,
195  uint32_t *pOutLen,
196  uint32_t gid)
197 {
198 }
199 
200 
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)
210 {
211 }
212 
213 
214 
216  uint32_t keyId,
217  const GWEN_CRYPT_CRYPTALGO *a,
218  uint32_t gid)
219 {
220 }
221 
222 
223 
224 
225 
226 
227 
void GWEN_Crypt_Token_Context_SetVerifyKeyId(GWEN_CRYPT_TOKEN_CONTEXT *p_struct, uint32_t p_src)
Definition: ct_context.c:677
int GWEN_Crypt_TokenTest__SetKeyInfo(GWEN_CRYPT_TOKEN *ct, uint32_t id, const GWEN_CRYPT_TOKEN_KEYINFO *ki, uint32_t gid)
int GWEN_Crypt_TokenTest__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)
const GWEN_CRYPT_TOKEN_KEYINFO * GWEN_Crypt_TokenTest__GetKeyInfo(GWEN_CRYPT_TOKEN *ct, uint32_t id, uint32_t flags, uint32_t gid)
GWEN_CRYPT_TOKEN_CONTEXT * GWEN_Crypt_Token_Context_new(void)
Definition: ct_context.c:25
GWEN_CRYPT_TOKEN_ACTIVATEKEY_FN GWEN_Crypt_Token_SetActivateKeyFn(GWEN_CRYPT_TOKEN *ct, GWEN_CRYPT_TOKEN_ACTIVATEKEY_FN f)
Definition: ct.c:795
#define NULL
Definition: binreloc.c:300
void GWEN_Crypt_Token_Context_SetEncipherKeyId(GWEN_CRYPT_TOKEN_CONTEXT *p_struct, uint32_t p_src)
Definition: ct_context.c:683
GWEN_CRYPT_TOKEN_GETCONTEXT_FN GWEN_Crypt_Token_SetGetContextFn(GWEN_CRYPT_TOKEN *ct, GWEN_CRYPT_TOKEN_GETCONTEXT_FN f)
Definition: ct.c:675
void GWEN_Crypt_Token_Context_SetAuthSignKeyId(GWEN_CRYPT_TOKEN_CONTEXT *p_struct, uint32_t p_src)
Definition: ct_context.c:707
GWEN_CRYPT_TOKEN_VERIFY_FN GWEN_Crypt_Token_SetVerifyFn(GWEN_CRYPT_TOKEN *ct, GWEN_CRYPT_TOKEN_VERIFY_FN f)
Definition: ct.c:720
struct GWEN_CRYPT_PADDALGO GWEN_CRYPT_PADDALGO
Definition: paddalgo.h:21
int GWEN_Crypt_TokenTest__GenerateKey(GWEN_CRYPT_TOKEN *ct, uint32_t keyId, const GWEN_CRYPT_CRYPTALGO *a, uint32_t gid)
int GWEN_Crypt_TokenTest__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)
void GWEN_Crypt_Token_Context_SetSignKeyId(GWEN_CRYPT_TOKEN_CONTEXT *p_struct, uint32_t p_src)
Definition: ct_context.c:659
GWEN_CRYPT_TOKEN_GETKEYINFO_FN GWEN_Crypt_Token_SetGetKeyInfoFn(GWEN_CRYPT_TOKEN *ct, GWEN_CRYPT_TOKEN_GETKEYINFO_FN f)
Definition: ct.c:630
#define GWEN_NEW_OBJECT(typ, varname)
Definition: memory.h:55
const GWEN_CRYPT_TOKEN_CONTEXT * GWEN_Crypt_TokenTest__GetContext(GWEN_CRYPT_TOKEN *ct, uint32_t id, uint32_t gid)
GWEN_CRYPT_TOKEN_GENERATEKEY_FN GWEN_Crypt_Token_SetGenerateKeyFn(GWEN_CRYPT_TOKEN *ct, GWEN_CRYPT_TOKEN_GENERATEKEY_FN f)
Definition: ct.c:765
int GWEN_Crypt_TokenTest__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)
void GWEN_Crypt_Token_Context_List_free(GWEN_CRYPT_TOKEN_CONTEXT_LIST *l)
int GWEN_Crypt_TokenTest__GetKeyIdList(GWEN_CRYPT_TOKEN *ct, uint32_t *pIdList, uint32_t *pCount, uint32_t gid)
int GWEN_Crypt_TokenTest_Open(GWEN_CRYPT_TOKEN *ct, int admin, uint32_t gid)
int GWEN_Crypt_TokenTest__SetContext(GWEN_CRYPT_TOKEN *ct, uint32_t id, const GWEN_CRYPT_TOKEN_CONTEXT *nctx, uint32_t gid)
int GWEN_Crypt_TokenTest__GetContextIdList(GWEN_CRYPT_TOKEN *ct, uint32_t *pIdList, uint32_t *pCount, uint32_t gid)
struct GWEN_CRYPT_TOKEN GWEN_CRYPT_TOKEN
Definition: ct.h:19
void GWEN_Crypt_TokenTest_freeData(void *bp, void *p)
struct GWEN_CRYPT_TOKEN_KEYINFO GWEN_CRYPT_TOKEN_KEYINFO
Definition: ct_keyinfo.h:127
GWEN_CRYPT_TOKEN_OPEN_FN GWEN_Crypt_Token_SetOpenFn(GWEN_CRYPT_TOKEN *ct, GWEN_CRYPT_TOKEN_OPEN_FN f)
Definition: ct.c:569
GWEN_CRYPT_TOKEN_SIGN_FN GWEN_Crypt_Token_SetSignFn(GWEN_CRYPT_TOKEN *ct, GWEN_CRYPT_TOKEN_SIGN_FN f)
Definition: ct.c:705
struct GWEN_CRYPT_CRYPTALGO GWEN_CRYPT_CRYPTALGO
Definition: cryptalgo.h:20
struct GWEN_CRYPT_TOKEN_CONTEXT GWEN_CRYPT_TOKEN_CONTEXT
Definition: ct_context.h:221
GWEN_CRYPT_TOKEN_CREATE_FN GWEN_Crypt_Token_SetCreateFn(GWEN_CRYPT_TOKEN *ct, GWEN_CRYPT_TOKEN_CREATE_FN f)
Definition: ct.c:584
GWEN_CRYPT_TOKEN * GWEN_Crypt_Token_new(GWEN_CRYPT_TOKEN_DEVICE dev, const char *typeName, const char *tokenName)
Definition: ct.c:33
GWEN_CRYPT_TOKEN * GWEN_Crypt_TokenTest_new(int maximumContexts, int maximumKeys)
GWEN_CRYPT_TOKEN_GETCONTEXTIDLIST_FN GWEN_Crypt_Token_SetGetContextIdListFn(GWEN_CRYPT_TOKEN *ct, GWEN_CRYPT_TOKEN_GETCONTEXTIDLIST_FN f)
Definition: ct.c:660
GWEN_CRYPT_TOKEN_DECIPHER_FN GWEN_Crypt_Token_SetDecipherFn(GWEN_CRYPT_TOKEN *ct, GWEN_CRYPT_TOKEN_DECIPHER_FN f)
Definition: ct.c:750
int GWEN_Crypt_TokenTest__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)
GWEN_CRYPT_TOKEN_ENCIPHER_FN GWEN_Crypt_Token_SetEncipherFn(GWEN_CRYPT_TOKEN *ct, GWEN_CRYPT_TOKEN_ENCIPHER_FN f)
Definition: ct.c:735
GWEN_CRYPT_TOKEN_SETKEYINFO_FN GWEN_Crypt_Token_SetSetKeyInfoFn(GWEN_CRYPT_TOKEN *ct, GWEN_CRYPT_TOKEN_SETKEYINFO_FN f)
Definition: ct.c:645
GWEN_CRYPT_TOKEN_CLOSE_FN GWEN_Crypt_Token_SetCloseFn(GWEN_CRYPT_TOKEN *ct, GWEN_CRYPT_TOKEN_CLOSE_FN f)
Definition: ct.c:600
void GWEN_Crypt_Token_Context_SetDecipherKeyId(GWEN_CRYPT_TOKEN_CONTEXT *p_struct, uint32_t p_src)
Definition: ct_context.c:689
GWEN_CRYPT_TOKEN_GETKEYIDLIST_FN GWEN_Crypt_Token_SetGetKeyIdListFn(GWEN_CRYPT_TOKEN *ct, GWEN_CRYPT_TOKEN_GETKEYIDLIST_FN f)
Definition: ct.c:615
int GWEN_Crypt_TokenTest_Close(GWEN_CRYPT_TOKEN *ct, int abandon, uint32_t gid)
void GWEN_Crypt_Token_Context_SetId(GWEN_CRYPT_TOKEN_CONTEXT *p_struct, uint32_t p_src)
Definition: ct_context.c:653
GWEN_CRYPT_TOKEN_CONTEXT_LIST * GWEN_Crypt_Token_Context_List_new()
#define GWEN_INHERIT_SETDATA(bt, t, element, data, fn)
Definition: inherit.h:292
int GWEN_Crypt_TokenTest_Create(GWEN_CRYPT_TOKEN *ct, uint32_t gid)
GWEN_CRYPT_TOKEN_SETCONTEXT_FN GWEN_Crypt_Token_SetSetContextFn(GWEN_CRYPT_TOKEN *ct, GWEN_CRYPT_TOKEN_SETCONTEXT_FN f)
Definition: ct.c:690
void GWEN_Crypt_Token_Context_SetAuthVerifyKeyId(GWEN_CRYPT_TOKEN_CONTEXT *p_struct, uint32_t p_src)
Definition: ct_context.c:725