00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014 #ifndef CHIPCARD_CLIENT_CARD_IMP_H
00015 #define CHIPCARD_CLIENT_CARD_IMP_H
00016
00017
00021
00022
00023 #include <chipcard/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 uint32_t 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 uint32_t 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 uint32_t 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 uint32_t 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 uint32_t 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 uint32_t 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 uint32_t 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 uint32_t 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 uint32_t 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 uint32_t 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 uint32_t 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 uint32_t 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 uint32_t cardId,
00175 const char *cardType,
00176 uint32_t 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
00304
00305 #endif
00306