libchipcard 5.0.0
|
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