00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
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