00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013 #ifdef HAVE_CONFIG_H
00014 # include <config.h>
00015 #endif
00016
00017
00018 #include "ctf_context_p.h"
00019 #include <gwenhywfar/misc.h>
00020 #include <gwenhywfar/debug.h>
00021
00022
00023
00024
00025
00026 GWEN_INHERIT(GWEN_CRYPT_TOKEN_CONTEXT, GWEN_CTF_CONTEXT)
00027
00028
00029
00030
00031 GWEN_CRYPT_TOKEN_CONTEXT *GWEN_CTF_Context_new() {
00032 GWEN_CRYPT_TOKEN_CONTEXT *ctx;
00033 GWEN_CTF_CONTEXT *fctx;
00034
00035 ctx=GWEN_Crypt_Token_Context_new();
00036 GWEN_NEW_OBJECT(GWEN_CTF_CONTEXT, fctx)
00037 GWEN_INHERIT_SETDATA(GWEN_CRYPT_TOKEN_CONTEXT, GWEN_CTF_CONTEXT, ctx, fctx,
00038 GWEN_CTF_Context_freeData)
00039
00040 return ctx;
00041 }
00042
00043
00044
00045 int GWEN_CTF_Context_IsOfThisType(const GWEN_CRYPT_TOKEN_CONTEXT *ctx) {
00046 assert(ctx);
00047 return GWEN_INHERIT_ISOFTYPE(GWEN_CRYPT_TOKEN_CONTEXT, GWEN_CTF_CONTEXT, ctx);
00048 }
00049
00050
00051
00052 GWENHYWFAR_CB
00053 void GWEN_CTF_Context_freeData(GWEN_UNUSED void *bp, void *p) {
00054 GWEN_CTF_CONTEXT *fctx;
00055
00056 fctx=(GWEN_CTF_CONTEXT*) p;
00057 GWEN_Crypt_Key_free(fctx->localSignKey);
00058 GWEN_Crypt_Key_free(fctx->localCryptKey);
00059 GWEN_Crypt_Key_free(fctx->remoteSignKey);
00060 GWEN_Crypt_Key_free(fctx->remoteCryptKey);
00061 GWEN_Crypt_Key_free(fctx->localAuthKey);
00062 GWEN_Crypt_Key_free(fctx->remoteAuthKey);
00063
00064 GWEN_Crypt_Token_KeyInfo_free(fctx->localSignKeyInfo);
00065 GWEN_Crypt_Token_KeyInfo_free(fctx->localCryptKeyInfo);
00066 GWEN_Crypt_Token_KeyInfo_free(fctx->remoteSignKeyInfo);
00067 GWEN_Crypt_Token_KeyInfo_free(fctx->remoteCryptKeyInfo);
00068 GWEN_Crypt_Token_KeyInfo_free(fctx->localAuthKeyInfo);
00069 GWEN_Crypt_Token_KeyInfo_free(fctx->remoteAuthKeyInfo);
00070
00071 GWEN_FREE_OBJECT(fctx);
00072 }
00073
00074
00075
00076 GWEN_CRYPT_KEY *GWEN_CTF_Context_GetLocalSignKey(const GWEN_CRYPT_TOKEN_CONTEXT *ctx) {
00077 GWEN_CTF_CONTEXT *fctx;
00078
00079 assert(ctx);
00080 fctx=GWEN_INHERIT_GETDATA(GWEN_CRYPT_TOKEN_CONTEXT, GWEN_CTF_CONTEXT, ctx);
00081 assert(fctx);
00082
00083 return fctx->localSignKey;
00084 }
00085
00086
00087
00088 void GWEN_CTF_Context_SetLocalSignKey(GWEN_CRYPT_TOKEN_CONTEXT *ctx, GWEN_CRYPT_KEY *k) {
00089 GWEN_CTF_CONTEXT *fctx;
00090
00091 assert(ctx);
00092 fctx=GWEN_INHERIT_GETDATA(GWEN_CRYPT_TOKEN_CONTEXT, GWEN_CTF_CONTEXT, ctx);
00093 assert(fctx);
00094
00095 GWEN_Crypt_Key_free(fctx->localSignKey);
00096 fctx->localSignKey=k;
00097 }
00098
00099
00100
00101 GWEN_CRYPT_TOKEN_KEYINFO*GWEN_CTF_Context_GetLocalSignKeyInfo(const GWEN_CRYPT_TOKEN_CONTEXT *ctx) {
00102 GWEN_CTF_CONTEXT *fctx;
00103
00104 assert(ctx);
00105 fctx=GWEN_INHERIT_GETDATA(GWEN_CRYPT_TOKEN_CONTEXT, GWEN_CTF_CONTEXT, ctx);
00106 assert(fctx);
00107
00108 return fctx->localSignKeyInfo;
00109 }
00110
00111
00112
00113 void GWEN_CTF_Context_SetLocalSignKeyInfo(GWEN_CRYPT_TOKEN_CONTEXT *ctx, GWEN_CRYPT_TOKEN_KEYINFO *ki) {
00114 GWEN_CTF_CONTEXT *fctx;
00115
00116 assert(ctx);
00117 fctx=GWEN_INHERIT_GETDATA(GWEN_CRYPT_TOKEN_CONTEXT, GWEN_CTF_CONTEXT, ctx);
00118 assert(fctx);
00119
00120 GWEN_Crypt_Token_KeyInfo_free(fctx->localSignKeyInfo);
00121 fctx->localSignKeyInfo=ki;
00122 }
00123
00124
00125
00126 GWEN_CRYPT_KEY *GWEN_CTF_Context_GetLocalCryptKey(const GWEN_CRYPT_TOKEN_CONTEXT *ctx) {
00127 GWEN_CTF_CONTEXT *fctx;
00128
00129 assert(ctx);
00130 fctx=GWEN_INHERIT_GETDATA(GWEN_CRYPT_TOKEN_CONTEXT, GWEN_CTF_CONTEXT, ctx);
00131 assert(fctx);
00132
00133 return fctx->localCryptKey;
00134 }
00135
00136
00137
00138 void GWEN_CTF_Context_SetLocalCryptKey(GWEN_CRYPT_TOKEN_CONTEXT *ctx, GWEN_CRYPT_KEY *k) {
00139 GWEN_CTF_CONTEXT *fctx;
00140
00141 assert(ctx);
00142 fctx=GWEN_INHERIT_GETDATA(GWEN_CRYPT_TOKEN_CONTEXT, GWEN_CTF_CONTEXT, ctx);
00143 assert(fctx);
00144
00145 GWEN_Crypt_Key_free(fctx->localCryptKey);
00146 fctx->localCryptKey=k;
00147 }
00148
00149
00150
00151 GWEN_CRYPT_TOKEN_KEYINFO *GWEN_CTF_Context_GetLocalCryptKeyInfo(const GWEN_CRYPT_TOKEN_CONTEXT *ctx) {
00152 GWEN_CTF_CONTEXT *fctx;
00153
00154 assert(ctx);
00155 fctx=GWEN_INHERIT_GETDATA(GWEN_CRYPT_TOKEN_CONTEXT, GWEN_CTF_CONTEXT, ctx);
00156 assert(fctx);
00157
00158 return fctx->localCryptKeyInfo;
00159 }
00160
00161
00162
00163 void GWEN_CTF_Context_SetLocalCryptKeyInfo(GWEN_CRYPT_TOKEN_CONTEXT *ctx, GWEN_CRYPT_TOKEN_KEYINFO *ki) {
00164 GWEN_CTF_CONTEXT *fctx;
00165
00166 assert(ctx);
00167 fctx=GWEN_INHERIT_GETDATA(GWEN_CRYPT_TOKEN_CONTEXT, GWEN_CTF_CONTEXT, ctx);
00168 assert(fctx);
00169
00170 GWEN_Crypt_Token_KeyInfo_free(fctx->localCryptKeyInfo);
00171 fctx->localCryptKeyInfo=ki;
00172 }
00173
00174
00175
00176 GWEN_CRYPT_KEY *GWEN_CTF_Context_GetRemoteSignKey(const GWEN_CRYPT_TOKEN_CONTEXT *ctx) {
00177 GWEN_CTF_CONTEXT *fctx;
00178
00179 assert(ctx);
00180 fctx=GWEN_INHERIT_GETDATA(GWEN_CRYPT_TOKEN_CONTEXT, GWEN_CTF_CONTEXT, ctx);
00181 assert(fctx);
00182
00183 return fctx->remoteSignKey;
00184 }
00185
00186
00187
00188 void GWEN_CTF_Context_SetRemoteSignKey(GWEN_CRYPT_TOKEN_CONTEXT *ctx, GWEN_CRYPT_KEY *k) {
00189 GWEN_CTF_CONTEXT *fctx;
00190
00191 assert(ctx);
00192 fctx=GWEN_INHERIT_GETDATA(GWEN_CRYPT_TOKEN_CONTEXT, GWEN_CTF_CONTEXT, ctx);
00193 assert(fctx);
00194
00195 GWEN_Crypt_Key_free(fctx->remoteSignKey);
00196 fctx->remoteSignKey=k;
00197 }
00198
00199
00200
00201 GWEN_CRYPT_TOKEN_KEYINFO *GWEN_CTF_Context_GetRemoteSignKeyInfo(const GWEN_CRYPT_TOKEN_CONTEXT *ctx) {
00202 GWEN_CTF_CONTEXT *fctx;
00203
00204 assert(ctx);
00205 fctx=GWEN_INHERIT_GETDATA(GWEN_CRYPT_TOKEN_CONTEXT, GWEN_CTF_CONTEXT, ctx);
00206 assert(fctx);
00207
00208 return fctx->remoteSignKeyInfo;
00209 }
00210
00211
00212
00213 void GWEN_CTF_Context_SetRemoteSignKeyInfo(GWEN_CRYPT_TOKEN_CONTEXT *ctx, GWEN_CRYPT_TOKEN_KEYINFO *ki) {
00214 GWEN_CTF_CONTEXT *fctx;
00215
00216 assert(ctx);
00217 fctx=GWEN_INHERIT_GETDATA(GWEN_CRYPT_TOKEN_CONTEXT, GWEN_CTF_CONTEXT, ctx);
00218 assert(fctx);
00219
00220 GWEN_Crypt_Token_KeyInfo_free(fctx->remoteSignKeyInfo);
00221 fctx->remoteSignKeyInfo=ki;
00222 }
00223
00224
00225
00226 GWEN_CRYPT_KEY *GWEN_CTF_Context_GetRemoteCryptKey(const GWEN_CRYPT_TOKEN_CONTEXT *ctx) {
00227 GWEN_CTF_CONTEXT *fctx;
00228
00229 assert(ctx);
00230 fctx=GWEN_INHERIT_GETDATA(GWEN_CRYPT_TOKEN_CONTEXT, GWEN_CTF_CONTEXT, ctx);
00231 assert(fctx);
00232
00233 return fctx->remoteCryptKey;
00234 }
00235
00236
00237
00238 void GWEN_CTF_Context_SetRemoteCryptKey(GWEN_CRYPT_TOKEN_CONTEXT *ctx, GWEN_CRYPT_KEY *k) {
00239 GWEN_CTF_CONTEXT *fctx;
00240
00241 assert(ctx);
00242 fctx=GWEN_INHERIT_GETDATA(GWEN_CRYPT_TOKEN_CONTEXT, GWEN_CTF_CONTEXT, ctx);
00243 assert(fctx);
00244
00245 GWEN_Crypt_Key_free(fctx->remoteCryptKey);
00246 fctx->remoteCryptKey=k;
00247 }
00248
00249
00250
00251 GWEN_CRYPT_TOKEN_KEYINFO *GWEN_CTF_Context_GetRemoteCryptKeyInfo(const GWEN_CRYPT_TOKEN_CONTEXT *ctx) {
00252 GWEN_CTF_CONTEXT *fctx;
00253
00254 assert(ctx);
00255 fctx=GWEN_INHERIT_GETDATA(GWEN_CRYPT_TOKEN_CONTEXT, GWEN_CTF_CONTEXT, ctx);
00256 assert(fctx);
00257
00258 return fctx->remoteCryptKeyInfo;
00259 }
00260
00261
00262
00263 void GWEN_CTF_Context_SetRemoteCryptKeyInfo(GWEN_CRYPT_TOKEN_CONTEXT *ctx, GWEN_CRYPT_TOKEN_KEYINFO *ki) {
00264 GWEN_CTF_CONTEXT *fctx;
00265
00266 assert(ctx);
00267 fctx=GWEN_INHERIT_GETDATA(GWEN_CRYPT_TOKEN_CONTEXT, GWEN_CTF_CONTEXT, ctx);
00268 assert(fctx);
00269
00270 GWEN_Crypt_Token_KeyInfo_free(fctx->remoteCryptKeyInfo);
00271 fctx->remoteCryptKeyInfo=ki;
00272 }
00273
00274
00275
00276 GWEN_CRYPT_KEY *GWEN_CTF_Context_GetLocalAuthKey(const GWEN_CRYPT_TOKEN_CONTEXT *ctx) {
00277 GWEN_CTF_CONTEXT *fctx;
00278
00279 assert(ctx);
00280 fctx=GWEN_INHERIT_GETDATA(GWEN_CRYPT_TOKEN_CONTEXT, GWEN_CTF_CONTEXT, ctx);
00281 assert(fctx);
00282
00283 return fctx->localAuthKey;
00284 }
00285
00286
00287
00288 void GWEN_CTF_Context_SetLocalAuthKey(GWEN_CRYPT_TOKEN_CONTEXT *ctx, GWEN_CRYPT_KEY *k) {
00289 GWEN_CTF_CONTEXT *fctx;
00290
00291 assert(ctx);
00292 fctx=GWEN_INHERIT_GETDATA(GWEN_CRYPT_TOKEN_CONTEXT, GWEN_CTF_CONTEXT, ctx);
00293 assert(fctx);
00294
00295 GWEN_Crypt_Key_free(fctx->localAuthKey);
00296 fctx->localAuthKey=k;
00297 }
00298
00299
00300
00301 GWEN_CRYPT_TOKEN_KEYINFO *GWEN_CTF_Context_GetLocalAuthKeyInfo(const GWEN_CRYPT_TOKEN_CONTEXT *ctx) {
00302 GWEN_CTF_CONTEXT *fctx;
00303
00304 assert(ctx);
00305 fctx=GWEN_INHERIT_GETDATA(GWEN_CRYPT_TOKEN_CONTEXT, GWEN_CTF_CONTEXT, ctx);
00306 assert(fctx);
00307
00308 return fctx->localAuthKeyInfo;
00309 }
00310
00311
00312
00313 void GWEN_CTF_Context_SetLocalAuthKeyInfo(GWEN_CRYPT_TOKEN_CONTEXT *ctx, GWEN_CRYPT_TOKEN_KEYINFO *ki) {
00314 GWEN_CTF_CONTEXT *fctx;
00315
00316 assert(ctx);
00317 fctx=GWEN_INHERIT_GETDATA(GWEN_CRYPT_TOKEN_CONTEXT, GWEN_CTF_CONTEXT, ctx);
00318 assert(fctx);
00319
00320 GWEN_Crypt_Token_KeyInfo_free(fctx->localAuthKeyInfo);
00321 fctx->localAuthKeyInfo=ki;
00322 }
00323
00324
00325
00326 GWEN_CRYPT_KEY *GWEN_CTF_Context_GetRemoteAuthKey(const GWEN_CRYPT_TOKEN_CONTEXT *ctx) {
00327 GWEN_CTF_CONTEXT *fctx;
00328
00329 assert(ctx);
00330 fctx=GWEN_INHERIT_GETDATA(GWEN_CRYPT_TOKEN_CONTEXT, GWEN_CTF_CONTEXT, ctx);
00331 assert(fctx);
00332
00333 return fctx->remoteAuthKey;
00334 }
00335
00336
00337
00338 void GWEN_CTF_Context_SetRemoteAuthKey(GWEN_CRYPT_TOKEN_CONTEXT *ctx, GWEN_CRYPT_KEY *k) {
00339 GWEN_CTF_CONTEXT *fctx;
00340
00341 assert(ctx);
00342 fctx=GWEN_INHERIT_GETDATA(GWEN_CRYPT_TOKEN_CONTEXT, GWEN_CTF_CONTEXT, ctx);
00343 assert(fctx);
00344
00345 GWEN_Crypt_Key_free(fctx->remoteAuthKey);
00346 fctx->remoteAuthKey=k;
00347 }
00348
00349
00350
00351 GWEN_CRYPT_TOKEN_KEYINFO *GWEN_CTF_Context_GetRemoteAuthKeyInfo(const GWEN_CRYPT_TOKEN_CONTEXT *ctx) {
00352 GWEN_CTF_CONTEXT *fctx;
00353
00354 assert(ctx);
00355 fctx=GWEN_INHERIT_GETDATA(GWEN_CRYPT_TOKEN_CONTEXT, GWEN_CTF_CONTEXT, ctx);
00356 assert(fctx);
00357
00358 return fctx->remoteAuthKeyInfo;
00359 }
00360
00361
00362
00363 void GWEN_CTF_Context_SetRemoteAuthKeyInfo(GWEN_CRYPT_TOKEN_CONTEXT *ctx, GWEN_CRYPT_TOKEN_KEYINFO *ki) {
00364 GWEN_CTF_CONTEXT *fctx;
00365
00366 assert(ctx);
00367 fctx=GWEN_INHERIT_GETDATA(GWEN_CRYPT_TOKEN_CONTEXT, GWEN_CTF_CONTEXT, ctx);
00368 assert(fctx);
00369
00370 GWEN_Crypt_Token_KeyInfo_free(fctx->remoteAuthKeyInfo);
00371 fctx->remoteAuthKeyInfo=ki;
00372 }
00373
00374
00375
00376
00377
00378
00379
00380