ct_keyinfo.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  $RCSfile$
00003                              -------------------
00004     cvs         : $Id: crypttoken.h 1113 2007-01-10 09:14:16Z martin $
00005     begin       : Wed Mar 16 2005
00006     copyright   : (C) 2005 by Martin Preuss
00007     email       : martin@libchipcard.de
00008 
00009  ***************************************************************************
00010  *          Please see toplevel file COPYING for license details           *
00011  ***************************************************************************/
00012 
00013 
00014 #ifndef GWEN_CRYPT_TOKEN_KEYINFO_H
00015 #define GWEN_CRYPT_TOKEN_KEYINFO_H
00016 
00017 
00018 #include <gwenhywfar/list1.h>
00019 #include <gwenhywfar/list2.h>
00020 
00021 
00022 
00023 typedef struct GWEN_CRYPT_TOKEN_KEYINFO GWEN_CRYPT_TOKEN_KEYINFO;
00024 
00025 #ifdef __cplusplus
00026 extern "C" {
00027 #endif
00028 
00029 GWEN_LIST_FUNCTION_LIB_DEFS(GWEN_CRYPT_TOKEN_KEYINFO, GWEN_Crypt_Token_KeyInfo, GWENHYWFAR_API)
00030 GWEN_LIST2_FUNCTION_LIB_DEFS(GWEN_CRYPT_TOKEN_KEYINFO, GWEN_Crypt_Token_KeyInfo, GWENHYWFAR_API)
00031 
00032 #ifdef __cplusplus
00033 }
00034 #endif
00035 
00036 
00037 
00042 typedef enum {
00043   GWEN_Crypt_Token_KeyStatusUnknown=-1,
00044   GWEN_Crypt_Token_KeyStatusFree=0,
00045   GWEN_Crypt_Token_KeyStatusNew,
00046   GWEN_Crypt_Token_KeyStatusActive
00047 } GWEN_CRYPT_TOKEN_KEYSTATUS;
00056 #define GWEN_CRYPT_TOKEN_KEYFLAGS_HASSTATUS      0x00010000
00057 #define GWEN_CRYPT_TOKEN_KEYFLAGS_HASMODULUS     0x00020000
00058 #define GWEN_CRYPT_TOKEN_KEYFLAGS_HASEXPONENT    0x00040000
00059 #define GWEN_CRYPT_TOKEN_KEYFLAGS_HASACTIONFLAGS 0x00080000
00060 #define GWEN_CRYPT_TOKEN_KEYFLAGS_HASKEYVERSION  0x00100000
00061 #define GWEN_CRYPT_TOKEN_KEYFLAGS_HASSIGNCOUNTER 0x00200000
00062 #define GWEN_CRYPT_TOKEN_KEYFLAGS_HASKEYNUMBER   0x00400000
00063 
00064 #define GWEN_CRYPT_TOKEN_KEYFLAGS_ACTIONMASK     0x0000000f
00065 #define GWEN_CRYPT_TOKEN_KEYFLAGS_CANSIGN        0x00000001
00066 #define GWEN_CRYPT_TOKEN_KEYFLAGS_CANVERIFY      0x00000002
00067 #define GWEN_CRYPT_TOKEN_KEYFLAGS_CANENCIPHER    0x00000004
00068 #define GWEN_CRYPT_TOKEN_KEYFLAGS_CANDECIPHER    0x00000008
00069 
00073 #include <gwenhywfar/cryptalgo.h>
00074 #include <gwenhywfar/cryptalgo.h>
00075 
00076 
00077 #ifdef __cplusplus
00078 extern "C" {
00079 #endif
00080 
00081 
00082 GWENHYWFAR_API
00083 GWEN_CRYPT_TOKEN_KEYINFO *GWEN_Crypt_Token_KeyInfo_new(uint32_t kid,
00084                                                        GWEN_CRYPT_CRYPTALGOID a,
00085                                                        int keySize);
00086 
00087 GWENHYWFAR_API
00088 void GWEN_Crypt_Token_KeyInfo_free(GWEN_CRYPT_TOKEN_KEYINFO *ki);
00089 
00090 GWENHYWFAR_API
00091 GWEN_CRYPT_TOKEN_KEYINFO *GWEN_Crypt_Token_KeyInfo_dup(const GWEN_CRYPT_TOKEN_KEYINFO *ki);
00092 
00093 GWENHYWFAR_API
00094 uint32_t GWEN_Crypt_Token_KeyInfo_GetKeyId(const GWEN_CRYPT_TOKEN_KEYINFO *ki);
00095 
00096 GWENHYWFAR_API
00097 const char *GWEN_Crypt_Token_KeyInfo_GetKeyDescr(const GWEN_CRYPT_TOKEN_KEYINFO *ki);
00098 
00099 GWENHYWFAR_API
00100 void GWEN_Crypt_Token_KeyInfo_SetKeyDescr(GWEN_CRYPT_TOKEN_KEYINFO *ki, const char *s);
00101 
00102 
00103 GWENHYWFAR_API
00104 GWEN_CRYPT_CRYPTALGOID GWEN_Crypt_Token_KeyInfo_GetCryptAlgoId(const GWEN_CRYPT_TOKEN_KEYINFO *ki);
00105 
00106 GWENHYWFAR_API
00107 int GWEN_Crypt_Token_KeyInfo_GetKeySize(const GWEN_CRYPT_TOKEN_KEYINFO *ki);
00108 
00109 GWENHYWFAR_API
00110 void GWEN_Crypt_Token_KeyInfo_SetKeySize(GWEN_CRYPT_TOKEN_KEYINFO *ki, int i);
00111 
00112 GWENHYWFAR_API
00113 uint32_t GWEN_Crypt_Token_KeyInfo_GetFlags(const GWEN_CRYPT_TOKEN_KEYINFO *ki);
00114 
00115 GWENHYWFAR_API
00116 void GWEN_Crypt_Token_KeyInfo_SetFlags(GWEN_CRYPT_TOKEN_KEYINFO *ki, uint32_t f);
00117 
00118 GWENHYWFAR_API
00119 void GWEN_Crypt_Token_KeyInfo_AddFlags(GWEN_CRYPT_TOKEN_KEYINFO *ki, uint32_t f);
00120 
00121 GWENHYWFAR_API
00122 void GWEN_Crypt_Token_KeyInfo_SubFlags(GWEN_CRYPT_TOKEN_KEYINFO *ki, uint32_t f);
00123 
00124 GWENHYWFAR_API
00125 const uint8_t *GWEN_Crypt_Token_KeyInfo_GetModulusData(const GWEN_CRYPT_TOKEN_KEYINFO *ki);
00126 
00127 GWENHYWFAR_API
00128 uint32_t GWEN_Crypt_Token_KeyInfo_GetModulusLen(const GWEN_CRYPT_TOKEN_KEYINFO *ki);
00129 
00130 GWENHYWFAR_API
00131 void GWEN_Crypt_Token_KeyInfo_SetModulus(GWEN_CRYPT_TOKEN_KEYINFO *ki,
00132                                          const uint8_t *p,
00133                                          uint32_t len);
00134 
00135 GWENHYWFAR_API
00136 const uint8_t *GWEN_Crypt_Token_KeyInfo_GetExponentData(const GWEN_CRYPT_TOKEN_KEYINFO *ki);
00137 
00138 GWENHYWFAR_API
00139 uint32_t GWEN_Crypt_Token_KeyInfo_GetExponentLen(const GWEN_CRYPT_TOKEN_KEYINFO *ki);
00140 
00141 GWENHYWFAR_API
00142 void GWEN_Crypt_Token_KeyInfo_SetExponent(GWEN_CRYPT_TOKEN_KEYINFO *ki,
00143                                           const uint8_t *p,
00144                                           uint32_t len);
00145 
00146 GWENHYWFAR_API
00147 uint32_t GWEN_Crypt_Token_KeyInfo_GetKeyNumber(const GWEN_CRYPT_TOKEN_KEYINFO *ki);
00148 
00149 GWENHYWFAR_API
00150 void GWEN_Crypt_Token_KeyInfo_SetKeyNumber(GWEN_CRYPT_TOKEN_KEYINFO *ki,
00151                                            uint32_t i);
00152 
00153 GWENHYWFAR_API
00154 uint32_t GWEN_Crypt_Token_KeyInfo_GetKeyVersion(const GWEN_CRYPT_TOKEN_KEYINFO *ki);
00155 
00156 GWENHYWFAR_API
00157 void GWEN_Crypt_Token_KeyInfo_SetKeyVersion(GWEN_CRYPT_TOKEN_KEYINFO *ki,
00158                                             uint32_t i);
00159 
00160 GWENHYWFAR_API
00161 uint32_t GWEN_Crypt_Token_KeyInfo_GetSignCounter(const GWEN_CRYPT_TOKEN_KEYINFO *ki);
00162 
00163 GWENHYWFAR_API
00164 void GWEN_Crypt_Token_KeyInfo_SetSignCounter(GWEN_CRYPT_TOKEN_KEYINFO *ki,
00165                                              uint32_t i);
00166 
00167 
00168 #ifdef __cplusplus
00169 }
00170 #endif
00171 
00172 
00173 #endif
00174 
00175 
00176 

Generated on Mon Jan 25 12:56:01 2010 for gwenhywfar by  doxygen 1.5.6