ctf_context.c

Go to the documentation of this file.
00001 /***************************************************************************
00002  $RCSfile$
00003                              -------------------
00004     cvs         : $Id: crypttoken.h 1113 2007-01-10 09:14:16Z martin $
00005     begin       : Wed Mar 16 2005
00006     copyright   : (C) 2005 by Martin Preuss
00007     email       : martin@libchipcard.de
00008 
00009  ***************************************************************************
00010  *          Please see toplevel file COPYING for license details           *
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(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 

Generated on Wed Jul 9 13:12:27 2008 for gwenhywfar by  doxygen 1.5.6