card.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_H
00015 #define CHIPCARD_CLIENT_CARD_H
00016 
00017 
00021 
00022 #include <gwenhywfar/inherit.h>
00023 
00024 #ifdef __cplusplus
00025 extern "C" {
00026 #endif
00027 
00028 typedef struct LC_CARD LC_CARD;
00029 
00030 #ifdef __cplusplus
00031 }
00032 #endif
00033 
00034 #include <chipcard3/chipcard3.h>
00035 #include <chipcard3/client/client.h>
00036 #include <chipcard3/sharedstuff/pininfo.h>
00037 
00038 
00039 #ifdef __cplusplus
00040 extern "C" {
00041 #endif
00042 
00043 GWEN_INHERIT_FUNCTION_LIB_DEFS(LC_CARD, CHIPCARD_API)
00044 GWEN_LIST2_FUNCTION_LIB_DEFS(LC_CARD, LC_Card, CHIPCARD_API)
00045 
00050 #define LC_CARD_ISO_FLAGS_EFID_MASK        0x00000001f
00051 
00053 #define LC_CARD_ISO_FLAGS_RECSEL_MASK      0x0000000e0
00054 
00056 #define   LC_CARD_ISO_FLAGS_RECSEL_FIRST   (0 << 5)
00057 
00059 #define   LC_CARD_ISO_FLAGS_RECSEL_LAST    (1 << 5)
00060 
00062 #define   LC_CARD_ISO_FLAGS_RECSEL_NEXT    (2 << 5)
00063 
00065 #define   LC_CARD_ISO_FLAGS_RECSEL_PREV    (3 << 5)
00066 
00068 #define   LC_CARD_ISO_FLAGS_RECSEL_GIVEN   (4 << 5)
00069 
00078 
00083 CHIPCARD_API
00084 void LC_Card_free(LC_CARD *cd);
00085 
00086 CHIPCARD_API
00087 void LC_Card_List2_freeAll(LC_CARD_LIST2 *l);
00088 
00089 
00095 CHIPCARD_API
00096 LC_CLIENT_RESULT LC_Card_Open(LC_CARD *card);
00097 
00103 CHIPCARD_API
00104 LC_CLIENT_RESULT LC_Card_Close(LC_CARD *card);
00105 
00106 
00107 
00108 CHIPCARD_API
00109 LC_CLIENT_RESULT LC_Card_ExecApdu(LC_CARD *card,
00110                                   const char *apdu,
00111                                   unsigned int len,
00112                                   GWEN_BUFFER *rbuf,
00113                                   LC_CLIENT_CMDTARGET t,
00114                                   int timeout);
00115 
00116 CHIPCARD_API
00117 LC_CLIENT_RESULT LC_Card_ExecCommand(LC_CARD *card,
00118                                      const char *commandName,
00119                                      GWEN_DB_NODE *cmdData,
00120                                      GWEN_DB_NODE *rspData,
00121                                      int timeout);
00122 
00123 CHIPCARD_API
00124 LC_CLIENT_RESULT LC_Card_BuildApdu(LC_CARD *card,
00125                                    const char *command,
00126                                    GWEN_DB_NODE *cmdData,
00127                                    GWEN_BUFFER *gbuf);
00128 
00138 CHIPCARD_API
00139 LC_CLIENT_RESULT LC_Card_SelectApp(LC_CARD *card, const char *appName);
00140 
00141 CHIPCARD_API
00142 GWEN_XMLNODE *LC_Card_GetAppNode(const LC_CARD *card);
00143 
00144 CHIPCARD_API
00145 LC_CLIENT_RESULT LC_Card_SelectCard(LC_CARD *card, const char *s);
00146 
00147 CHIPCARD_API
00148 GWEN_XMLNODE *LC_Card_GetCardNode(const LC_CARD *card);
00149 
00150 CHIPCARD_API
00151 LC_CLIENT_RESULT LC_Card_SelectMF(LC_CARD *card);
00152 
00153 CHIPCARD_API
00154 LC_CLIENT_RESULT LC_Card_SelectDf(LC_CARD *card, const char *fname);
00155 
00156 CHIPCARD_API
00157 GWEN_XMLNODE *LC_Card_GetDfNode(const LC_CARD *card);
00158 
00159 
00160 CHIPCARD_API
00161 LC_CLIENT_RESULT LC_Card_SelectEf(LC_CARD *card, const char *fname);
00162 
00163 CHIPCARD_API
00164 GWEN_XMLNODE *LC_Card_GetEfNode(const LC_CARD *card);
00175 
00180 CHIPCARD_API
00181 GWEN_TYPE_UINT32 LC_Card_GetCardId(const LC_CARD *cd);
00182 
00183 
00184 CHIPCARD_API
00185 const char *LC_Card_GetReaderType(const LC_CARD *cd);
00186 
00187 CHIPCARD_API
00188 const char *LC_Card_GetDriverType(const LC_CARD *cd);
00189 
00194 CHIPCARD_API
00195 GWEN_TYPE_UINT32 LC_Card_GetReaderFlags(const LC_CARD *cd);
00196 
00201 CHIPCARD_API
00202 const char *LC_Card_GetCardType(const LC_CARD *cd);
00203 
00208 CHIPCARD_API
00209 const GWEN_STRINGLIST *LC_Card_GetCardTypes(const LC_CARD *cd);
00210 
00219 CHIPCARD_API
00220 unsigned int LC_Card_GetAtr(const LC_CARD *cd, const unsigned char **pbuf);
00221 
00222 
00226 CHIPCARD_API
00227 LC_CLIENT *LC_Card_GetClient(const LC_CARD *cd);
00238 CHIPCARD_API
00239 int LC_Card_GetLastSW1(const LC_CARD *card);
00240 
00241 CHIPCARD_API
00242 int LC_Card_GetLastSW2(const LC_CARD *card);
00243 
00244 CHIPCARD_API
00245 const char *LC_Card_GetLastResult(const LC_CARD *card);
00246 
00247 CHIPCARD_API
00248 const char *LC_Card_GetLastText(const LC_CARD *card);
00249 
00250 CHIPCARD_API
00251 void LC_Card_CreateResultString(const LC_CARD *card,
00252                                 const char *lastCommand,
00253                                 LC_CLIENT_RESULT res,
00254                                 GWEN_BUFFER *buf);
00262 CHIPCARD_API
00263 void LC_Card_Dump(const LC_CARD *cd, FILE *f, int indent);
00273 
00279 CHIPCARD_API
00280 LC_PININFO *LC_Card_GetPinInfoById(LC_CARD *card, GWEN_TYPE_UINT32 pid);
00281 
00289 CHIPCARD_API
00290 LC_PININFO *LC_Card_GetPinInfoByName(LC_CARD *card, const char *name);
00291 
00292 CHIPCARD_API
00293 LC_CLIENT_RESULT LC_Card_GetPinStatus(LC_CARD *card,
00294                                       unsigned int pid,
00295                                       int *maxErrors,
00296                                       int *currentErrors);
00297 
00298 CHIPCARD_API
00299 LC_CLIENT_RESULT LC_Card_GetInitialPin(LC_CARD *card,
00300                                        int id,
00301                                        unsigned char *buffer,
00302                                        unsigned int maxLen,
00303                                        unsigned int *pinLength);
00304 
00305 CHIPCARD_API
00306 LC_CLIENT_RESULT LC_Card_IsoVerifyPin(LC_CARD *card,
00307                                       GWEN_TYPE_UINT32 flags,
00308                                       const LC_PININFO *pi,
00309                                       const unsigned char *ptr,
00310                                       unsigned int size,
00311                                       int *triesLeft);
00312 
00313 CHIPCARD_API
00314 LC_CLIENT_RESULT LC_Card_IsoModifyPin(LC_CARD *card,
00315                                       GWEN_TYPE_UINT32 flags,
00316                                       const LC_PININFO *pi,
00317                                       const unsigned char *oldptr,
00318                                       unsigned int oldsize,
00319                                       const unsigned char *newptr,
00320                                       unsigned int newsize,
00321                                       int *triesLeft);
00322 
00323 CHIPCARD_API
00324 LC_CLIENT_RESULT LC_Card_IsoPerformVerification(LC_CARD *card,
00325                                                 GWEN_TYPE_UINT32 flags,
00326                                                 const LC_PININFO *pi,
00327                                                 int *triesLeft);
00328 
00329 CHIPCARD_API
00330 LC_CLIENT_RESULT LC_Card_IsoPerformModification(LC_CARD *card,
00331                                                 GWEN_TYPE_UINT32 flags,
00332                                                 const LC_PININFO *pi,
00333                                                 int *triesLeft);
00334 
00343 CHIPCARD_API
00344 LC_CLIENT_RESULT LC_Card_IsoReadBinary(LC_CARD *card,
00345                                        GWEN_TYPE_UINT32 flags,
00346                                        int offset,
00347                                        int size,
00348                                        GWEN_BUFFER *buf);
00349 
00350 CHIPCARD_API
00351 LC_CLIENT_RESULT LC_Card_IsoWriteBinary(LC_CARD *card,
00352                                         GWEN_TYPE_UINT32 flags,
00353                                         int offset,
00354                                         const char *ptr,
00355                                         unsigned int size);
00356 
00357 
00358 CHIPCARD_API
00359 LC_CLIENT_RESULT LC_Card_IsoUpdateBinary(LC_CARD *card,
00360                                          GWEN_TYPE_UINT32 flags,
00361                                          int offset,
00362                                          const char *ptr,
00363                                          unsigned int size);
00364 
00365 CHIPCARD_API
00366 LC_CLIENT_RESULT LC_Card_IsoEraseBinary(LC_CARD *card,
00367                                         GWEN_TYPE_UINT32 flags,
00368                                         int offset,
00369                                         unsigned int size);
00370 
00376 CHIPCARD_API
00377 LC_CLIENT_RESULT LC_Card_ReadBinary(LC_CARD *card,
00378                                     int offset,
00379                                     int size,
00380                                     GWEN_BUFFER *buf);
00381 
00389 
00390 CHIPCARD_API
00391 LC_CLIENT_RESULT LC_Card_IsoReadRecord(LC_CARD *card,
00392                                        GWEN_TYPE_UINT32 flags,
00393                                        int recNum,
00394                                        GWEN_BUFFER *buf);
00395 CHIPCARD_API
00396 LC_CLIENT_RESULT LC_Card_IsoWriteRecord(LC_CARD *card,
00397                                         GWEN_TYPE_UINT32 flags,
00398                                         int recNum,
00399                                         const char *ptr,
00400                                         unsigned int size);
00401 
00402 CHIPCARD_API
00403 LC_CLIENT_RESULT LC_Card_IsoAppendRecord(LC_CARD *card,
00404                                          GWEN_TYPE_UINT32 flags,
00405                                          const char *ptr,
00406                                          unsigned int size);
00407 
00408 CHIPCARD_API
00409 LC_CLIENT_RESULT LC_Card_IsoUpdateRecord(LC_CARD *card,
00410                                          GWEN_TYPE_UINT32 flags,
00411                                          int recNum,
00412                                          const char *ptr,
00413                                          unsigned int size);
00422 
00423 CHIPCARD_API
00424 LC_CLIENT_RESULT LC_Card_IsoManageSe(LC_CARD *card,
00425                                      int tmpl, int kids, int kidp, int ar);
00426 
00427 CHIPCARD_API
00428 LC_CLIENT_RESULT LC_Card_IsoEncipher(LC_CARD *card,
00429                                      const char *ptr,
00430                                      unsigned int size,
00431                                      GWEN_BUFFER *codeBuf);
00432 
00433 CHIPCARD_API
00434 LC_CLIENT_RESULT LC_Card_IsoDecipher(LC_CARD *card,
00435                                      const char *ptr,
00436                                      unsigned int size,
00437                                      GWEN_BUFFER *plainBuf);
00438 
00439 CHIPCARD_API
00440 LC_CLIENT_RESULT LC_Card_IsoSign(LC_CARD *card,
00441                                  const char *ptr,
00442                                  unsigned int size,
00443                                  GWEN_BUFFER *sigBuf);
00444 
00445 CHIPCARD_API
00446 LC_CLIENT_RESULT LC_Card_IsoVerify(LC_CARD *card,
00447                                    const char *dptr,
00448                                    unsigned int dsize,
00449                                    const char *sigptr,
00450                                    unsigned int sigsize);
00451 
00452 
00462 
00463 CHIPCARD_API
00464 LC_CLIENT_RESULT LC_Card_ParseData(LC_CARD *card,
00465                                    const char *format,
00466                                    GWEN_BUFFER *buf,
00467                                    GWEN_DB_NODE *dbData);
00468 
00469 CHIPCARD_API
00470 LC_CLIENT_RESULT LC_Card_CreateData(LC_CARD *card,
00471                                     const char *format,
00472                                     GWEN_BUFFER *buf,
00473                                     GWEN_DB_NODE *dbData);
00474 
00475 CHIPCARD_API
00476 LC_CLIENT_RESULT LC_Card_ParseRecord(LC_CARD *card,
00477                                      int recNum,
00478                                      GWEN_BUFFER *buf,
00479                                      GWEN_DB_NODE *dbRecord);
00480 
00481 CHIPCARD_API
00482 LC_CLIENT_RESULT LC_Card_CreateRecord(LC_CARD *card,
00483                                       int recNum,
00484                                       GWEN_BUFFER *buf,
00485                                       GWEN_DB_NODE *dbRecord);
00486 
00487 
00490 #ifdef __cplusplus
00491 }
00492 #endif
00493  /* addtogroup */
00495 
00496 
00497 #endif /* CHIPCARD_CLIENT_CARD_H */

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