card_imp.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  $RCSfile$
00003                              -------------------
00004     cvs         : $Id: card.h 163 2006-02-15 19:31:45Z aquamaniac $
00005     begin       : Mon Mar 01 2004
00006     copyright   : (C) 2004 by Martin Preuss
00007     email       : martin@libchipcard.de
00008 
00009  ***************************************************************************
00010  *          Please see toplevel file COPYING for license details           *
00011  ***************************************************************************/
00012 
00013 
00014 #ifndef CHIPCARD_CLIENT_CARD_IMP_H
00015 #define CHIPCARD_CLIENT_CARD_IMP_H
00016 
00017 
00021 
00022 
00023 #include <chipcard3/client/card.h>
00024 
00025 #ifdef __cplusplus
00026 extern "C" {
00027 #endif
00028 
00029 GWEN_LIST_FUNCTION_LIB_DEFS(LC_CARD, LC_Card, CHIPCARD_API)
00030 
00031 
00035 typedef LC_CLIENT_RESULT CHIPCARD_CB (*LC_CARD_OPEN_FN)(LC_CARD *card);
00036 typedef LC_CLIENT_RESULT CHIPCARD_CB (*LC_CARD_CLOSE_FN)(LC_CARD *card);
00037 
00038 typedef LC_CLIENT_RESULT CHIPCARD_CB
00039   (*LC_CARD_GETPINSTATUS_FN)(LC_CARD *card,
00040                              unsigned int pid,
00041                              int *maxErrors,
00042                              int *currentErrors);
00043 
00044 typedef LC_CLIENT_RESULT CHIPCARD_CB
00045   (*LC_CARD_GETINITIALPIN_FN)(LC_CARD *card,
00046                               int id,
00047                               unsigned char *buffer,
00048                               unsigned int maxLen,
00049                               unsigned int *pinLength);
00050 
00051 
00052 typedef LC_CLIENT_RESULT CHIPCARD_CB
00053   (*LC_CARD_ISOREADBINARY_FN)(LC_CARD *card,
00054                               GWEN_TYPE_UINT32 flags,
00055                               int offset,
00056                               int size,
00057                               GWEN_BUFFER *buf);
00058 
00059 typedef LC_CLIENT_RESULT CHIPCARD_CB
00060   (*LC_CARD_ISOWRITEBINARY_FN)(LC_CARD *card,
00061                                GWEN_TYPE_UINT32 flags,
00062                                int offset,
00063                                const char *ptr,
00064                                unsigned int size);
00065 
00066 
00067 typedef LC_CLIENT_RESULT CHIPCARD_CB
00068   (*LC_CARD_ISOUPDATEBINARY_FN)(LC_CARD *card,
00069                                 GWEN_TYPE_UINT32 flags,
00070                                 int offset,
00071                                 const char *ptr,
00072                                 unsigned int size);
00073 
00074 typedef LC_CLIENT_RESULT CHIPCARD_CB
00075   (*LC_CARD_ISOERASEBINARY_FN)(LC_CARD *card,
00076                                GWEN_TYPE_UINT32 flags,
00077                                int offset,
00078                                unsigned int size);
00079 
00080 typedef LC_CLIENT_RESULT CHIPCARD_CB
00081   (*LC_CARD_ISOREADRECORD_FN)(LC_CARD *card,
00082                               GWEN_TYPE_UINT32 flags,
00083                               int recNum,
00084                               GWEN_BUFFER *buf);
00085 
00086 typedef LC_CLIENT_RESULT CHIPCARD_CB
00087   (*LC_CARD_ISOWRITERECORD_FN)(LC_CARD *card,
00088                                GWEN_TYPE_UINT32 flags,
00089                                int recNum,
00090                                const char *ptr,
00091                                unsigned int size);
00092 
00093 typedef LC_CLIENT_RESULT CHIPCARD_CB
00094   (*LC_CARD_ISOAPPENDRECORD_FN)(LC_CARD *card,
00095                                 GWEN_TYPE_UINT32 flags,
00096                                 const char *ptr,
00097                                 unsigned int size);
00098 
00099 typedef LC_CLIENT_RESULT CHIPCARD_CB
00100   (*LC_CARD_ISOUPDATERECORD_FN)(LC_CARD *card,
00101                                 GWEN_TYPE_UINT32 flags,
00102                                 int recNum,
00103                                 const char *ptr,
00104                                 unsigned int size);
00105 
00106 typedef LC_CLIENT_RESULT CHIPCARD_CB
00107   (*LC_CARD_ISOVERIFYPIN_FN)(LC_CARD *card,
00108                              GWEN_TYPE_UINT32 flags,
00109                              const LC_PININFO *pi,
00110                              const unsigned char *ptr,
00111                              unsigned int size,
00112                              int *triesLeft);
00113 
00114 typedef LC_CLIENT_RESULT CHIPCARD_CB
00115   (*LC_CARD_ISOMODIFYPIN_FN)(LC_CARD *card,
00116                              GWEN_TYPE_UINT32 flags,
00117                              const LC_PININFO *pi,
00118                              const unsigned char *oldptr,
00119                              unsigned int oldsize,
00120                              const unsigned char *newptr,
00121                              unsigned int newsize,
00122                              int *triesLeft);
00123 
00124 typedef LC_CLIENT_RESULT CHIPCARD_CB
00125   (*LC_CARD_ISOPERFORMVERIFICATION_FN)(LC_CARD *card,
00126                                        GWEN_TYPE_UINT32 flags,
00127                                        const LC_PININFO *pi,
00128                                        int *triesLeft);
00129 
00130 typedef LC_CLIENT_RESULT CHIPCARD_CB
00131   (*LC_CARD_ISOPERFORMMODIFICATION_FN)(LC_CARD *card,
00132                                        GWEN_TYPE_UINT32 flags,
00133                                        const LC_PININFO *pi,
00134                                        int *triesLeft);
00135 
00136 
00137 typedef LC_CLIENT_RESULT CHIPCARD_CB
00138   (*LC_CARD_ISOMANAGESE_FN)(LC_CARD *card,
00139                             int tmpl,
00140                             int kids, int kidp,
00141                             int ar);
00142 
00143 typedef LC_CLIENT_RESULT CHIPCARD_CB
00144   (*LC_CARD_ISOSIGN_FN)(LC_CARD *card,
00145                         const char *ptr,
00146                         unsigned int size,
00147                         GWEN_BUFFER *sigBuf);
00148 
00149 typedef LC_CLIENT_RESULT CHIPCARD_CB
00150   (*LC_CARD_ISOVERIFY_FN)(LC_CARD *card,
00151                           const char *dptr,
00152                           unsigned int dsize,
00153                           const char *sigptr,
00154                           unsigned int sigsize);
00155 
00156 typedef LC_CLIENT_RESULT CHIPCARD_CB
00157   (*LC_CARD_ISOENCIPHER_FN)(LC_CARD *card,
00158                             const char *ptr,
00159                             unsigned int size,
00160                             GWEN_BUFFER *codeBuf);
00161 
00162 typedef LC_CLIENT_RESULT CHIPCARD_CB
00163   (*LC_CARD_ISODECIPHER_FN)(LC_CARD *card,
00164                             const char *ptr,
00165                             unsigned int size,
00166                             GWEN_BUFFER *codeBuf);
00167 
00171 #ifdef LC_CARD_EXTEND_CLIENT
00172 CHIPCARD_API
00173 LC_CARD *LC_Card_new(LC_CLIENT *cl,
00174                      GWEN_TYPE_UINT32 cardId,
00175                      const char *cardType,
00176                      GWEN_TYPE_UINT32 rflags,
00177                      const unsigned char *atrBuf,
00178                      unsigned int atrLen);
00179 
00180 #endif
00181 
00182 
00183 CHIPCARD_API
00184 void LC_Card_SetReaderType(LC_CARD *cd, const char *s);
00185 
00186 CHIPCARD_API
00187 void LC_Card_SetDriverType(LC_CARD *cd, const char *s);
00188 
00189 CHIPCARD_API
00190 void LC_Card_ResetCardId(LC_CARD *cd);
00191 
00192 CHIPCARD_API
00193 int LC_Card_AddCardType(LC_CARD *cd, const char *s);
00194 
00195 CHIPCARD_API
00196 void LC_Card_SetLastResult(LC_CARD *cd,
00197                            const char *result,
00198                            const char *text,
00199                            int sw1, int sw2);
00200 
00201 
00202 
00203 
00210 
00211 CHIPCARD_API
00212 LC_CARD_OPEN_FN LC_Card_GetOpenFn(const LC_CARD *card);
00213 
00214 CHIPCARD_API
00215 void LC_Card_SetOpenFn(LC_CARD *card, LC_CARD_OPEN_FN fn);
00216 
00217 CHIPCARD_API
00218 LC_CARD_CLOSE_FN LC_Card_GetCloseFn(const LC_CARD *card);
00219 
00220 CHIPCARD_API
00221 void LC_Card_SetCloseFn(LC_CARD *card, LC_CARD_CLOSE_FN fn);
00222 
00223 CHIPCARD_API
00224 LC_CARD_OPEN_FN LC_Card_GetOpenFn(const LC_CARD *card);
00225 
00226 CHIPCARD_API
00227 void LC_Card_SetOpenFn(LC_CARD *card, LC_CARD_OPEN_FN fn);
00228 
00229 CHIPCARD_API
00230 LC_CARD_CLOSE_FN LC_Card_GetCloseFn(const LC_CARD *card);
00231 
00232 CHIPCARD_API
00233 void LC_Card_SetCloseFn(LC_CARD *card, LC_CARD_CLOSE_FN fn);
00234 
00235 CHIPCARD_API
00236 void LC_Card_SetGetInitialPinFn(LC_CARD *card, LC_CARD_GETINITIALPIN_FN fn);
00237 
00238 CHIPCARD_API
00239 void LC_Card_SetGetPinStatusFn(LC_CARD *card, LC_CARD_GETPINSTATUS_FN fn);
00240 
00241 CHIPCARD_API
00242 void LC_Card_SetIsoReadBinaryFn(LC_CARD *card, LC_CARD_ISOREADBINARY_FN f);
00243 
00244 CHIPCARD_API
00245 void LC_Card_SetIsoWriteBinaryFn(LC_CARD *card, LC_CARD_ISOWRITEBINARY_FN f);
00246 
00247 CHIPCARD_API
00248 void LC_Card_SetIsoUpdateBinaryFn(LC_CARD *card, LC_CARD_ISOUPDATEBINARY_FN f);
00249 
00250 CHIPCARD_API
00251 void LC_Card_SetIsoEraseBinaryFn(LC_CARD *card, LC_CARD_ISOERASEBINARY_FN f);
00252 
00253 CHIPCARD_API
00254 void LC_Card_SetIsoReadRecordFn(LC_CARD *card, LC_CARD_ISOREADRECORD_FN f);
00255 
00256 CHIPCARD_API
00257 void LC_Card_SetIsoWriteRecordFn(LC_CARD *card, LC_CARD_ISOWRITERECORD_FN f);
00258 
00259 CHIPCARD_API
00260 void LC_Card_SetIsoUpdateRecordFn(LC_CARD *card, LC_CARD_ISOUPDATERECORD_FN f);
00261 
00262 CHIPCARD_API
00263 void LC_Card_SetIsoAppendRecordFn(LC_CARD *card, LC_CARD_ISOAPPENDRECORD_FN f);
00264 
00265 CHIPCARD_API
00266 void LC_Card_SetIsoVerifyPinFn(LC_CARD *card, LC_CARD_ISOVERIFYPIN_FN f);
00267 
00268 CHIPCARD_API
00269 void LC_Card_SetIsoModifyPinFn(LC_CARD *card, LC_CARD_ISOMODIFYPIN_FN f);
00270 
00271 CHIPCARD_API
00272 void LC_Card_SetIsoPerformVerificationFn(LC_CARD *card,
00273                                          LC_CARD_ISOPERFORMVERIFICATION_FN f);
00274 
00275 CHIPCARD_API
00276 void LC_Card_SetIsoPerformModificationFn(LC_CARD *card,
00277                                          LC_CARD_ISOPERFORMMODIFICATION_FN f);
00278 
00279 CHIPCARD_API
00280 void LC_Card_SetIsoManageSeFn(LC_CARD *card, LC_CARD_ISOMANAGESE_FN f);
00281 
00282 CHIPCARD_API
00283 void LC_Card_SetIsoSignFn(LC_CARD *card, LC_CARD_ISOSIGN_FN f);
00284 
00285 CHIPCARD_API
00286 void LC_Card_SetIsoVerifyFn(LC_CARD *card, LC_CARD_ISOVERIFY_FN f);
00287 
00288 CHIPCARD_API
00289 void LC_Card_SetIsoEncipherFn(LC_CARD *card, LC_CARD_ISOENCIPHER_FN f);
00290 
00291 CHIPCARD_API
00292 void LC_Card_SetIsoDecipherFn(LC_CARD *card, LC_CARD_ISODECIPHER_FN f);
00297 
00298 
00299 #ifdef __cplusplus
00300 }
00301 #endif
00302  /* addtogroup */
00304 
00305 #endif /* CHIPCARD_CLIENT_CARD_IMP_H */
00306 

Generated on Sat Sep 22 04:43:21 2007 for libchipcard2 by  doxygen 1.5.3