14 #define DISABLE_DEBUGLOG
17 #include "ctplugin_p.h"
20 #include <gwenhywfar/gwenhywfar.h>
21 #include <gwenhywfar/misc.h>
22 #include <gwenhywfar/debug.h>
23 #include <gwenhywfar/gui.h>
24 #include <gwenhywfar/pathmanager.h>
90 "Could not unregister CryptToken plugin manager (%d)", rv);
112 const char *typeName,
113 const char *fileName) {
115 GWEN_CRYPT_TOKEN_PLUGIN *xpl;
120 xpl->devType=devType;
129 GWEN_CRYPT_TOKEN_PLUGIN *xpl;
131 xpl=(GWEN_CRYPT_TOKEN_PLUGIN*)p;
139 GWEN_CRYPT_TOKEN_PLUGIN *xpl;
145 if (xpl->createTokenFn)
146 return xpl->createTokenFn(pl, name);
156 GWEN_CRYPT_TOKEN_PLUGIN *xpl;
162 if (xpl->checkTokenFn)
163 return xpl->checkTokenFn(pl, name);
173 GWEN_CRYPT_TOKEN_PLUGIN *xpl;
186 GWEN_CRYPT_TOKEN_PLUGIN *xpl;
193 of=xpl->createTokenFn;
194 xpl->createTokenFn=fn;
203 GWEN_CRYPT_TOKEN_PLUGIN *xpl;
210 of=xpl->checkTokenFn;
211 xpl->checkTokenFn=fn;
227 GWEN_PLUGIN_DESCRIPTION_LIST2 *pl1;
231 GWEN_PLUGIN_DESCRIPTION_LIST2_ITERATOR *pit;
232 GWEN_PLUGIN_DESCRIPTION_LIST2 *pl2;
234 pl2=GWEN_PluginDescription_List2_new();
235 pit=GWEN_PluginDescription_List2_First(pl1);
244 pd=GWEN_PluginDescription_List2Iterator_Data(pit);
254 if (!ts || (ts && strcasecmp(ts, nts)==0))
264 GWEN_PluginDescription_List2_PushBack(pl2, pd2);
267 pd=GWEN_PluginDescription_List2Iterator_Next(pit);
269 GWEN_PluginDescription_List2Iterator_free(pit);
273 if (GWEN_PluginDescription_List2_GetSize(pl2)==0) {
276 "No matching plugin descriptions for the given device type");
294 GWEN_PLUGIN_DESCRIPTION_LIST2 *pdl;
303 I18N(
"No plugin found for this device type"));
306 I18N(
"If you're using a Debian/Ubuntu based system "
307 "please consider to install package "
308 LIBCHIPCARD_GWENHYWFAR_PLUGIN_PACKAGE));
312 GWEN_PLUGIN_DESCRIPTION_LIST2_ITERATOR *pit;
314 pit=GWEN_PluginDescription_List2_First(pdl);
318 unsigned int pdcount;
321 pdcount=GWEN_PluginDescription_List2_GetSize(pdl);
328 I18N(
"Determining plugin module..."),
333 pd=GWEN_PluginDescription_List2Iterator_Data(pit);
344 snprintf(logbuffer,
sizeof(logbuffer)-1,
345 I18N(
"Loading plugin \"%s\""),
347 logbuffer[
sizeof(logbuffer)-1]=0;
360 snprintf(logbuffer,
sizeof(logbuffer)-1,
361 I18N(
"Checking plugin \"%s\""),
363 logbuffer[
sizeof(logbuffer)-1]=0;
369 "Checking plugin \"%s\" for [%s]",
377 snprintf(logbuffer,
sizeof(logbuffer)-1,
378 I18N(
"Plugin \"%s\" supports this token"),
380 logbuffer[
sizeof(logbuffer)-1]=0;
387 GWEN_PluginDescription_List2Iterator_free(pit);
397 GWEN_PluginDescription_List2Iterator_free(pit);
403 snprintf(logbuffer,
sizeof(logbuffer)-1,
404 I18N(
"Plugin \"%s\": Function not implemented"),
406 logbuffer[
sizeof(logbuffer)-1]=0;
413 snprintf(logbuffer,
sizeof(logbuffer)-1,
414 I18N(
"Plugin \"%s\" does not support this token"),
416 logbuffer[
sizeof(logbuffer)-1]=0;
423 snprintf(logbuffer,
sizeof(logbuffer)-1,
424 I18N(
"Plugin \"%s\" supports this token, but the name "
427 logbuffer[
sizeof(logbuffer)-1]=0;
434 snprintf(logbuffer,
sizeof(logbuffer)-1,
435 I18N(
"Plugin \"%s\": Unexpected error (%d)"),
437 logbuffer[
sizeof(logbuffer)-1]=0;
445 snprintf(logbuffer,
sizeof(logbuffer)-1,
446 I18N(
"Could not load plugin \"%s\""),
448 logbuffer[
sizeof(logbuffer)-1]=0;
459 GWEN_PluginDescription_List2Iterator_free(pit);
465 pd=GWEN_PluginDescription_List2Iterator_Next(pit);
469 GWEN_PluginDescription_List2Iterator_free(pit);