gwenhywfar  4.99.8beta
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  GWEN_CRYPT_TOKEN *ct;
24  GWEN_CRYPT_TOKEN_TEST *lct;
25 
27  assert(ct);
28 
29  GWEN_NEW_OBJECT(GWEN_CRYPT_TOKEN_TEST, lct);
30  GWEN_INHERIT_SETDATA(GWEN_CRYPT_TOKEN, GWEN_CRYPT_TOKEN_TEST, ct, lct,
32 
47  GWEN_Crypt_Token_SetActivateKeyFn(ct, GWEN_Crypt_TokenTest__ActivateKey);
48 
49  lct->contextList=GWEN_Crypt_Token_Context_List_new();
50  lct->keyList=GWEN_CryptKey_List_new();
51 
52  lct->maximumContexts=maximumContexts;
53  lct->maximumKeys=maximumKeys;
54  return ct;
55 }
56 
57 
58 
59 void GWEN_Crypt_TokenTest_freeData(void *bp, void *p) {
60  GWEN_CRYPT_TOKEN_TEST *lct;
61 
62  lct=(GWEN_CRYPT_TOKEN_TEST*) p;
63  GWEN_CryptKey_List_free(lct->keyList);
64  GWEN_Crypt_Token_Context_List_free(lct->contextList);
65 }
66 
67 
68 
70  int i;
71 
72  for (i=0; i<lct->maximumContexts; i++) {
74  int keyBaseId;
75 
78 
79  keyBaseId=(i*10);
81  GWEN_Crypt_Token_Context_SetVerifyKeyId(ctx, keyBaseId); /* same key for both */
82 
84  GWEN_Crypt_Token_Context_SetDecipherKeyId(ctx, keyBaseId+1); /* same key for both */
85 
87  GWEN_Crypt_Token_Context_SetAuthVerifyKeyId(ctx, keyBaseId+2); /* same key for both */
88 
89  }
90 }
91 
92 
93 int GWEN_Crypt_TokenTest_Open(GWEN_CRYPT_TOKEN *ct, int admin, uint32_t gid) {
94 }
95 
96 
97 
98 int GWEN_Crypt_TokenTest_Close(GWEN_CRYPT_TOKEN *ct, int abandon, uint32_t gid) {
99 }
100 
101 
102 
104  uint32_t *pIdList,
105  uint32_t *pCount,
106  uint32_t gid) {
107 }
108 
109 
110 
112  uint32_t id,
113  uint32_t flags,
114  uint32_t gid) {
115 }
116 
117 
118 
120  uint32_t id,
121  const GWEN_CRYPT_TOKEN_KEYINFO *ki,
122  uint32_t gid) {
123 }
124 
125 
126 
128  uint32_t *pIdList,
129  uint32_t *pCount,
130  uint32_t gid) {
131 }
132 
133 
134 
136  uint32_t id,
137  uint32_t gid) {
138 }
139 
140 
141 
143  uint32_t id,
144  const GWEN_CRYPT_TOKEN_CONTEXT *nctx,
145  uint32_t gid) {
146 }
147 
148 
149 
151  uint32_t keyId,
153  const uint8_t *pInData,
154  uint32_t inLen,
155  uint8_t *pSignatureData,
156  uint32_t *pSignatureLen,
157  uint32_t *pSeqCounter,
158  uint32_t gid) {
159 }
160 
161 
162 
164  uint32_t keyId,
166  const uint8_t *pInData,
167  uint32_t inLen,
168  const uint8_t *pSignatureData,
169  uint32_t signatureLen,
170  uint32_t seqCounter,
171  uint32_t gid) {
172 }
173 
174 
175 
177  uint32_t keyId,
179  const uint8_t *pInData,
180  uint32_t inLen,
181  uint8_t *pOutData,
182  uint32_t *pOutLen,
183  uint32_t gid) {
184 }
185 
186 
187 
189  uint32_t keyId,
191  const uint8_t *pInData,
192  uint32_t inLen,
193  uint8_t *pOutData,
194  uint32_t *pOutLen,
195  uint32_t gid) {
196 }
197 
198 
199 
201  uint32_t keyId,
202  const GWEN_CRYPT_CRYPTALGO *a,
203  uint32_t gid) {
204 }
205 
206 
207 
208 
209 
210 
211 
void GWEN_Crypt_Token_Context_SetVerifyKeyId(GWEN_CRYPT_TOKEN_CONTEXT *p_struct, uint32_t p_src)
Definition: ct_context.c:569
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:753
#define NULL
Definition: binreloc.c:290
void GWEN_Crypt_Token_Context_SetEncipherKeyId(GWEN_CRYPT_TOKEN_CONTEXT *p_struct, uint32_t p_src)
Definition: ct_context.c:575
GWEN_CRYPT_TOKEN_GETCONTEXT_FN GWEN_Crypt_Token_SetGetContextFn(GWEN_CRYPT_TOKEN *ct, GWEN_CRYPT_TOKEN_GETCONTEXT_FN f)
Definition: ct.c:639
void GWEN_Crypt_Token_Context_SetAuthSignKeyId(GWEN_CRYPT_TOKEN_CONTEXT *p_struct, uint32_t p_src)
Definition: ct_context.c:587
GWEN_CRYPT_TOKEN_VERIFY_FN GWEN_Crypt_Token_SetVerifyFn(GWEN_CRYPT_TOKEN *ct, GWEN_CRYPT_TOKEN_VERIFY_FN f)
Definition: ct.c:682
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:563
GWEN_CRYPT_TOKEN_GETKEYINFO_FN GWEN_Crypt_Token_SetGetKeyInfoFn(GWEN_CRYPT_TOKEN *ct, GWEN_CRYPT_TOKEN_GETKEYINFO_FN f)
Definition: ct.c:595
#define GWEN_NEW_OBJECT(typ, varname)
Definition: memory.h:86
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:725
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:121
GWEN_CRYPT_TOKEN_OPEN_FN GWEN_Crypt_Token_SetOpenFn(GWEN_CRYPT_TOKEN *ct, GWEN_CRYPT_TOKEN_OPEN_FN f)
Definition: ct.c:536
GWEN_CRYPT_TOKEN_SIGN_FN GWEN_Crypt_Token_SetSignFn(GWEN_CRYPT_TOKEN *ct, GWEN_CRYPT_TOKEN_SIGN_FN f)
Definition: ct.c:668
struct GWEN_CRYPT_CRYPTALGO GWEN_CRYPT_CRYPTALGO
Definition: cryptalgo.h:20
struct GWEN_CRYPT_TOKEN_CONTEXT GWEN_CRYPT_TOKEN_CONTEXT
Definition: ct_context.h:185
GWEN_CRYPT_TOKEN_CREATE_FN GWEN_Crypt_Token_SetCreateFn(GWEN_CRYPT_TOKEN *ct, GWEN_CRYPT_TOKEN_CREATE_FN f)
Definition: ct.c:550
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:624
GWEN_CRYPT_TOKEN_DECIPHER_FN GWEN_Crypt_Token_SetDecipherFn(GWEN_CRYPT_TOKEN *ct, GWEN_CRYPT_TOKEN_DECIPHER_FN f)
Definition: ct.c:710
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:696
GWEN_CRYPT_TOKEN_SETKEYINFO_FN GWEN_Crypt_Token_SetSetKeyInfoFn(GWEN_CRYPT_TOKEN *ct, GWEN_CRYPT_TOKEN_SETKEYINFO_FN f)
Definition: ct.c:609
GWEN_CRYPT_TOKEN_CLOSE_FN GWEN_Crypt_Token_SetCloseFn(GWEN_CRYPT_TOKEN *ct, GWEN_CRYPT_TOKEN_CLOSE_FN f)
Definition: ct.c:565
void GWEN_Crypt_Token_Context_SetDecipherKeyId(GWEN_CRYPT_TOKEN_CONTEXT *p_struct, uint32_t p_src)
Definition: ct_context.c:581
GWEN_CRYPT_TOKEN_GETKEYIDLIST_FN GWEN_Crypt_Token_SetGetKeyIdListFn(GWEN_CRYPT_TOKEN *ct, GWEN_CRYPT_TOKEN_GETKEYIDLIST_FN f)
Definition: ct.c:580
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:557
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:654
void GWEN_Crypt_Token_Context_SetAuthVerifyKeyId(GWEN_CRYPT_TOKEN_CONTEXT *p_struct, uint32_t p_src)
Definition: ct_context.c:593