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)"),
GWENHYWFAR_API int GWEN_Gui_ProgressLog(uint32_t id, GWEN_LOGGER_LEVEL level, const char *text)
GWEN_PLUGIN_DESCRIPTION_LIST2 * GWEN_PluginManager_GetPluginDescrs(GWEN_PLUGIN_MANAGER *pm)
struct GWEN_PLUGIN_MANAGER GWEN_PLUGIN_MANAGER
char * GWEN_Buffer_GetStart(const GWEN_BUFFER *bf)
struct GWEN_STRINGLISTENTRYSTRUCT GWEN_STRINGLISTENTRY
GWENHYWFAR_API int GWEN_Gui_ProgressAdvance(uint32_t id, uint32_t progress)
GWEN_CRYPT_TOKEN_DEVICE GWEN_Crypt_Token_Plugin_GetDeviceType(const GWEN_PLUGIN *pl)
struct GWEN_PLUGIN GWEN_PLUGIN
GWEN_CRYPT_TOKEN_PLUGIN_CHECKTOKEN_FN GWEN_Crypt_Token_Plugin_SetCheckTokenFn(GWEN_PLUGIN *pl, GWEN_CRYPT_TOKEN_PLUGIN_CHECKTOKEN_FN fn)
#define GWEN_CRYPT_TOKEN_FOLDER
GWEN_PLUGIN_DESCRIPTION_LIST2_ITERATOR * GWEN_PluginDescription_List2_First(GWEN_PLUGIN_DESCRIPTION_LIST2 *l)
#define GWEN_GUI_PROGRESS_ALLOW_EMBED
const char * GWEN_XMLNode_GetProperty(const GWEN_XMLNODE *n, const char *name, const char *defaultValue)
struct GWEN_PLUGIN_DESCRIPTION GWEN_PLUGIN_DESCRIPTION
#define GWEN_CRYPT_TOKEN_PLUGIN_TYPENAME
#define GWEN_FREE_OBJECT(varname)
#define GWEN_GUI_PROGRESS_ALWAYS_SHOW_LOG
void GWEN_PluginManager_free(GWEN_PLUGIN_MANAGER *pm)
#define GWEN_GUI_PROGRESS_DELAY
#define DBG_WARN(dbg_logger, format, args...)
struct GWEN_PLUGIN_DESCRIPTION_LIST2_ITERATOR GWEN_PLUGIN_DESCRIPTION_LIST2_ITERATOR
int GWEN_Crypt_Token_ModuleInit(void)
GWEN_PLUGIN * GWEN_PluginManager_GetPlugin(GWEN_PLUGIN_MANAGER *pm, const char *s)
void GWEN_PluginDescription_List2_freeAll(GWEN_PLUGIN_DESCRIPTION_LIST2 *pdl)
GWEN_CRYPT_TOKEN * GWEN_Crypt_Token_Plugin_CreateToken(GWEN_PLUGIN *pl, const char *name)
GWEN_BUFFER * GWEN_Buffer_new(char *buffer, uint32_t size, uint32_t used, int take)
GWEN_PLUGIN_MANAGER * GWEN_PluginManager_FindPluginManager(const char *s)
GWEN_STRINGLISTENTRY * GWEN_StringList_FirstEntry(const GWEN_STRINGLIST *sl)
void GWEN_PluginDescription_List2Iterator_free(GWEN_PLUGIN_DESCRIPTION_LIST2_ITERATOR *li)
void GWEN_Buffer_Reset(GWEN_BUFFER *bf)
GWEN_PLUGIN_DESCRIPTION_LIST2 * GWEN_Crypt_Token_PluginManager_GetPluginDescrs(GWEN_PLUGIN_MANAGER *pm, GWEN_CRYPT_TOKEN_DEVICE devt)
const char * GWEN_StringListEntry_Data(const GWEN_STRINGLISTENTRY *se)
void GWEN_StringList_free(GWEN_STRINGLIST *sl)
GWEN_PLUGIN_DESCRIPTION_LIST2 * GWEN_PluginDescription_List2_new()
GWEN_PLUGIN_DESCRIPTION * GWEN_PluginDescription_List2Iterator_Next(GWEN_PLUGIN_DESCRIPTION_LIST2_ITERATOR *li)
#define GWEN_NEW_OBJECT(typ, varname)
void GWEN_PluginDescription_List2_PushBack(GWEN_PLUGIN_DESCRIPTION_LIST2 *l, GWEN_PLUGIN_DESCRIPTION *p)
int GWEN_Crypt_Token_PluginManager_CheckToken(GWEN_PLUGIN_MANAGER *pm, GWEN_CRYPT_TOKEN_DEVICE devt, GWEN_BUFFER *typeName, GWEN_BUFFER *tokenName, uint32_t guiid)
unsigned int GWEN_PluginDescription_List2_GetSize(GWEN_PLUGIN_DESCRIPTION_LIST2 *l)
int GWEN_Buffer_AppendBuffer(GWEN_BUFFER *bf, GWEN_BUFFER *sf)
GWEN_PLUGIN_DESCRIPTION * GWEN_PluginDescription_dup(const GWEN_PLUGIN_DESCRIPTION *pd)
GWENHYWFAR_API int GWEN_Gui_ProgressLog2(uint32_t id, GWEN_LOGGER_LEVEL level, const char *text,...)
GWEN_PLUGIN * GWEN_Crypt_Token_Plugin_new(GWEN_PLUGIN_MANAGER *mgr, GWEN_CRYPT_TOKEN_DEVICE devType, const char *typeName, const char *fileName)
GWEN_PLUGIN_MANAGER * GWEN_PluginManager_new(const char *name, const char *destLib)
struct GWEN_STRINGLISTSTRUCT GWEN_STRINGLIST
#define GWEN_ERROR_GENERIC
GWEN_PLUGIN_DESCRIPTION * GWEN_PluginDescription_List2Iterator_Data(GWEN_PLUGIN_DESCRIPTION_LIST2_ITERATOR *li)
GWENHYWFAR_CB void GWEN_Crypt_Token_Plugin_FreeData(GWEN_UNUSED void *bp, void *p)
const char * GWEN_Plugin_GetName(const GWEN_PLUGIN *p)
int GWEN_PluginManager_Register(GWEN_PLUGIN_MANAGER *pm)
GWEN_STRINGLIST * GWEN_PathManager_GetPaths(const char *destLib, const char *pathName)
GWEN_BUFFER * GWEN_Buffer_dup(GWEN_BUFFER *bf)
#define GWEN_ERROR_BAD_NAME
struct GWEN_PLUGIN_DESCRIPTION_LIST2 GWEN_PLUGIN_DESCRIPTION_LIST2
void GWEN_Buffer_free(GWEN_BUFFER *bf)
struct GWEN_BUFFER GWEN_BUFFER
A dynamically resizeable text buffer.
struct GWEN_CRYPT_TOKEN GWEN_CRYPT_TOKEN
GWENHYWFAR_API uint32_t GWEN_Gui_ProgressStart(uint32_t progressFlags, const char *title, const char *text, uint64_t total, uint32_t guiid)
GWEN_XMLNODE * GWEN_PluginDescription_GetXmlNode(const GWEN_PLUGIN_DESCRIPTION *pd)
GWENHYWFAR_API int GWEN_Gui_ProgressEnd(uint32_t id)
#define DBG_ERROR(dbg_logger, format, args...)
int GWEN_Crypt_Token_Plugin_CheckToken(GWEN_PLUGIN *pl, GWEN_BUFFER *name)
#define GWEN_GUI_PROGRESS_SHOW_PROGRESS
#define GWEN_ERROR_NOT_SUPPORTED
#define GWEN_GUI_PROGRESS_SHOW_LOG
GWEN_STRINGLISTENTRY * GWEN_StringListEntry_Next(const GWEN_STRINGLISTENTRY *se)
const char * GWEN_Crypt_Token_Device_toString(GWEN_CRYPT_TOKEN_DEVICE d)
const char * GWEN_PluginDescription_GetName(const GWEN_PLUGIN_DESCRIPTION *pd)
#define GWEN_ERROR_NOT_FOUND
#define GWEN_PM_PLUGINDIR
#define DBG_INFO(dbg_logger, format, args...)
int GWEN_PluginManager_Unregister(GWEN_PLUGIN_MANAGER *pm)
int GWEN_PluginManager_AddPath(GWEN_PLUGIN_MANAGER *pm, const char *callingLib, const char *s)
#define GWEN_INHERIT(bt, t)
GWEN_CRYPT_TOKEN_PLUGIN_CREATETOKEN_FN GWEN_Crypt_Token_Plugin_SetCreateTokenFn(GWEN_PLUGIN *pl, GWEN_CRYPT_TOKEN_PLUGIN_CREATETOKEN_FN fn)
#define GWEN_ERROR_USER_ABORTED
int GWENHYWFAR_CB(* GWEN_CRYPT_TOKEN_PLUGIN_CHECKTOKEN_FN)(GWEN_PLUGIN *pl, GWEN_BUFFER *name)
GWEN_CRYPT_TOKEN *GWENHYWFAR_CB(* GWEN_CRYPT_TOKEN_PLUGIN_CREATETOKEN_FN)(GWEN_PLUGIN *pl, const char *name)
#define GWEN_INHERIT_SETDATA(bt, t, element, data, fn)
static int _checkPlugin(GWEN_PLUGIN *pl, GWEN_BUFFER *typeName, GWEN_BUFFER *tokenName, uint32_t progressId)
struct GWEN__XMLNODE GWEN_XMLNODE
GWEN_PLUGIN * GWEN_Plugin_new(GWEN_PLUGIN_MANAGER *pm, const char *name, const char *fileName)
int GWEN_Crypt_Token_ModuleFini(void)
int GWEN_Buffer_AppendString(GWEN_BUFFER *bf, const char *buffer)
#define GWEN_INHERIT_GETDATA(bt, t, element)
#define GWEN_GUI_PROGRESS_SHOW_ABORT
#define GWEN_ERROR_NOT_IMPLEMENTED