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>
96 "Could not unregister CryptToken plugin manager (%d)", rv);
118 const char *typeName,
119 const char *fileName)
122 GWEN_CRYPT_TOKEN_PLUGIN *xpl;
127 xpl->devType=devType;
137 GWEN_CRYPT_TOKEN_PLUGIN *xpl;
139 xpl=(GWEN_CRYPT_TOKEN_PLUGIN *)p;
148 GWEN_CRYPT_TOKEN_PLUGIN *xpl;
154 if (xpl->createTokenFn)
155 return xpl->createTokenFn(pl, name);
166 GWEN_CRYPT_TOKEN_PLUGIN *xpl;
172 if (xpl->checkTokenFn)
173 return xpl->checkTokenFn(pl, name);
184 GWEN_CRYPT_TOKEN_PLUGIN *xpl;
198 GWEN_CRYPT_TOKEN_PLUGIN *xpl;
205 of=xpl->createTokenFn;
206 xpl->createTokenFn=fn;
216 GWEN_CRYPT_TOKEN_PLUGIN *xpl;
223 of=xpl->checkTokenFn;
224 xpl->checkTokenFn=fn;
268 if (!ts || (ts && strcasecmp(ts, nts)==0))
290 "No matching plugin descriptions for the given device type");
318 I18N(
"No plugin found for this device type"));
321 I18N(
"If you're using a Debian/Ubuntu based system "
322 "please consider to install package "
323 LIBCHIPCARD_GWENHYWFAR_PLUGIN_PACKAGE));
333 unsigned int pdcount;
343 I18N(
"Determining plugin module..."),
360 I18N(
"Loading plugin \"%s\""),
379 I18N(
"Could not load plugin \"%s\""),
418 I18N(
"Checking plugin \"%s\""),
422 "Checking plugin \"%s\" for [%s]",
432 I18N(
"Plugin \"%s\" supports this token"),
449 I18N(
"Plugin \"%s\": Function not implemented"),
456 I18N(
"Plugin \"%s\" does not support this token"),
463 I18N(
"Plugin \"%s\" supports this token, but the name did not match"),
470 I18N(
"Plugin \"%s\": Unexpected error (%d)"),
GWEN_BUFFER * GWEN_Buffer_new(char *buffer, uint32_t size, uint32_t used, int take)
void GWEN_Buffer_Reset(GWEN_BUFFER *bf)
GWEN_BUFFER * GWEN_Buffer_dup(GWEN_BUFFER *bf)
int GWEN_Buffer_AppendBuffer(GWEN_BUFFER *bf, GWEN_BUFFER *sf)
void GWEN_Buffer_free(GWEN_BUFFER *bf)
int GWEN_Buffer_AppendString(GWEN_BUFFER *bf, const char *buffer)
char * GWEN_Buffer_GetStart(const GWEN_BUFFER *bf)
const char * GWEN_Crypt_Token_Device_toString(GWEN_CRYPT_TOKEN_DEVICE d)
struct GWEN_CRYPT_TOKEN GWEN_CRYPT_TOKEN
@ GWEN_Crypt_Token_Device_Any
GWEN_CRYPT_TOKEN_DEVICE GWEN_Crypt_Token_Plugin_GetDeviceType(const GWEN_PLUGIN *pl)
int GWEN_Crypt_Token_PluginManager_CheckToken(GWEN_PLUGIN_MANAGER *pm, GWEN_CRYPT_TOKEN_DEVICE devt, GWEN_BUFFER *typeName, GWEN_BUFFER *tokenName, uint32_t guiid)
static int _checkPlugin(GWEN_PLUGIN *pl, GWEN_BUFFER *typeName, GWEN_BUFFER *tokenName, uint32_t progressId)
GWEN_PLUGIN_DESCRIPTION_LIST2 * GWEN_Crypt_Token_PluginManager_GetPluginDescrs(GWEN_PLUGIN_MANAGER *pm, GWEN_CRYPT_TOKEN_DEVICE devt)
GWEN_PLUGIN * GWEN_Crypt_Token_Plugin_new(GWEN_PLUGIN_MANAGER *mgr, GWEN_CRYPT_TOKEN_DEVICE devType, const char *typeName, const char *fileName)
GWEN_CRYPT_TOKEN_PLUGIN_CHECKTOKEN_FN GWEN_Crypt_Token_Plugin_SetCheckTokenFn(GWEN_PLUGIN *pl, GWEN_CRYPT_TOKEN_PLUGIN_CHECKTOKEN_FN fn)
GWEN_CRYPT_TOKEN * GWEN_Crypt_Token_Plugin_CreateToken(GWEN_PLUGIN *pl, const char *name)
int GWEN_Crypt_Token_ModuleInit(void)
GWENHYWFAR_CB void GWEN_Crypt_Token_Plugin_FreeData(GWEN_UNUSED void *bp, void *p)
int GWEN_Crypt_Token_Plugin_CheckToken(GWEN_PLUGIN *pl, GWEN_BUFFER *name)
GWEN_CRYPT_TOKEN_PLUGIN_CREATETOKEN_FN GWEN_Crypt_Token_Plugin_SetCreateTokenFn(GWEN_PLUGIN *pl, GWEN_CRYPT_TOKEN_PLUGIN_CREATETOKEN_FN fn)
int GWEN_Crypt_Token_ModuleFini(void)
#define GWEN_CRYPT_TOKEN_FOLDER
#define GWEN_CRYPT_TOKEN_PLUGIN_TYPENAME
GWEN_CRYPT_TOKEN *GWENHYWFAR_CB(* GWEN_CRYPT_TOKEN_PLUGIN_CREATETOKEN_FN)(GWEN_PLUGIN *pl, const char *name)
int GWENHYWFAR_CB(* GWEN_CRYPT_TOKEN_PLUGIN_CHECKTOKEN_FN)(GWEN_PLUGIN *pl, GWEN_BUFFER *name)
#define DBG_WARN(dbg_logger, format, args...)
#define DBG_INFO(dbg_logger, format, args...)
#define DBG_ERROR(dbg_logger, format, args...)
#define GWEN_ERROR_NOT_IMPLEMENTED
#define GWEN_ERROR_BAD_NAME
#define GWEN_ERROR_GENERIC
#define GWEN_ERROR_USER_ABORTED
#define GWEN_ERROR_NOT_FOUND
#define GWEN_ERROR_NOT_SUPPORTED
struct GWEN_BUFFER GWEN_BUFFER
A dynamically resizeable text buffer.
#define GWEN_GUI_PROGRESS_DELAY
GWENHYWFAR_API uint32_t GWEN_Gui_ProgressStart(uint32_t progressFlags, const char *title, const char *text, uint64_t total, uint32_t guiid)
#define GWEN_GUI_PROGRESS_SHOW_PROGRESS
GWENHYWFAR_API int GWEN_Gui_ProgressEnd(uint32_t id)
GWENHYWFAR_API int GWEN_Gui_ProgressLog(uint32_t id, GWEN_LOGGER_LEVEL level, const char *text)
#define GWEN_GUI_PROGRESS_ALWAYS_SHOW_LOG
#define GWEN_GUI_PROGRESS_SHOW_ABORT
#define GWEN_GUI_PROGRESS_SHOW_LOG
GWENHYWFAR_API int GWEN_Gui_ProgressLog2(uint32_t id, GWEN_LOGGER_LEVEL level, const char *text,...)
GWENHYWFAR_API int GWEN_Gui_ProgressAdvance(uint32_t id, uint32_t progress)
#define GWEN_GUI_PROGRESS_ALLOW_EMBED
#define GWEN_PM_PLUGINDIR
#define GWEN_INHERIT_SETDATA(bt, t, element, data, fn)
#define GWEN_INHERIT(bt, t)
#define GWEN_INHERIT_GETDATA(bt, t, element)
struct GWEN_PLUGIN_DESCRIPTION_LIST2 GWEN_PLUGIN_DESCRIPTION_LIST2
unsigned int GWEN_PluginDescription_List2_GetSize(GWEN_PLUGIN_DESCRIPTION_LIST2 *l)
GWEN_PLUGIN_DESCRIPTION * GWEN_PluginDescription_List2Iterator_Data(GWEN_PLUGIN_DESCRIPTION_LIST2_ITERATOR *li)
GWEN_PLUGIN_DESCRIPTION * GWEN_PluginDescription_List2Iterator_Next(GWEN_PLUGIN_DESCRIPTION_LIST2_ITERATOR *li)
GWEN_PLUGIN_DESCRIPTION_LIST2_ITERATOR * GWEN_PluginDescription_List2_First(GWEN_PLUGIN_DESCRIPTION_LIST2 *l)
void GWEN_PluginDescription_List2_PushBack(GWEN_PLUGIN_DESCRIPTION_LIST2 *l, GWEN_PLUGIN_DESCRIPTION *p)
struct GWEN_PLUGIN_DESCRIPTION_LIST2_ITERATOR GWEN_PLUGIN_DESCRIPTION_LIST2_ITERATOR
void GWEN_PluginDescription_List2Iterator_free(GWEN_PLUGIN_DESCRIPTION_LIST2_ITERATOR *li)
GWEN_PLUGIN_DESCRIPTION_LIST2 * GWEN_PluginDescription_List2_new()
@ GWEN_LoggerLevel_Warning
@ GWEN_LoggerLevel_Notice
#define GWEN_FREE_OBJECT(varname)
#define GWEN_NEW_OBJECT(typ, varname)
GWEN_STRINGLIST * GWEN_PathManager_GetPaths(const char *destLib, const char *pathName)
GWEN_PLUGIN_MANAGER * GWEN_PluginManager_new(const char *name, const char *destLib)
GWEN_PLUGIN_DESCRIPTION_LIST2 * GWEN_PluginManager_GetPluginDescrs(GWEN_PLUGIN_MANAGER *pm)
void GWEN_PluginManager_free(GWEN_PLUGIN_MANAGER *pm)
int GWEN_PluginManager_AddPath(GWEN_PLUGIN_MANAGER *pm, const char *callingLib, const char *s)
GWEN_PLUGIN_MANAGER * GWEN_PluginManager_FindPluginManager(const char *s)
int GWEN_PluginManager_Unregister(GWEN_PLUGIN_MANAGER *pm)
GWEN_PLUGIN * GWEN_PluginManager_GetPlugin(GWEN_PLUGIN_MANAGER *pm, const char *s)
GWEN_PLUGIN * GWEN_Plugin_new(GWEN_PLUGIN_MANAGER *pm, const char *name, const char *fileName)
const char * GWEN_Plugin_GetName(const GWEN_PLUGIN *p)
int GWEN_PluginManager_Register(GWEN_PLUGIN_MANAGER *pm)
struct GWEN_PLUGIN_MANAGER GWEN_PLUGIN_MANAGER
struct GWEN_PLUGIN GWEN_PLUGIN
void GWEN_PluginDescription_List2_freeAll(GWEN_PLUGIN_DESCRIPTION_LIST2 *pdl)
GWEN_XMLNODE * GWEN_PluginDescription_GetXmlNode(const GWEN_PLUGIN_DESCRIPTION *pd)
const char * GWEN_PluginDescription_GetName(const GWEN_PLUGIN_DESCRIPTION *pd)
GWEN_PLUGIN_DESCRIPTION * GWEN_PluginDescription_dup(const GWEN_PLUGIN_DESCRIPTION *pd)
struct GWEN_PLUGIN_DESCRIPTION GWEN_PLUGIN_DESCRIPTION
void GWEN_StringList_free(GWEN_STRINGLIST *sl)
const char * GWEN_StringListEntry_Data(const GWEN_STRINGLISTENTRY *se)
GWEN_STRINGLISTENTRY * GWEN_StringListEntry_Next(const GWEN_STRINGLISTENTRY *se)
GWEN_STRINGLISTENTRY * GWEN_StringList_FirstEntry(const GWEN_STRINGLIST *sl)
struct GWEN_STRINGLISTENTRYSTRUCT GWEN_STRINGLISTENTRY
struct GWEN_STRINGLISTSTRUCT GWEN_STRINGLIST
const char * GWEN_XMLNode_GetProperty(const GWEN_XMLNODE *n, const char *name, const char *defaultValue)
struct GWEN__XMLNODE GWEN_XMLNODE