libchipcard 5.0.0
|
00001 /*************************************************************************** 00002 begin : Mon Mar 01 2004 00003 copyright : (C) 2004-2010 by Martin Preuss 00004 email : martin@libchipcard.de 00005 00006 *************************************************************************** 00007 * Please see toplevel file COPYING for license details * 00008 ***************************************************************************/ 00009 00010 00011 #ifndef CHIPCARD_CARD_STARCOS_H 00012 #define CHIPCARD_CARD_STARCOS_H 00013 00014 #include <chipcard/card.h> 00015 #include <chipcard/cards/starcos_keydescr.h> 00016 00017 #ifdef __cplusplus 00018 extern "C" { 00019 #endif 00020 00021 00022 #define LC_STARCOS_KEY_STATUS_ACTIVE 0x10 00023 #define LC_STARCOS_KEY_STATUS_INACTIVE_CERT 0x0a 00024 #define LC_STARCOS_KEY_STATUS_INACTIVE_FREE 0x08 00025 #define LC_STARCOS_KEY_STATUS_INACTIVE_NEW 0x07 00026 #define LC_STARCOS_KEY_STATUS_ACTIVE_NEW 0x02 00027 #define LC_STARCOS_KEY_STATUS_ACTIVE_INCOMPLETE 0x01 00028 #define LC_STARCOS_KEY_STATUS_ACTIVE_INILETTER 0x00 00029 #define LC_STARCOS_KEY_STATUS_INTERNAL_UNUSED 0xff 00030 00031 00032 CHIPCARD_API 00033 int LC_Starcos_ExtendCard(LC_CARD *card); 00034 CHIPCARD_API 00035 int LC_Starcos_UnextendCard(LC_CARD *card); 00036 CHIPCARD_API 00037 LC_CLIENT_RESULT LC_Starcos_Reopen(LC_CARD *card); 00038 00039 00040 CHIPCARD_API 00041 GWEN_DB_NODE *LC_Starcos_GetCardDataAsDb(const LC_CARD *card); 00042 CHIPCARD_API 00043 GWEN_BUFFER *LC_Starcos_GetCardDataAsBuffer(const LC_CARD *card); 00044 00045 00046 00051 00052 00058 CHIPCARD_API 00059 LC_CLIENT_RESULT LC_Starcos_GenerateKeyPair(LC_CARD *card, 00060 int kid, 00061 int bits); 00062 00063 CHIPCARD_API 00064 LC_CLIENT_RESULT LC_Starcos_ActivateKeyPair(LC_CARD *card, 00065 int srcKid, 00066 int dstKid, 00067 const LC_STARCOS_KEYDESCR *descr); 00068 00069 CHIPCARD_API 00070 LC_CLIENT_RESULT LC_Starcos_GetKeyDescr(LC_CARD *card, int kid, 00071 LC_STARCOS_KEYDESCR **pDescr); 00072 00073 CHIPCARD_API 00074 LC_CLIENT_RESULT LC_Starcos_SaveKeyDescr(LC_CARD *card, 00075 const LC_STARCOS_KEYDESCR *d); 00076 00077 CHIPCARD_API 00078 LC_CLIENT_RESULT LC_Starcos_WritePublicKey(LC_CARD *card, int kid, 00079 const uint8_t *pModulus, 00080 uint32_t lModulus, 00081 const uint8_t *pExponent, 00082 uint32_t lExponent); 00083 00084 CHIPCARD_API 00085 LC_CLIENT_RESULT LC_Starcos_ReadPublicKey(LC_CARD *card, int kid, 00086 GWEN_BUFFER *bModulus, 00087 GWEN_BUFFER *bExponent); 00088 00109 CHIPCARD_API 00110 LC_CLIENT_RESULT LC_Starcos_ReadInstituteData(LC_CARD *card, 00111 int idx, 00112 GWEN_DB_NODE *dbData); 00113 00114 CHIPCARD_API 00115 LC_CLIENT_RESULT LC_Starcos_WriteInstituteData(LC_CARD *card, 00116 int idx, 00117 GWEN_DB_NODE *dbData); 00126 CHIPCARD_API 00127 LC_CLIENT_RESULT LC_Starcos_ReadSigCounter(LC_CARD *card, int kid, 00128 uint32_t *pSeq); 00129 00133 CHIPCARD_API 00134 LC_CLIENT_RESULT LC_Starcos_GetChallenge(LC_CARD *card, GWEN_BUFFER *mbuf); 00135 00136 00139 #ifdef __cplusplus 00140 } 00141 #endif 00142 00143 #endif /* CHIPCARD_CARD_STARCOS_H */ 00144 00145