libchipcard 5.0.0

starcos.h

Go to the documentation of this file.
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