libchipcard 5.0.0

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 #include <chipcard/card.h>
00023 
00024 #ifdef __cplusplus
00025 extern "C" {
00026 #endif
00027 
00028 GWEN_LIST_FUNCTION_LIB_DEFS(LC_CARD, LC_Card, CHIPCARD_API)
00029 
00030 
00034 typedef LC_CLIENT_RESULT CHIPCARD_CB (*LC_CARD_OPEN_FN)(LC_CARD *card);
00035 typedef LC_CLIENT_RESULT CHIPCARD_CB (*LC_CARD_CLOSE_FN)(LC_CARD *card);
00036 
00037 typedef LC_CLIENT_RESULT CHIPCARD_CB
00038   (*LC_CARD_GETPINSTATUS_FN)(LC_CARD *card,
00039                              unsigned int pid,
00040                              int *maxErrors,
00041                              int *currentErrors);
00042 
00043 typedef LC_CLIENT_RESULT CHIPCARD_CB
00044   (*LC_CARD_GETINITIALPIN_FN)(LC_CARD *card,
00045                               int id,
00046                               unsigned char *buffer,
00047                               unsigned int maxLen,
00048                               unsigned int *pinLength);
00049 
00050 
00051 typedef LC_CLIENT_RESULT CHIPCARD_CB
00052   (*LC_CARD_ISOREADBINARY_FN)(LC_CARD *card,
00053                               uint32_t flags,
00054                               int offset,
00055                               int size,
00056                               GWEN_BUFFER *buf);
00057 
00058 typedef LC_CLIENT_RESULT CHIPCARD_CB
00059   (*LC_CARD_ISOWRITEBINARY_FN)(LC_CARD *card,
00060                                uint32_t flags,
00061                                int offset,
00062                                const char *ptr,
00063                                unsigned int size);
00064 
00065 
00066 typedef LC_CLIENT_RESULT CHIPCARD_CB
00067   (*LC_CARD_ISOUPDATEBINARY_FN)(LC_CARD *card,
00068                                 uint32_t flags,
00069                                 int offset,
00070                                 const char *ptr,
00071                                 unsigned int size);
00072 
00073 typedef LC_CLIENT_RESULT CHIPCARD_CB
00074   (*LC_CARD_ISOERASEBINARY_FN)(LC_CARD *card,
00075                                uint32_t flags,
00076                                int offset,
00077                                unsigned int size);
00078 
00079 typedef LC_CLIENT_RESULT CHIPCARD_CB
00080   (*LC_CARD_ISOREADRECORD_FN)(LC_CARD *card,
00081                               uint32_t flags,
00082                               int recNum,
00083                               GWEN_BUFFER *buf);
00084 
00085 typedef LC_CLIENT_RESULT CHIPCARD_CB
00086   (*LC_CARD_ISOWRITERECORD_FN)(LC_CARD *card,
00087                                uint32_t flags,
00088                                int recNum,
00089                                const char *ptr,
00090                                unsigned int size);
00091 
00092 typedef LC_CLIENT_RESULT CHIPCARD_CB
00093   (*LC_CARD_ISOAPPENDRECORD_FN)(LC_CARD *card,
00094                                 uint32_t flags,
00095                                 const char *ptr,
00096                                 unsigned int size);
00097 
00098 typedef LC_CLIENT_RESULT CHIPCARD_CB
00099   (*LC_CARD_ISOUPDATERECORD_FN)(LC_CARD *card,
00100                                 uint32_t flags,
00101                                 int recNum,
00102                                 const char *ptr,
00103                                 unsigned int size);
00104 
00105 typedef LC_CLIENT_RESULT CHIPCARD_CB
00106   (*LC_CARD_ISOVERIFYPIN_FN)(LC_CARD *card,
00107                              uint32_t flags,
00108                              const LC_PININFO *pi,
00109                              const unsigned char *ptr,
00110                              unsigned int size,
00111                              int *triesLeft);
00112 
00113 typedef LC_CLIENT_RESULT CHIPCARD_CB
00114   (*LC_CARD_ISOMODIFYPIN_FN)(LC_CARD *card,
00115                              uint32_t flags,
00116                              const LC_PININFO *pi,
00117                              const unsigned char *oldptr,
00118                              unsigned int oldsize,
00119                              const unsigned char *newptr,
00120                              unsigned int newsize,
00121                              int *triesLeft);
00122 
00123 typedef LC_CLIENT_RESULT CHIPCARD_CB
00124   (*LC_CARD_ISOPERFORMVERIFICATION_FN)(LC_CARD *card,
00125                                        uint32_t flags,
00126                                        const LC_PININFO *pi,
00127                                        int *triesLeft);
00128 
00129 typedef LC_CLIENT_RESULT CHIPCARD_CB
00130   (*LC_CARD_ISOPERFORMMODIFICATION_FN)(LC_CARD *card,
00131                                        uint32_t flags,
00132                                        const LC_PININFO *pi,
00133                                        int *triesLeft);
00134 
00135 
00136 typedef LC_CLIENT_RESULT CHIPCARD_CB
00137   (*LC_CARD_ISOMANAGESE_FN)(LC_CARD *card,
00138                             int tmpl,
00139                             int kids, int kidp,
00140                             int ar);
00141 
00142 typedef LC_CLIENT_RESULT CHIPCARD_CB
00143   (*LC_CARD_ISOSIGN_FN)(LC_CARD *card,
00144                         const char *ptr,
00145                         unsigned int size,
00146                         GWEN_BUFFER *sigBuf);
00147 
00148 typedef LC_CLIENT_RESULT CHIPCARD_CB
00149   (*LC_CARD_ISOVERIFY_FN)(LC_CARD *card,
00150                           const char *dptr,
00151                           unsigned int dsize,
00152                           const char *sigptr,
00153                           unsigned int sigsize);
00154 
00155 typedef LC_CLIENT_RESULT CHIPCARD_CB
00156   (*LC_CARD_ISOENCIPHER_FN)(LC_CARD *card,
00157                             const char *ptr,
00158                             unsigned int size,
00159                             GWEN_BUFFER *codeBuf);
00160 
00161 typedef LC_CLIENT_RESULT CHIPCARD_CB
00162   (*LC_CARD_ISODECIPHER_FN)(LC_CARD *card,
00163                             const char *ptr,
00164                             unsigned int size,
00165                             GWEN_BUFFER *codeBuf);
00166 
00170 CHIPCARD_API
00171 void LC_Card_SetReaderType(LC_CARD *cd, const char *s);
00172 
00173 CHIPCARD_API
00174 void LC_Card_SetDriverType(LC_CARD *cd, const char *s);
00175 
00176 CHIPCARD_API
00177 void LC_Card_ResetCardId(LC_CARD *cd);
00178 
00179 CHIPCARD_API
00180 int LC_Card_AddCardType(LC_CARD *cd, const char *s);
00181 
00182 CHIPCARD_API
00183 void LC_Card_SetLastResult(LC_CARD *cd,
00184                            const char *result,
00185                            const char *text,
00186                            int sw1, int sw2);
00187 
00188 
00189 
00190 
00197 
00198 CHIPCARD_API
00199 LC_CARD_OPEN_FN LC_Card_GetOpenFn(const LC_CARD *card);
00200 
00201 CHIPCARD_API
00202 void LC_Card_SetOpenFn(LC_CARD *card, LC_CARD_OPEN_FN fn);
00203 
00204 CHIPCARD_API
00205 LC_CARD_CLOSE_FN LC_Card_GetCloseFn(const LC_CARD *card);
00206 
00207 CHIPCARD_API
00208 void LC_Card_SetCloseFn(LC_CARD *card, LC_CARD_CLOSE_FN fn);
00209 
00210 CHIPCARD_API
00211 LC_CARD_OPEN_FN LC_Card_GetOpenFn(const LC_CARD *card);
00212 
00213 CHIPCARD_API
00214 void LC_Card_SetOpenFn(LC_CARD *card, LC_CARD_OPEN_FN fn);
00215 
00216 CHIPCARD_API
00217 LC_CARD_CLOSE_FN LC_Card_GetCloseFn(const LC_CARD *card);
00218 
00219 CHIPCARD_API
00220 void LC_Card_SetCloseFn(LC_CARD *card, LC_CARD_CLOSE_FN fn);
00221 
00222 CHIPCARD_API
00223 void LC_Card_SetGetInitialPinFn(LC_CARD *card, LC_CARD_GETINITIALPIN_FN fn);
00224 
00225 CHIPCARD_API
00226 void LC_Card_SetGetPinStatusFn(LC_CARD *card, LC_CARD_GETPINSTATUS_FN fn);
00227 
00228 CHIPCARD_API
00229 void LC_Card_SetIsoReadBinaryFn(LC_CARD *card, LC_CARD_ISOREADBINARY_FN f);
00230 
00231 CHIPCARD_API
00232 void LC_Card_SetIsoWriteBinaryFn(LC_CARD *card, LC_CARD_ISOWRITEBINARY_FN f);
00233 
00234 CHIPCARD_API
00235 void LC_Card_SetIsoUpdateBinaryFn(LC_CARD *card, LC_CARD_ISOUPDATEBINARY_FN f);
00236 
00237 CHIPCARD_API
00238 void LC_Card_SetIsoEraseBinaryFn(LC_CARD *card, LC_CARD_ISOERASEBINARY_FN f);
00239 
00240 CHIPCARD_API
00241 void LC_Card_SetIsoReadRecordFn(LC_CARD *card, LC_CARD_ISOREADRECORD_FN f);
00242 
00243 CHIPCARD_API
00244 void LC_Card_SetIsoWriteRecordFn(LC_CARD *card, LC_CARD_ISOWRITERECORD_FN f);
00245 
00246 CHIPCARD_API
00247 void LC_Card_SetIsoUpdateRecordFn(LC_CARD *card, LC_CARD_ISOUPDATERECORD_FN f);
00248 
00249 CHIPCARD_API
00250 void LC_Card_SetIsoAppendRecordFn(LC_CARD *card, LC_CARD_ISOAPPENDRECORD_FN f);
00251 
00252 CHIPCARD_API
00253 void LC_Card_SetIsoVerifyPinFn(LC_CARD *card, LC_CARD_ISOVERIFYPIN_FN f);
00254 
00255 CHIPCARD_API
00256 void LC_Card_SetIsoModifyPinFn(LC_CARD *card, LC_CARD_ISOMODIFYPIN_FN f);
00257 
00258 CHIPCARD_API
00259 void LC_Card_SetIsoPerformVerificationFn(LC_CARD *card,
00260                                          LC_CARD_ISOPERFORMVERIFICATION_FN f);
00261 
00262 CHIPCARD_API
00263 void LC_Card_SetIsoPerformModificationFn(LC_CARD *card,
00264                                          LC_CARD_ISOPERFORMMODIFICATION_FN f);
00265 
00266 CHIPCARD_API
00267 void LC_Card_SetIsoManageSeFn(LC_CARD *card, LC_CARD_ISOMANAGESE_FN f);
00268 
00269 CHIPCARD_API
00270 void LC_Card_SetIsoSignFn(LC_CARD *card, LC_CARD_ISOSIGN_FN f);
00271 
00272 CHIPCARD_API
00273 void LC_Card_SetIsoVerifyFn(LC_CARD *card, LC_CARD_ISOVERIFY_FN f);
00274 
00275 CHIPCARD_API
00276 void LC_Card_SetIsoEncipherFn(LC_CARD *card, LC_CARD_ISOENCIPHER_FN f);
00277 
00278 CHIPCARD_API
00279 void LC_Card_SetIsoDecipherFn(LC_CARD *card, LC_CARD_ISODECIPHER_FN f);
00284 
00285 
00286 #ifdef __cplusplus
00287 }
00288 #endif
00289  /* addtogroup */
00291 
00292 #endif /* CHIPCARD_CLIENT_CARD_IMP_H */
00293