gwenhywfar  4.99.8beta
ctf_context.c
Go to the documentation of this file.
1 /***************************************************************************
2  begin : Wed Mar 16 2005
3  copyright : (C) 2005-2010 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 "ctf_context_p.h"
18 #include <gwenhywfar/misc.h>
19 #include <gwenhywfar/debug.h>
20 
21 
22 
23 
24 
25 GWEN_INHERIT(GWEN_CRYPT_TOKEN_CONTEXT, GWEN_CTF_CONTEXT)
26 
27 
28 
29 
32  GWEN_CTF_CONTEXT *fctx;
33 
35  GWEN_NEW_OBJECT(GWEN_CTF_CONTEXT, fctx)
36  GWEN_INHERIT_SETDATA(GWEN_CRYPT_TOKEN_CONTEXT, GWEN_CTF_CONTEXT, ctx, fctx,
38 
39  return ctx;
40 }
41 
42 
43 
45  assert(ctx);
46  return GWEN_INHERIT_ISOFTYPE(GWEN_CRYPT_TOKEN_CONTEXT, GWEN_CTF_CONTEXT, ctx);
47 }
48 
49 
50 
52 void GWEN_CTF_Context_freeData(GWEN_UNUSED void *bp, void *p) {
53  GWEN_CTF_CONTEXT *fctx;
54 
55  fctx=(GWEN_CTF_CONTEXT*) p;
56  GWEN_Crypt_Key_free(fctx->localSignKey);
57  GWEN_Crypt_Key_free(fctx->localCryptKey);
58  GWEN_Crypt_Key_free(fctx->remoteSignKey);
59  GWEN_Crypt_Key_free(fctx->remoteCryptKey);
60  GWEN_Crypt_Key_free(fctx->localAuthKey);
61  GWEN_Crypt_Key_free(fctx->remoteAuthKey);
62  GWEN_Crypt_Key_free(fctx->tempLocalSignKey);
63 
64  GWEN_Crypt_Token_KeyInfo_free(fctx->localSignKeyInfo);
65  GWEN_Crypt_Token_KeyInfo_free(fctx->localCryptKeyInfo);
66  GWEN_Crypt_Token_KeyInfo_free(fctx->remoteSignKeyInfo);
67  GWEN_Crypt_Token_KeyInfo_free(fctx->remoteCryptKeyInfo);
68  GWEN_Crypt_Token_KeyInfo_free(fctx->localAuthKeyInfo);
69  GWEN_Crypt_Token_KeyInfo_free(fctx->remoteAuthKeyInfo);
70  GWEN_Crypt_Token_KeyInfo_free(fctx->tempLocalSignKeyInfo);
71 
72  GWEN_FREE_OBJECT(fctx);
73 }
74 
75 
76 
78  GWEN_CTF_CONTEXT *fctx;
79 
80  assert(ctx);
81  fctx=GWEN_INHERIT_GETDATA(GWEN_CRYPT_TOKEN_CONTEXT, GWEN_CTF_CONTEXT, ctx);
82  assert(fctx);
83 
84  return fctx->localSignKey;
85 }
86 
87 
88 
90  GWEN_CTF_CONTEXT *fctx;
91 
92  assert(ctx);
93  fctx=GWEN_INHERIT_GETDATA(GWEN_CRYPT_TOKEN_CONTEXT, GWEN_CTF_CONTEXT, ctx);
94  assert(fctx);
95 
96  GWEN_Crypt_Key_free(fctx->localSignKey);
97  fctx->localSignKey=k;
98 }
99 
100 
101 
103  GWEN_CTF_CONTEXT *fctx;
104 
105  assert(ctx);
106  fctx=GWEN_INHERIT_GETDATA(GWEN_CRYPT_TOKEN_CONTEXT, GWEN_CTF_CONTEXT, ctx);
107  assert(fctx);
108 
109  return fctx->localSignKeyInfo;
110 }
111 
112 
113 
115  GWEN_CTF_CONTEXT *fctx;
116 
117  assert(ctx);
118  fctx=GWEN_INHERIT_GETDATA(GWEN_CRYPT_TOKEN_CONTEXT, GWEN_CTF_CONTEXT, ctx);
119  assert(fctx);
120 
121  GWEN_Crypt_Token_KeyInfo_free(fctx->localSignKeyInfo);
122  fctx->localSignKeyInfo=ki;
123 }
124 
125 
126 
128  GWEN_CTF_CONTEXT *fctx;
129 
130  assert(ctx);
131  fctx=GWEN_INHERIT_GETDATA(GWEN_CRYPT_TOKEN_CONTEXT, GWEN_CTF_CONTEXT, ctx);
132  assert(fctx);
133 
134  return fctx->localCryptKey;
135 }
136 
137 
138 
140  GWEN_CTF_CONTEXT *fctx;
141 
142  assert(ctx);
143  fctx=GWEN_INHERIT_GETDATA(GWEN_CRYPT_TOKEN_CONTEXT, GWEN_CTF_CONTEXT, ctx);
144  assert(fctx);
145 
146  GWEN_Crypt_Key_free(fctx->localCryptKey);
147  fctx->localCryptKey=k;
148 }
149 
150 
151 
153  GWEN_CTF_CONTEXT *fctx;
154 
155  assert(ctx);
156  fctx=GWEN_INHERIT_GETDATA(GWEN_CRYPT_TOKEN_CONTEXT, GWEN_CTF_CONTEXT, ctx);
157  assert(fctx);
158 
159  return fctx->localCryptKeyInfo;
160 }
161 
162 
163 
165  GWEN_CTF_CONTEXT *fctx;
166 
167  assert(ctx);
168  fctx=GWEN_INHERIT_GETDATA(GWEN_CRYPT_TOKEN_CONTEXT, GWEN_CTF_CONTEXT, ctx);
169  assert(fctx);
170 
171  GWEN_Crypt_Token_KeyInfo_free(fctx->localCryptKeyInfo);
172  fctx->localCryptKeyInfo=ki;
173 }
174 
175 
176 
178  GWEN_CTF_CONTEXT *fctx;
179 
180  assert(ctx);
181  fctx=GWEN_INHERIT_GETDATA(GWEN_CRYPT_TOKEN_CONTEXT, GWEN_CTF_CONTEXT, ctx);
182  assert(fctx);
183 
184  return fctx->remoteSignKey;
185 }
186 
187 
188 
190  GWEN_CTF_CONTEXT *fctx;
191 
192  assert(ctx);
193  fctx=GWEN_INHERIT_GETDATA(GWEN_CRYPT_TOKEN_CONTEXT, GWEN_CTF_CONTEXT, ctx);
194  assert(fctx);
195 
196  GWEN_Crypt_Key_free(fctx->remoteSignKey);
197  fctx->remoteSignKey=k;
198 }
199 
200 
201 
203  GWEN_CTF_CONTEXT *fctx;
204 
205  assert(ctx);
206  fctx=GWEN_INHERIT_GETDATA(GWEN_CRYPT_TOKEN_CONTEXT, GWEN_CTF_CONTEXT, ctx);
207  assert(fctx);
208 
209  return fctx->remoteSignKeyInfo;
210 }
211 
212 
213 
215  GWEN_CTF_CONTEXT *fctx;
216 
217  assert(ctx);
218  fctx=GWEN_INHERIT_GETDATA(GWEN_CRYPT_TOKEN_CONTEXT, GWEN_CTF_CONTEXT, ctx);
219  assert(fctx);
220 
221  GWEN_Crypt_Token_KeyInfo_free(fctx->remoteSignKeyInfo);
222  fctx->remoteSignKeyInfo=ki;
223 }
224 
225 
226 
228  GWEN_CTF_CONTEXT *fctx;
229 
230  assert(ctx);
231  fctx=GWEN_INHERIT_GETDATA(GWEN_CRYPT_TOKEN_CONTEXT, GWEN_CTF_CONTEXT, ctx);
232  assert(fctx);
233 
234  return fctx->remoteCryptKey;
235 }
236 
237 
238 
240  GWEN_CTF_CONTEXT *fctx;
241 
242  assert(ctx);
243  fctx=GWEN_INHERIT_GETDATA(GWEN_CRYPT_TOKEN_CONTEXT, GWEN_CTF_CONTEXT, ctx);
244  assert(fctx);
245 
246  GWEN_Crypt_Key_free(fctx->remoteCryptKey);
247  fctx->remoteCryptKey=k;
248 }
249 
250 
251 
253  GWEN_CTF_CONTEXT *fctx;
254 
255  assert(ctx);
256  fctx=GWEN_INHERIT_GETDATA(GWEN_CRYPT_TOKEN_CONTEXT, GWEN_CTF_CONTEXT, ctx);
257  assert(fctx);
258 
259  return fctx->remoteCryptKeyInfo;
260 }
261 
262 
263 
265  GWEN_CTF_CONTEXT *fctx;
266 
267  assert(ctx);
268  fctx=GWEN_INHERIT_GETDATA(GWEN_CRYPT_TOKEN_CONTEXT, GWEN_CTF_CONTEXT, ctx);
269  assert(fctx);
270 
271  GWEN_Crypt_Token_KeyInfo_free(fctx->remoteCryptKeyInfo);
272  fctx->remoteCryptKeyInfo=ki;
273 }
274 
275 
276 
278  GWEN_CTF_CONTEXT *fctx;
279 
280  assert(ctx);
281  fctx=GWEN_INHERIT_GETDATA(GWEN_CRYPT_TOKEN_CONTEXT, GWEN_CTF_CONTEXT, ctx);
282  assert(fctx);
283 
284  return fctx->localAuthKey;
285 }
286 
287 
288 
290  GWEN_CTF_CONTEXT *fctx;
291 
292  assert(ctx);
293  fctx=GWEN_INHERIT_GETDATA(GWEN_CRYPT_TOKEN_CONTEXT, GWEN_CTF_CONTEXT, ctx);
294  assert(fctx);
295 
296  GWEN_Crypt_Key_free(fctx->localAuthKey);
297  fctx->localAuthKey=k;
298 }
299 
300 
301 
303  GWEN_CTF_CONTEXT *fctx;
304 
305  assert(ctx);
306  fctx=GWEN_INHERIT_GETDATA(GWEN_CRYPT_TOKEN_CONTEXT, GWEN_CTF_CONTEXT, ctx);
307  assert(fctx);
308 
309  return fctx->localAuthKeyInfo;
310 }
311 
312 
313 
315  GWEN_CTF_CONTEXT *fctx;
316 
317  assert(ctx);
318  fctx=GWEN_INHERIT_GETDATA(GWEN_CRYPT_TOKEN_CONTEXT, GWEN_CTF_CONTEXT, ctx);
319  assert(fctx);
320 
321  GWEN_Crypt_Token_KeyInfo_free(fctx->localAuthKeyInfo);
322  fctx->localAuthKeyInfo=ki;
323 }
324 
325 
326 
328  GWEN_CTF_CONTEXT *fctx;
329 
330  assert(ctx);
331  fctx=GWEN_INHERIT_GETDATA(GWEN_CRYPT_TOKEN_CONTEXT, GWEN_CTF_CONTEXT, ctx);
332  assert(fctx);
333 
334  return fctx->remoteAuthKey;
335 }
336 
337 
338 
340  GWEN_CTF_CONTEXT *fctx;
341 
342  assert(ctx);
343  fctx=GWEN_INHERIT_GETDATA(GWEN_CRYPT_TOKEN_CONTEXT, GWEN_CTF_CONTEXT, ctx);
344  assert(fctx);
345 
346  GWEN_Crypt_Key_free(fctx->remoteAuthKey);
347  fctx->remoteAuthKey=k;
348 }
349 
350 
351 
353  GWEN_CTF_CONTEXT *fctx;
354 
355  assert(ctx);
356  fctx=GWEN_INHERIT_GETDATA(GWEN_CRYPT_TOKEN_CONTEXT, GWEN_CTF_CONTEXT, ctx);
357  assert(fctx);
358 
359  return fctx->remoteAuthKeyInfo;
360 }
361 
362 
363 
365  GWEN_CTF_CONTEXT *fctx;
366 
367  assert(ctx);
368  fctx=GWEN_INHERIT_GETDATA(GWEN_CRYPT_TOKEN_CONTEXT, GWEN_CTF_CONTEXT, ctx);
369  assert(fctx);
370 
371  GWEN_Crypt_Token_KeyInfo_free(fctx->remoteAuthKeyInfo);
372  fctx->remoteAuthKeyInfo=ki;
373 }
374 
375 
376 
378  GWEN_CTF_CONTEXT *fctx;
379 
380  assert(ctx);
381  fctx=GWEN_INHERIT_GETDATA(GWEN_CRYPT_TOKEN_CONTEXT, GWEN_CTF_CONTEXT, ctx);
382  assert(fctx);
383 
384  return fctx->tempLocalSignKey;
385 }
386 
387 
388 
390  GWEN_CTF_CONTEXT *fctx;
391 
392  assert(ctx);
393  fctx=GWEN_INHERIT_GETDATA(GWEN_CRYPT_TOKEN_CONTEXT, GWEN_CTF_CONTEXT, ctx);
394  assert(fctx);
395 
396  GWEN_Crypt_Key_free(fctx->tempLocalSignKey);
397  fctx->tempLocalSignKey=k;
398 }
399 
400 
401 
403  GWEN_CTF_CONTEXT *fctx;
404 
405  assert(ctx);
406  fctx=GWEN_INHERIT_GETDATA(GWEN_CRYPT_TOKEN_CONTEXT, GWEN_CTF_CONTEXT, ctx);
407  assert(fctx);
408 
409  return fctx->tempLocalSignKeyInfo;
410 }
411 
412 
413 
415  GWEN_CTF_CONTEXT *fctx;
416 
417  assert(ctx);
418  fctx=GWEN_INHERIT_GETDATA(GWEN_CRYPT_TOKEN_CONTEXT, GWEN_CTF_CONTEXT, ctx);
419  assert(fctx);
420 
421  GWEN_Crypt_Token_KeyInfo_free(fctx->tempLocalSignKeyInfo);
422  fctx->tempLocalSignKeyInfo=ki;
423 }
424 
425 
426 
427 
428 
429 
430 
431 
GWEN_CRYPT_KEY * GWEN_CTF_Context_GetRemoteSignKey(const GWEN_CRYPT_TOKEN_CONTEXT *ctx)
Definition: ctf_context.c:177
GWEN_CRYPT_TOKEN_KEYINFO * GWEN_CTF_Context_GetLocalSignKeyInfo(const GWEN_CRYPT_TOKEN_CONTEXT *ctx)
Definition: ctf_context.c:102
void GWEN_CTF_Context_SetLocalSignKeyInfo(GWEN_CRYPT_TOKEN_CONTEXT *ctx, GWEN_CRYPT_TOKEN_KEYINFO *ki)
Definition: ctf_context.c:114
GWEN_CRYPT_KEY * GWEN_CTF_Context_GetLocalSignKey(const GWEN_CRYPT_TOKEN_CONTEXT *ctx)
Definition: ctf_context.c:77
void GWEN_Crypt_Token_KeyInfo_free(GWEN_CRYPT_TOKEN_KEYINFO *p_struct)
Definition: ct_keyinfo.c:77
void GWEN_CTF_Context_SetLocalCryptKey(GWEN_CRYPT_TOKEN_CONTEXT *ctx, GWEN_CRYPT_KEY *k)
Definition: ctf_context.c:139
GWEN_CRYPT_KEY * GWEN_CTF_Context_GetLocalAuthKey(const GWEN_CRYPT_TOKEN_CONTEXT *ctx)
Definition: ctf_context.c:277
void GWEN_CTF_Context_SetLocalAuthKey(GWEN_CRYPT_TOKEN_CONTEXT *ctx, GWEN_CRYPT_KEY *k)
Definition: ctf_context.c:289
void GWEN_CTF_Context_SetRemoteSignKey(GWEN_CRYPT_TOKEN_CONTEXT *ctx, GWEN_CRYPT_KEY *k)
Definition: ctf_context.c:189
GWEN_CRYPT_TOKEN_CONTEXT * GWEN_Crypt_Token_Context_new(void)
Definition: ct_context.c:25
void GWEN_Crypt_Key_free(GWEN_CRYPT_KEY *k)
Definition: cryptkey.c:148
void GWEN_CTF_Context_SetLocalSignKey(GWEN_CRYPT_TOKEN_CONTEXT *ctx, GWEN_CRYPT_KEY *k)
Definition: ctf_context.c:89
#define GWEN_FREE_OBJECT(varname)
Definition: memory.h:92
GWEN_CRYPT_TOKEN_CONTEXT * GWEN_CTF_Context_new()
Definition: ctf_context.c:30
GWEN_CRYPT_TOKEN_KEYINFO * GWEN_CTF_Context_GetLocalCryptKeyInfo(const GWEN_CRYPT_TOKEN_CONTEXT *ctx)
Definition: ctf_context.c:152
GWEN_CRYPT_KEY * GWEN_CTF_Context_GetLocalCryptKey(const GWEN_CRYPT_TOKEN_CONTEXT *ctx)
Definition: ctf_context.c:127
#define GWEN_INHERIT_ISOFTYPE(bt, t, element)
Definition: inherit.h:305
void GWEN_CTF_Context_SetRemoteCryptKeyInfo(GWEN_CRYPT_TOKEN_CONTEXT *ctx, GWEN_CRYPT_TOKEN_KEYINFO *ki)
Definition: ctf_context.c:264
void GWEN_CTF_Context_SetRemoteCryptKey(GWEN_CRYPT_TOKEN_CONTEXT *ctx, GWEN_CRYPT_KEY *k)
Definition: ctf_context.c:239
void GWEN_CTF_Context_SetRemoteAuthKeyInfo(GWEN_CRYPT_TOKEN_CONTEXT *ctx, GWEN_CRYPT_TOKEN_KEYINFO *ki)
Definition: ctf_context.c:364
GWEN_CRYPT_KEY * GWEN_CTF_Context_GetRemoteCryptKey(const GWEN_CRYPT_TOKEN_CONTEXT *ctx)
Definition: ctf_context.c:227
int GWEN_CTF_Context_IsOfThisType(const GWEN_CRYPT_TOKEN_CONTEXT *ctx)
Definition: ctf_context.c:44
GWEN_CRYPT_TOKEN_KEYINFO * GWEN_CTF_Context_GetTempLocalSignKeyInfo(const GWEN_CRYPT_TOKEN_CONTEXT *ctx)
Definition: ctf_context.c:402
#define GWEN_NEW_OBJECT(typ, varname)
Definition: memory.h:86
#define GWENHYWFAR_CB
Definition: gwenhywfarapi.h:89
void GWEN_CTF_Context_SetRemoteSignKeyInfo(GWEN_CRYPT_TOKEN_CONTEXT *ctx, GWEN_CRYPT_TOKEN_KEYINFO *ki)
Definition: ctf_context.c:214
void GWEN_CTF_Context_SetRemoteAuthKey(GWEN_CRYPT_TOKEN_CONTEXT *ctx, GWEN_CRYPT_KEY *k)
Definition: ctf_context.c:339
GWENHYWFAR_CB void GWEN_CTF_Context_freeData(GWEN_UNUSED void *bp, void *p)
Definition: ctf_context.c:52
struct GWEN_CRYPT_KEY GWEN_CRYPT_KEY
Definition: cryptkey.h:26
GWEN_CRYPT_TOKEN_KEYINFO * GWEN_CTF_Context_GetRemoteCryptKeyInfo(const GWEN_CRYPT_TOKEN_CONTEXT *ctx)
Definition: ctf_context.c:252
struct GWEN_CRYPT_TOKEN_KEYINFO GWEN_CRYPT_TOKEN_KEYINFO
Definition: ct_keyinfo.h:121
void GWEN_CTF_Context_SetTempLocalSignKey(GWEN_CRYPT_TOKEN_CONTEXT *ctx, GWEN_CRYPT_KEY *k)
Definition: ctf_context.c:389
GWEN_CRYPT_KEY * GWEN_CTF_Context_GetTempLocalSignKey(const GWEN_CRYPT_TOKEN_CONTEXT *ctx)
Definition: ctf_context.c:377
struct GWEN_CRYPT_TOKEN_CONTEXT GWEN_CRYPT_TOKEN_CONTEXT
Definition: ct_context.h:185
void GWEN_CTF_Context_SetLocalCryptKeyInfo(GWEN_CRYPT_TOKEN_CONTEXT *ctx, GWEN_CRYPT_TOKEN_KEYINFO *ki)
Definition: ctf_context.c:164
GWEN_CRYPT_TOKEN_KEYINFO * GWEN_CTF_Context_GetRemoteAuthKeyInfo(const GWEN_CRYPT_TOKEN_CONTEXT *ctx)
Definition: ctf_context.c:352
void GWEN_CTF_Context_SetTempLocalSignKeyInfo(GWEN_CRYPT_TOKEN_CONTEXT *ctx, GWEN_CRYPT_TOKEN_KEYINFO *ki)
Definition: ctf_context.c:414
GWEN_CRYPT_TOKEN_KEYINFO * GWEN_CTF_Context_GetRemoteSignKeyInfo(const GWEN_CRYPT_TOKEN_CONTEXT *ctx)
Definition: ctf_context.c:202
GWEN_CRYPT_KEY * GWEN_CTF_Context_GetRemoteAuthKey(const GWEN_CRYPT_TOKEN_CONTEXT *ctx)
Definition: ctf_context.c:327
#define GWEN_INHERIT(bt, t)
Definition: inherit.h:264
#define GWEN_INHERIT_SETDATA(bt, t, element, data, fn)
Definition: inherit.h:292
GWEN_CRYPT_TOKEN_KEYINFO * GWEN_CTF_Context_GetLocalAuthKeyInfo(const GWEN_CRYPT_TOKEN_CONTEXT *ctx)
Definition: ctf_context.c:302
#define GWEN_UNUSED
#define GWEN_INHERIT_GETDATA(bt, t, element)
Definition: inherit.h:271
void GWEN_CTF_Context_SetLocalAuthKeyInfo(GWEN_CRYPT_TOKEN_CONTEXT *ctx, GWEN_CRYPT_TOKEN_KEYINFO *ki)
Definition: ctf_context.c:314