libchipcard 5.1.6
card.h
Go to the documentation of this file.
1/***************************************************************************
2 begin : Mon Mar 01 2004
3 copyright : (C) 2004-2010 by Martin Preuss
4 email : martin@libchipcard.de
5
6 ***************************************************************************
7 * Please see toplevel file COPYING for license details *
8 ***************************************************************************/
9
10
11#ifndef CHIPCARD_CLIENT_CARD_H
12#define CHIPCARD_CLIENT_CARD_H
13
14
18
19#include <gwenhywfar/inherit.h>
20
21#ifdef __cplusplus
22extern "C" {
23#endif
24
25typedef struct LC_CARD LC_CARD;
26
27#ifdef __cplusplus
28}
29#endif
30
31#include <chipcard/chipcard.h>
32#include <chipcard/client.h>
33#include <chipcard/sharedstuff/pininfo.h>
34
35
36#ifdef __cplusplus
37extern "C" {
38#endif
39
40GWEN_INHERIT_FUNCTION_LIB_DEFS(LC_CARD, CHIPCARD_API)
41GWEN_LIST2_FUNCTION_LIB_DEFS(LC_CARD, LC_Card, CHIPCARD_API)
42
43
47#define LC_CARD_ISO_FLAGS_EFID_MASK 0x00000001f
50#define LC_CARD_ISO_FLAGS_RECSEL_MASK 0x0000000e0
53#define LC_CARD_ISO_FLAGS_RECSEL_FIRST (0 << 5)
56#define LC_CARD_ISO_FLAGS_RECSEL_LAST (1 << 5)
59#define LC_CARD_ISO_FLAGS_RECSEL_NEXT (2 << 5)
62#define LC_CARD_ISO_FLAGS_RECSEL_PREV (3 << 5)
65#define LC_CARD_ISO_FLAGS_RECSEL_GIVEN (4 << 5)
75
82
84void LC_Card_List2_freeAll(LC_CARD_LIST2 *l);
85
86
94
121
130 const char *apdu,
131 unsigned int len,
132 GWEN_BUFFER *rbuf,
134
147 const char *commandName,
148 GWEN_DB_NODE *cmdData,
149 GWEN_DB_NODE *rspData);
150
157 const char *command,
158 GWEN_DB_NODE *cmdData,
159 GWEN_BUFFER *gbuf);
160
181
183LC_CLIENT_RESULT LC_Card_SelectApp(LC_CARD *card, const char *appName);
191
198
207LC_CLIENT_RESULT LC_Card_SelectDf(LC_CARD *card, const char *fname);
208
217LC_CLIENT_RESULT LC_Card_SelectEf(LC_CARD *card, const char *fname);
237GWEN_XMLNODE *LC_Card_GetCardNode(const LC_CARD *card);
238
240GWEN_XMLNODE *LC_Card_GetAppNode(const LC_CARD *card);
241
243GWEN_XMLNODE *LC_Card_GetDfNode(const LC_CARD *card);
244
246GWEN_XMLNODE *LC_Card_GetEfNode(const LC_CARD *card);
247
257
263uint32_t LC_Card_GetCardId(const LC_CARD *cd);
264
265
267const char *LC_Card_GetReaderType(const LC_CARD *cd);
268
270const char *LC_Card_GetDriverType(const LC_CARD *cd);
271
277uint32_t LC_Card_GetReaderFlags(const LC_CARD *cd);
278
284const char *LC_Card_GetCardType(const LC_CARD *cd);
285
291const GWEN_STRINGLIST *LC_Card_GetCardTypes(const LC_CARD *cd);
292
302unsigned int LC_Card_GetAtr(const LC_CARD *cd,
303 const unsigned char **pbuf);
304
305
323
326
328const char *LC_Card_GetLastResult(const LC_CARD *card);
329
331const char *LC_Card_GetLastText(const LC_CARD *card);
332
335 const char *lastCommand,
337 GWEN_BUFFER *buf);
346void LC_Card_Dump(const LC_CARD *cd, int indent);
356
364
374
377 unsigned int pid,
378 int *maxErrors,
379 int *currentErrors);
380
383 int id,
384 unsigned char *buffer,
385 unsigned int maxLen,
386 unsigned int *pinLength);
387
390 uint32_t flags,
391 const LC_PININFO *pi,
392 const unsigned char *ptr,
393 unsigned int size,
394 int *triesLeft);
395
398 uint32_t flags,
399 const LC_PININFO *pi,
400 const unsigned char *oldptr,
401 unsigned int oldsize,
402 const unsigned char *newptr,
403 unsigned int newsize,
404 int *triesLeft);
405
408 uint32_t flags,
409 const LC_PININFO *pi,
410 int *triesLeft);
411
414 uint32_t flags,
415 const LC_PININFO *pi,
416 int *triesLeft);
417
428 uint32_t flags,
429 int offset,
430 int size,
431 GWEN_BUFFER *buf);
432
435 uint32_t flags,
436 int offset,
437 const char *ptr,
438 unsigned int size);
439
440
443 uint32_t flags,
444 int offset,
445 const char *ptr,
446 unsigned int size);
447
450 uint32_t flags,
451 int offset,
452 unsigned int size);
453
461 int offset,
462 int size,
463 GWEN_BUFFER *buf);
464
472
475 uint32_t flags,
476 int recNum,
477 GWEN_BUFFER *buf);
480 uint32_t flags,
481 int recNum,
482 const char *ptr,
483 unsigned int size);
484
487 uint32_t flags,
488 const char *ptr,
489 unsigned int size);
490
493 uint32_t flags,
494 int recNum,
495 const char *ptr,
496 unsigned int size);
505
508 int tmpl, int kids, int kidp, int ar);
509
512 const char *ptr,
513 unsigned int size,
514 GWEN_BUFFER *codeBuf);
515
518 const char *ptr,
519 unsigned int size,
520 GWEN_BUFFER *plainBuf);
521
524 const char *ptr,
525 unsigned int size,
526 GWEN_BUFFER *sigBuf);
527
530 const char *dptr,
531 unsigned int dsize,
532 const char *sigptr,
533 unsigned int sigsize);
534
537 int kid,
538 const unsigned char *ptr,
539 unsigned int size,
540 GWEN_BUFFER *rBuf);
541
551
554 const char *format,
555 GWEN_BUFFER *buf,
556 GWEN_DB_NODE *dbData);
557
560 const char *format,
561 GWEN_BUFFER *buf,
562 GWEN_DB_NODE *dbData);
563
566 int recNum,
567 GWEN_BUFFER *buf,
568 GWEN_DB_NODE *dbRecord);
569
572 int recNum,
573 GWEN_BUFFER *buf,
574 GWEN_DB_NODE *dbRecord);
575
576
579#ifdef __cplusplus
580}
581#endif
582 /* addtogroup */
584
585
586#endif /* CHIPCARD_CLIENT_CARD_H */
CHIPCARD_API LC_CLIENT_RESULT LC_Card_CreateRecord(LC_CARD *card, int recNum, GWEN_BUFFER *buf, GWEN_DB_NODE *dbRecord)
CHIPCARD_API GWEN_XMLNODE * LC_Card_GetAppNode(const LC_CARD *card)
CHIPCARD_API LC_CLIENT_RESULT LC_Card_SelectMf(LC_CARD *card)
struct LC_CARD LC_CARD
Definition: card.h:25
CHIPCARD_API LC_CLIENT_RESULT LC_Card_IsoEncipher(LC_CARD *card, const char *ptr, unsigned int size, GWEN_BUFFER *codeBuf)
CHIPCARD_API GWEN_XMLNODE * LC_Card_GetCardNode(const LC_CARD *card)
CHIPCARD_API LC_CLIENT_RESULT LC_Card_GetPinStatus(LC_CARD *card, unsigned int pid, int *maxErrors, int *currentErrors)
LC_CLIENT_RESULT LC_Card_IsoInternalAuth(LC_CARD *card, int kid, const unsigned char *ptr, unsigned int size, GWEN_BUFFER *rBuf)
CHIPCARD_API void LC_Card_Dump(const LC_CARD *cd, int indent)
CHIPCARD_API LC_CLIENT_RESULT LC_Card_IsoPerformModification(LC_CARD *card, uint32_t flags, const LC_PININFO *pi, int *triesLeft)
CHIPCARD_API LC_CLIENT_RESULT LC_Card_IsoModifyPin(LC_CARD *card, uint32_t flags, const LC_PININFO *pi, const unsigned char *oldptr, unsigned int oldsize, const unsigned char *newptr, unsigned int newsize, int *triesLeft)
CHIPCARD_API uint32_t LC_Card_GetReaderFlags(const LC_CARD *cd)
CHIPCARD_API LC_CLIENT_RESULT LC_Card_CreateData(LC_CARD *card, const char *format, GWEN_BUFFER *buf, GWEN_DB_NODE *dbData)
CHIPCARD_API LC_CLIENT_RESULT LC_Card_Open(LC_CARD *card)
CHIPCARD_API LC_CLIENT_RESULT LC_Card_IsoUpdateRecord(LC_CARD *card, uint32_t flags, int recNum, const char *ptr, unsigned int size)
CHIPCARD_API LC_CLIENT_RESULT LC_Card_IsoEraseBinary(LC_CARD *card, uint32_t flags, int offset, unsigned int size)
CHIPCARD_API LC_CLIENT_RESULT LC_Card_IsoWriteRecord(LC_CARD *card, uint32_t flags, int recNum, const char *ptr, unsigned int size)
CHIPCARD_API LC_CLIENT_RESULT LC_Card_IsoReadRecord(LC_CARD *card, uint32_t flags, int recNum, GWEN_BUFFER *buf)
CHIPCARD_API void LC_Card_CreateResultString(const LC_CARD *card, const char *lastCommand, LC_CLIENT_RESULT res, GWEN_BUFFER *buf)
CHIPCARD_API LC_CLIENT_RESULT LC_Card_IsoWriteBinary(LC_CARD *card, uint32_t flags, int offset, const char *ptr, unsigned int size)
CHIPCARD_API LC_CLIENT_RESULT LC_Card_ExecApdu(LC_CARD *card, const char *apdu, unsigned int len, GWEN_BUFFER *rbuf, LC_CLIENT_CMDTARGET t)
CHIPCARD_API void LC_Card_List2_freeAll(LC_CARD_LIST2 *l)
CHIPCARD_API unsigned int LC_Card_GetAtr(const LC_CARD *cd, const unsigned char **pbuf)
CHIPCARD_API LC_CLIENT_RESULT LC_Card_SelectEf(LC_CARD *card, const char *fname)
CHIPCARD_API const char * LC_Card_GetLastText(const LC_CARD *card)
CHIPCARD_API GWEN_XMLNODE * LC_Card_GetEfNode(const LC_CARD *card)
CHIPCARD_API LC_CLIENT_RESULT LC_Card_ParseData(LC_CARD *card, const char *format, GWEN_BUFFER *buf, GWEN_DB_NODE *dbData)
CHIPCARD_API LC_CLIENT_RESULT LC_Card_IsoVerify(LC_CARD *card, const char *dptr, unsigned int dsize, const char *sigptr, unsigned int sigsize)
CHIPCARD_API LC_CLIENT_RESULT LC_Card_IsoUpdateBinary(LC_CARD *card, uint32_t flags, int offset, const char *ptr, unsigned int size)
CHIPCARD_API LC_CLIENT_RESULT LC_Card_GetInitialPin(LC_CARD *card, int id, unsigned char *buffer, unsigned int maxLen, unsigned int *pinLength)
CHIPCARD_API const char * LC_Card_GetDriverType(const LC_CARD *cd)
CHIPCARD_API const char * LC_Card_GetCardType(const LC_CARD *cd)
CHIPCARD_API LC_CLIENT_RESULT LC_Card_ReadBinary(LC_CARD *card, int offset, int size, GWEN_BUFFER *buf)
CHIPCARD_API LC_CLIENT_RESULT LC_Card_SelectCard(LC_CARD *card, const char *s)
CHIPCARD_API LC_CLIENT_RESULT LC_Card_IsoReadBinary(LC_CARD *card, uint32_t flags, int offset, int size, GWEN_BUFFER *buf)
CHIPCARD_API LC_CLIENT_RESULT LC_Card_IsoAppendRecord(LC_CARD *card, uint32_t flags, const char *ptr, unsigned int size)
CHIPCARD_API LC_CLIENT_RESULT LC_Card_SelectApp(LC_CARD *card, const char *appName)
CHIPCARD_API LC_CLIENT_RESULT LC_Card_ParseRecord(LC_CARD *card, int recNum, GWEN_BUFFER *buf, GWEN_DB_NODE *dbRecord)
CHIPCARD_API LC_CLIENT_RESULT LC_Card_SelectEfById(LC_CARD *card, const int sid)
CHIPCARD_API int LC_Card_GetLastSW2(const LC_CARD *card)
CHIPCARD_API LC_CLIENT_RESULT LC_Card_Close(LC_CARD *card)
CHIPCARD_API LC_CLIENT_RESULT LC_Card_IsoSign(LC_CARD *card, const char *ptr, unsigned int size, GWEN_BUFFER *sigBuf)
CHIPCARD_API const char * LC_Card_GetLastResult(const LC_CARD *card)
CHIPCARD_API uint32_t LC_Card_GetCardId(const LC_CARD *cd)
CHIPCARD_API const GWEN_STRINGLIST * LC_Card_GetCardTypes(const LC_CARD *cd)
CHIPCARD_API int LC_Card_GetLastSW1(const LC_CARD *card)
CHIPCARD_API LC_CLIENT * LC_Card_GetClient(const LC_CARD *cd)
CHIPCARD_API LC_CLIENT_RESULT LC_Card_IsoVerifyPin(LC_CARD *card, uint32_t flags, const LC_PININFO *pi, const unsigned char *ptr, unsigned int size, int *triesLeft)
CHIPCARD_API const char * LC_Card_GetReaderType(const LC_CARD *cd)
CHIPCARD_API LC_CLIENT_RESULT LC_Card_IsoManageSe(LC_CARD *card, int tmpl, int kids, int kidp, int ar)
CHIPCARD_API LC_CLIENT_RESULT LC_Card_BuildApdu(LC_CARD *card, const char *command, GWEN_DB_NODE *cmdData, GWEN_BUFFER *gbuf)
CHIPCARD_API LC_CLIENT_RESULT LC_Card_IsoPerformVerification(LC_CARD *card, uint32_t flags, const LC_PININFO *pi, int *triesLeft)
CHIPCARD_API LC_CLIENT_RESULT LC_Card_IsoDecipher(LC_CARD *card, const char *ptr, unsigned int size, GWEN_BUFFER *plainBuf)
CHIPCARD_API GWEN_XMLNODE * LC_Card_GetDfNode(const LC_CARD *card)
CHIPCARD_API LC_CLIENT_RESULT LC_Card_ExecCommand(LC_CARD *card, const char *commandName, GWEN_DB_NODE *cmdData, GWEN_DB_NODE *rspData)
CHIPCARD_API LC_PININFO * LC_Card_GetPinInfoByName(LC_CARD *card, const char *name)
CHIPCARD_API void LC_Card_free(LC_CARD *cd)
CHIPCARD_API LC_PININFO * LC_Card_GetPinInfoById(LC_CARD *card, uint32_t pid)
CHIPCARD_API LC_CLIENT_RESULT LC_Card_SelectDf(LC_CARD *card, const char *fname)
#define CHIPCARD_API
Definition: chipcard.h:50
LC_CLIENT_CMDTARGET
Definition: client.h:64
LC_CLIENT_RESULT
Definition: client.h:40
struct LC_CLIENT LC_CLIENT
Definition: client.h:33
struct LC_PININFO LC_PININFO
Definition: pininfo.h:77