00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014 #ifndef CHIPCARD_CARD_STARCOS_H
00015 #define CHIPCARD_CARD_STARCOS_H
00016
00017 #include <chipcard3/client/card.h>
00018 #include <gwenhywfar/keyspec.h>
00019 #include <gwenhywfar/crypt.h>
00020
00021 #ifdef __cplusplus
00022 extern "C" {
00023 #endif
00024
00025
00026 #define LC_STARCOS_KEY_STATUS_ACTIVE 0x10
00027 #define LC_STARCOS_KEY_STATUS_INACTIVE_CERT 0x0a
00028 #define LC_STARCOS_KEY_STATUS_INACTIVE_FREE 0x08
00029 #define LC_STARCOS_KEY_STATUS_INACTIVE_NEW 0x07
00030 #define LC_STARCOS_KEY_STATUS_ACTIVE_NEW 0x02
00031 #define LC_STARCOS_KEY_STATUS_ACTIVE_INCOMPLETE 0x01
00032 #define LC_STARCOS_KEY_STATUS_ACTIVE_INILETTER 0x00
00033 #define LC_STARCOS_KEY_STATUS_INTERNAL_UNUSED 0xff
00034
00035
00036 CHIPCARD_API
00037 int LC_Starcos_ExtendCard(LC_CARD *card);
00038 CHIPCARD_API
00039 int LC_Starcos_UnextendCard(LC_CARD *card);
00040 CHIPCARD_API
00041 LC_CLIENT_RESULT LC_Starcos_Reopen(LC_CARD *card);
00042
00043
00044 CHIPCARD_API
00045 GWEN_DB_NODE *LC_Starcos_GetCardDataAsDb(const LC_CARD *card);
00046 CHIPCARD_API
00047 GWEN_BUFFER *LC_Starcos_GetCardDataAsBuffer(const LC_CARD *card);
00048
00049
00050
00060 CHIPCARD_API
00061 GWEN_KEYSPEC *LC_Starcos_GetKeySpec(LC_CARD *card, int kid);
00062
00063 CHIPCARD_API
00064 LC_CLIENT_RESULT LC_Starcos_SetKeySpec(LC_CARD *card,
00065 int kid,
00066 const GWEN_KEYSPEC *ks);
00067
00068
00074 CHIPCARD_API
00075 LC_CLIENT_RESULT LC_Starcos_GenerateKeyPair(LC_CARD *card,
00076 int kid,
00077 int bits);
00078
00079 CHIPCARD_API
00080 LC_CLIENT_RESULT LC_Starcos_ActivateKeyPair(LC_CARD *card,
00081 int srcKid,
00082 int dstKid,
00083 const GWEN_KEYSPEC *ks);
00084
00085 CHIPCARD_API
00086 LC_CLIENT_RESULT LC_Starcos_WritePublicKey(LC_CARD *card, int kid,
00087 const GWEN_CRYPTKEY *key);
00088
00089 CHIPCARD_API
00090 GWEN_CRYPTKEY *LC_Starcos_ReadPublicKey(LC_CARD *card, int kid);
00111 CHIPCARD_API
00112 LC_CLIENT_RESULT LC_Starcos_ReadInstituteData(LC_CARD *card,
00113 int idx,
00114 GWEN_DB_NODE *dbData);
00115
00116 CHIPCARD_API
00117 LC_CLIENT_RESULT LC_Starcos_WriteInstituteData(LC_CARD *card,
00118 int idx,
00119 GWEN_DB_NODE *dbData);
00128 CHIPCARD_API
00129 GWEN_TYPE_UINT32 LC_Starcos_ReadSigCounter(LC_CARD *card, int kid);
00130
00134 CHIPCARD_API
00135 LC_CLIENT_RESULT LC_Starcos_GetChallenge(LC_CARD *card, GWEN_BUFFER *mbuf);
00136
00137
00140 #ifdef __cplusplus
00141 }
00142 #endif
00143
00144 #endif
00145
00146