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