Main Page | Modules | Data Structures | Directories | File List | Data Fields | Globals | Related Pages

crypttoken_plugin.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  $RCSfile: crypttoken_plugin.h,v $
00003                              -------------------
00004     cvs         : $Id: crypttoken_plugin.h,v 1.4 2005/08/05 16:05:54 aquamaniac Exp $
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 
00014 #ifndef GWEN_CRYPTTOKEN_PLUGIN_H
00015 #define GWEN_CRYPTTOKEN_PLUGIN_H
00016 
00017 #include <gwenhywfar/keyspec.h>
00018 #include <gwenhywfar/crypt.h>
00019 #include <gwenhywfar/buffer.h>
00020 #include <gwenhywfar/db.h>
00021 #include <gwenhywfar/xml.h>
00022 #include <gwenhywfar/plugin.h>
00023 
00024 
00025 #ifdef __cplusplus
00026 extern "C" {
00027 #endif
00028 
00029 
00034 
00035 typedef GWEN_CRYPTTOKEN*
00036   (*GWEN_CRYPTTOKEN_PLUGIN_CREATETOKEN_FN)(GWEN_PLUGIN *pl,
00037                                            const char *subTypeName,
00038                                            const char *name);
00039 
00040 typedef int
00041   (*GWEN_CRYPTTOKEN_PLUGIN_CHECKTOKEN_FN)(GWEN_PLUGIN *pl,
00042                                           GWEN_BUFFER *subTypeName,
00043                                           GWEN_BUFFER *name);
00044 
00045 
00046 
00047 GWEN_PLUGIN *GWEN_CryptToken_Plugin_new(GWEN_PLUGIN_MANAGER *mgr,
00048                                         GWEN_CRYPTTOKEN_DEVICE devType,
00049                                         const char *typeName,
00050                                         const char *fileName);
00051 
00052 
00053 GWEN_CRYPTTOKEN*
00054 GWEN_CryptToken_Plugin_CreateToken(GWEN_PLUGIN *pl,
00055                                    const char *subTypeName,
00056                                    const char *name);
00057 
00078 int GWEN_CryptToken_Plugin_CheckToken(GWEN_PLUGIN *pl,
00079                                       GWEN_BUFFER *subTypeName,
00080                                       GWEN_BUFFER *name);
00081 
00082 
00083 GWEN_CRYPTTOKEN_DEVICE
00084   GWEN_CryptToken_Plugin_GetDeviceType(const GWEN_PLUGIN *pl);
00085 
00086 
00087 void GWEN_CryptToken_Plugin_SetCreateTokenFn(GWEN_PLUGIN *pl,
00088                                              GWEN_CRYPTTOKEN_PLUGIN_CREATETOKEN_FN fn);
00089 void GWEN_CryptToken_Plugin_SetCheckTokenFn(GWEN_PLUGIN *pl,
00090                                             GWEN_CRYPTTOKEN_PLUGIN_CHECKTOKEN_FN fn);
00091 
00092 
00101 typedef int (*GWEN_CRYPTMANAGER_GETPIN_FN)(GWEN_PLUGIN_MANAGER *mgr,
00102                                            GWEN_CRYPTTOKEN *token,
00103                                            GWEN_CRYPTTOKEN_PINTYPE pt,
00104                                            GWEN_CRYPTTOKEN_PINENCODING pe,
00105                                            GWEN_TYPE_UINT32 flags,
00106                                            unsigned char *buffer,
00107                                            unsigned int minLength,
00108                                            unsigned int maxLength,
00109                                            unsigned int *pinLength);
00110 
00111 typedef int (*GWEN_CRYPTMANAGER_BEGIN_ENTER_PIN_FN)(GWEN_PLUGIN_MANAGER *mgr,
00112                                                     GWEN_CRYPTTOKEN *token,
00113                                                     GWEN_CRYPTTOKEN_PINTYPE pt);
00114 typedef int (*GWEN_CRYPTMANAGER_END_ENTER_PIN_FN)(GWEN_PLUGIN_MANAGER *mgr,
00115                                                    GWEN_CRYPTTOKEN *token,
00116                                                    GWEN_CRYPTTOKEN_PINTYPE pt,
00117                                                    int ok);
00118 typedef int (*GWEN_CRYPTMANAGER_INSERT_TOKEN_FN)(GWEN_PLUGIN_MANAGER *mgr,
00119                                                  GWEN_CRYPTTOKEN *token);
00120 typedef int (*GWEN_CRYPTMANAGER_INSERT_CORRECT_TOKEN_FN)(GWEN_PLUGIN_MANAGER *mgr,
00121                                                          GWEN_CRYPTTOKEN *token);
00122 typedef int (*GWEN_CRYPTMANAGER_SHOW_MESSAGE_FN)(GWEN_PLUGIN_MANAGER *mgr,
00123                                                  GWEN_CRYPTTOKEN *token,
00124                                                  const char *title,
00125                                                  const char *msg);
00126 
00127 
00128 
00129 
00130 GWEN_PLUGIN_MANAGER *GWEN_CryptManager_new();
00131 
00136 int GWEN_CryptManager_CheckToken(GWEN_PLUGIN_MANAGER *cm,
00137                                  GWEN_CRYPTTOKEN_DEVICE devt,
00138                                  GWEN_BUFFER *typeName,
00139                                  GWEN_BUFFER *subTypeName,
00140                                  GWEN_BUFFER *tokenName);
00141 
00142 
00143 void GWEN_CryptManager_SetGetPinFn(GWEN_PLUGIN_MANAGER *cm,
00144                                    GWEN_CRYPTMANAGER_GETPIN_FN fn);
00145 
00146 void GWEN_CryptManager_SetBeginEnterPinFn(GWEN_PLUGIN_MANAGER *cm,
00147                                           GWEN_CRYPTMANAGER_BEGIN_ENTER_PIN_FN fn);
00148 void GWEN_CryptManager_SetEndEnterPinFn(GWEN_PLUGIN_MANAGER *cm,
00149                                          GWEN_CRYPTMANAGER_END_ENTER_PIN_FN fn);
00150 
00151 void GWEN_CryptManager_SetInsertTokenFn(GWEN_PLUGIN_MANAGER *cm,
00152                                         GWEN_CRYPTMANAGER_INSERT_TOKEN_FN fn);
00153 void GWEN_CryptManager_SetInsertCorrectTokenFn(GWEN_PLUGIN_MANAGER *cm,
00154                                                GWEN_CRYPTMANAGER_INSERT_CORRECT_TOKEN_FN fn);
00155 void GWEN_CryptManager_SetShowMessageFn(GWEN_PLUGIN_MANAGER *cm,
00156                                         GWEN_CRYPTMANAGER_SHOW_MESSAGE_FN fn);
00157 
00158 
00159 
00160 int GWEN_CryptManager_GetPin(GWEN_PLUGIN_MANAGER *cm,
00161                              GWEN_CRYPTTOKEN *token,
00162                              GWEN_CRYPTTOKEN_PINTYPE pt,
00163                              GWEN_CRYPTTOKEN_PINENCODING pe,
00164                              GWEN_TYPE_UINT32 flags,
00165                              unsigned char *buffer,
00166                              unsigned int minLength,
00167                              unsigned int maxLength,
00168                              unsigned int *pinLength);
00169 
00170 int GWEN_CryptManager_BeginEnterPin(GWEN_PLUGIN_MANAGER *cm,
00171                                     GWEN_CRYPTTOKEN *token,
00172                                     GWEN_CRYPTTOKEN_PINTYPE pt);
00173 int GWEN_CryptManager_EndEnterPin(GWEN_PLUGIN_MANAGER *cm,
00174                                   GWEN_CRYPTTOKEN *token,
00175                                   GWEN_CRYPTTOKEN_PINTYPE pt,
00176                                   int ok);
00177 int GWEN_CryptManager_InsertToken(GWEN_PLUGIN_MANAGER *cm,
00178                                   GWEN_CRYPTTOKEN *token);
00179 int GWEN_CryptManager_InsertCorrectToken(GWEN_PLUGIN_MANAGER *cm,
00180                                          GWEN_CRYPTTOKEN *token);
00181 
00182 int GWEN_CryptManager_ShowMessage(GWEN_PLUGIN_MANAGER *cm,
00183                                   GWEN_CRYPTTOKEN *token,
00184                                   const char *title,
00185                                   const char *msg);
00186 
00187 int GWEN_CryptManager_CheckToken(GWEN_PLUGIN_MANAGER *cm,
00188                                  GWEN_CRYPTTOKEN_DEVICE devt,
00189                                  GWEN_BUFFER *typeName,
00190                                  GWEN_BUFFER *subTypeName,
00191                                  GWEN_BUFFER *tokenName);
00192 
00193 GWEN_PLUGIN_DESCRIPTION_LIST2*
00194   GWEN_CryptManager_GetPluginDescrs(GWEN_PLUGIN_MANAGER *pm,
00195                                     GWEN_CRYPTTOKEN_DEVICE devt);
00196 
00200 #ifdef __cplusplus
00201 }
00202 #endif
00203 
00204 
00205 
00206 #endif /* GWEN_CRYPTTOKEN_PLUGIN_H */
00207 
00208 

Generated on Wed Oct 5 15:12:37 2005 for gwenhywfar by  doxygen 1.4.4