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