crypttoken_plugin.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  $RCSfile$
00003                              -------------------
00004     cvs         : $Id: crypttoken_plugin.h 967 2006-01-23 05:11:37Z aquamaniac $
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 GWENHYWFAR_API
00048 GWEN_PLUGIN *GWEN_CryptToken_Plugin_new(GWEN_PLUGIN_MANAGER *mgr,
00049                                         GWEN_CRYPTTOKEN_DEVICE devType,
00050                                         const char *typeName,
00051                                         const char *fileName);
00052 
00053 
00054 GWENHYWFAR_API
00055 GWEN_CRYPTTOKEN*
00056 GWEN_CryptToken_Plugin_CreateToken(GWEN_PLUGIN *pl,
00057                                    const char *subTypeName,
00058                                    const char *name);
00059 
00080 GWENHYWFAR_API
00081 int GWEN_CryptToken_Plugin_CheckToken(GWEN_PLUGIN *pl,
00082                                       GWEN_BUFFER *subTypeName,
00083                                       GWEN_BUFFER *name);
00084 
00085 
00086 GWENHYWFAR_API
00087 GWEN_CRYPTTOKEN_DEVICE
00088   GWEN_CryptToken_Plugin_GetDeviceType(const GWEN_PLUGIN *pl);
00089 
00090 
00091 GWENHYWFAR_API
00092 void GWEN_CryptToken_Plugin_SetCreateTokenFn(GWEN_PLUGIN *pl,
00093                                              GWEN_CRYPTTOKEN_PLUGIN_CREATETOKEN_FN fn);
00094 
00095 GWENHYWFAR_API
00096 void GWEN_CryptToken_Plugin_SetCheckTokenFn(GWEN_PLUGIN *pl,
00097                                             GWEN_CRYPTTOKEN_PLUGIN_CHECKTOKEN_FN fn);
00098 
00099 
00108 typedef int (*GWEN_CRYPTMANAGER_GETPIN_FN)(GWEN_PLUGIN_MANAGER *mgr,
00109                                            GWEN_CRYPTTOKEN *token,
00110                                            GWEN_CRYPTTOKEN_PINTYPE pt,
00111                                            GWEN_CRYPTTOKEN_PINENCODING pe,
00112                                            GWEN_TYPE_UINT32 flags,
00113                                            unsigned char *buffer,
00114                                            unsigned int minLength,
00115                                            unsigned int maxLength,
00116                                            unsigned int *pinLength);
00117 
00118 typedef
00119   int (*GWEN_CRYPTMANAGER_SETPINSTATUS_FN)(GWEN_PLUGIN_MANAGER *mgr,
00120                                            GWEN_CRYPTTOKEN *token,
00121                                            GWEN_CRYPTTOKEN_PINTYPE pt,
00122                                            GWEN_CRYPTTOKEN_PINENCODING pe,
00123                                            GWEN_TYPE_UINT32 flags,
00124                                            unsigned char *buffer,
00125                                            unsigned int pinLength,
00126                                            int isOk);
00127 
00128 typedef int (*GWEN_CRYPTMANAGER_BEGIN_ENTER_PIN_FN)(GWEN_PLUGIN_MANAGER *mgr,
00129                                                     GWEN_CRYPTTOKEN *token,
00130                                                     GWEN_CRYPTTOKEN_PINTYPE pt);
00131 typedef int (*GWEN_CRYPTMANAGER_END_ENTER_PIN_FN)(GWEN_PLUGIN_MANAGER *mgr,
00132                                                    GWEN_CRYPTTOKEN *token,
00133                                                    GWEN_CRYPTTOKEN_PINTYPE pt,
00134                                                    int ok);
00135 typedef int (*GWEN_CRYPTMANAGER_INSERT_TOKEN_FN)(GWEN_PLUGIN_MANAGER *mgr,
00136                                                  GWEN_CRYPTTOKEN *token);
00137 typedef int (*GWEN_CRYPTMANAGER_INSERT_CORRECT_TOKEN_FN)(GWEN_PLUGIN_MANAGER *mgr,
00138                                                          GWEN_CRYPTTOKEN *token);
00139 typedef int (*GWEN_CRYPTMANAGER_SHOW_MESSAGE_FN)(GWEN_PLUGIN_MANAGER *mgr,
00140                                                  GWEN_CRYPTTOKEN *token,
00141                                                  const char *title,
00142                                                  const char *msg);
00143 
00144 
00145 
00146 
00147 GWENHYWFAR_API
00148 GWEN_PLUGIN_MANAGER *GWEN_CryptManager_new();
00149 
00154 GWENHYWFAR_API
00155 int GWEN_CryptManager_CheckToken(GWEN_PLUGIN_MANAGER *cm,
00156                                  GWEN_CRYPTTOKEN_DEVICE devt,
00157                                  GWEN_BUFFER *typeName,
00158                                  GWEN_BUFFER *subTypeName,
00159                                  GWEN_BUFFER *tokenName);
00160 
00161 
00162 GWENHYWFAR_API
00163 void GWEN_CryptManager_SetGetPinFn(GWEN_PLUGIN_MANAGER *cm,
00164                                    GWEN_CRYPTMANAGER_GETPIN_FN fn);
00165 
00166 GWENHYWFAR_API void
00167 GWEN_CryptManager_SetSetPinStatusFn(GWEN_PLUGIN_MANAGER *cm,
00168                                     GWEN_CRYPTMANAGER_SETPINSTATUS_FN fn);
00169 
00170 GWENHYWFAR_API
00171 void GWEN_CryptManager_SetBeginEnterPinFn(GWEN_PLUGIN_MANAGER *cm,
00172                                           GWEN_CRYPTMANAGER_BEGIN_ENTER_PIN_FN fn);
00173 
00174 GWENHYWFAR_API
00175 void GWEN_CryptManager_SetEndEnterPinFn(GWEN_PLUGIN_MANAGER *cm,
00176                                          GWEN_CRYPTMANAGER_END_ENTER_PIN_FN fn);
00177 
00178 GWENHYWFAR_API
00179 void GWEN_CryptManager_SetInsertTokenFn(GWEN_PLUGIN_MANAGER *cm,
00180                                         GWEN_CRYPTMANAGER_INSERT_TOKEN_FN fn);
00181 
00182 GWENHYWFAR_API
00183 void GWEN_CryptManager_SetInsertCorrectTokenFn(GWEN_PLUGIN_MANAGER *cm,
00184                                                GWEN_CRYPTMANAGER_INSERT_CORRECT_TOKEN_FN fn);
00185 
00186 GWENHYWFAR_API
00187 void GWEN_CryptManager_SetShowMessageFn(GWEN_PLUGIN_MANAGER *cm,
00188                                         GWEN_CRYPTMANAGER_SHOW_MESSAGE_FN fn);
00189 
00190 
00191 
00192 GWENHYWFAR_API
00193 int GWEN_CryptManager_GetPin(GWEN_PLUGIN_MANAGER *cm,
00194                              GWEN_CRYPTTOKEN *token,
00195                              GWEN_CRYPTTOKEN_PINTYPE pt,
00196                              GWEN_CRYPTTOKEN_PINENCODING pe,
00197                              GWEN_TYPE_UINT32 flags,
00198                              unsigned char *buffer,
00199                              unsigned int minLength,
00200                              unsigned int maxLength,
00201                              unsigned int *pinLength);
00202 
00203 GWENHYWFAR_API
00204 int GWEN_CryptManager_SetPinStatus(GWEN_PLUGIN_MANAGER *mgr,
00205                                    GWEN_CRYPTTOKEN *token,
00206                                    GWEN_CRYPTTOKEN_PINTYPE pt,
00207                                    GWEN_CRYPTTOKEN_PINENCODING pe,
00208                                    GWEN_TYPE_UINT32 flags,
00209                                    unsigned char *buffer,
00210                                    unsigned int pinLength,
00211                                    int isOk);
00212 
00213 
00214 GWENHYWFAR_API
00215 int GWEN_CryptManager_BeginEnterPin(GWEN_PLUGIN_MANAGER *cm,
00216                                     GWEN_CRYPTTOKEN *token,
00217                                     GWEN_CRYPTTOKEN_PINTYPE pt);
00218 
00219 GWENHYWFAR_API
00220 int GWEN_CryptManager_EndEnterPin(GWEN_PLUGIN_MANAGER *cm,
00221                                   GWEN_CRYPTTOKEN *token,
00222                                   GWEN_CRYPTTOKEN_PINTYPE pt,
00223                                   int ok);
00224 
00225 GWENHYWFAR_API
00226 int GWEN_CryptManager_InsertToken(GWEN_PLUGIN_MANAGER *cm,
00227                                   GWEN_CRYPTTOKEN *token);
00228 
00229 GWENHYWFAR_API
00230 int GWEN_CryptManager_InsertCorrectToken(GWEN_PLUGIN_MANAGER *cm,
00231                                          GWEN_CRYPTTOKEN *token);
00232 
00233 GWENHYWFAR_API
00234 int GWEN_CryptManager_ShowMessage(GWEN_PLUGIN_MANAGER *cm,
00235                                   GWEN_CRYPTTOKEN *token,
00236                                   const char *title,
00237                                   const char *msg);
00238 
00239 GWENHYWFAR_API
00240 int GWEN_CryptManager_CheckToken(GWEN_PLUGIN_MANAGER *cm,
00241                                  GWEN_CRYPTTOKEN_DEVICE devt,
00242                                  GWEN_BUFFER *typeName,
00243                                  GWEN_BUFFER *subTypeName,
00244                                  GWEN_BUFFER *tokenName);
00245 
00246 GWENHYWFAR_API
00247 GWEN_PLUGIN_DESCRIPTION_LIST2*
00248   GWEN_CryptManager_GetPluginDescrs(GWEN_PLUGIN_MANAGER *pm,
00249                                     GWEN_CRYPTTOKEN_DEVICE devt);
00250 
00254 #ifdef __cplusplus
00255 }
00256 #endif
00257 
00258 
00259 
00260 #endif /* GWEN_CRYPTTOKEN_PLUGIN_H */
00261 
00262 

Generated on Wed Jun 21 00:59:52 2006 for gwenhywfar by  doxygen 1.4.6