00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014 #ifndef GWEN_CRYPTTOKEN_FILE_H
00015 #define GWEN_CRYPTTOKEN_FILE_H
00016
00017 #include <gwenhywfar/crypttoken.h>
00018 #include <gwenhywfar/crypttoken_user.h>
00019
00020 #ifdef __cplusplus
00021 extern "C" {
00022 #endif
00023
00024
00044 typedef struct GWEN_CT_FILE_CONTEXT GWEN_CT_FILE_CONTEXT;
00045
00046 GWEN_INHERIT_FUNCTION_LIB_DEFS(GWEN_CT_FILE_CONTEXT, GWENHYWFAR_API)
00047 GWEN_LIST_FUNCTION_LIB_DEFS(GWEN_CT_FILE_CONTEXT,
00048 GWEN_CryptTokenFile_Context,
00049 GWENHYWFAR_API)
00050 GWEN_LIST2_FUNCTION_LIB_DEFS(GWEN_CT_FILE_CONTEXT,
00051 GWEN_CryptTokenFile_Context,
00052 GWENHYWFAR_API)
00053
00054
00055
00056 GWENHYWFAR_API
00057 GWEN_CT_FILE_CONTEXT *GWEN_CryptTokenFile_Context_new();
00058
00059 GWENHYWFAR_API
00060 void GWEN_CryptTokenFile_Context_free(GWEN_CT_FILE_CONTEXT *fc);
00061
00062 GWENHYWFAR_API
00063 unsigned int
00064 GWEN_CryptTokenFile_Context_GetLocalSignSeq(const GWEN_CT_FILE_CONTEXT *fc);
00065
00066 GWENHYWFAR_API
00067 void GWEN_CryptTokenFile_Context_SetLocalSignSeq(GWEN_CT_FILE_CONTEXT *fc,
00068 unsigned int i);
00069
00070 GWENHYWFAR_API
00071 unsigned int
00072 GWEN_CryptTokenFile_Context_GetRemoteSignSeq(const GWEN_CT_FILE_CONTEXT *fc);
00073
00074 GWENHYWFAR_API
00075 void GWEN_CryptTokenFile_Context_SetRemoteSignSeq(GWEN_CT_FILE_CONTEXT *fc,
00076 unsigned int i);
00077
00078 GWENHYWFAR_API
00079 unsigned int
00080 GWEN_CryptTokenFile_Context_GetLocalAuthSeq(const GWEN_CT_FILE_CONTEXT *fc);
00081
00082 GWENHYWFAR_API
00083 void GWEN_CryptTokenFile_Context_SetLocalAuthSeq(GWEN_CT_FILE_CONTEXT *fc,
00084 unsigned int i);
00085
00086 GWENHYWFAR_API
00087 GWEN_CRYPTKEY*
00088 GWEN_CryptTokenFile_Context_GetLocalSignKey(const GWEN_CT_FILE_CONTEXT *fc);
00089
00090 GWENHYWFAR_API
00091 void GWEN_CryptTokenFile_Context_SetLocalSignKey(GWEN_CT_FILE_CONTEXT *fc,
00092 GWEN_CRYPTKEY *key);
00093
00094 GWENHYWFAR_API
00095 GWEN_CRYPTKEY*
00096 GWEN_CryptTokenFile_Context_GetLocalCryptKey(const GWEN_CT_FILE_CONTEXT *fc);
00097
00098 GWENHYWFAR_API
00099 void GWEN_CryptTokenFile_Context_SetLocalCryptKey(GWEN_CT_FILE_CONTEXT *fc,
00100 GWEN_CRYPTKEY *key);
00101
00102 GWENHYWFAR_API
00103 GWEN_CRYPTKEY*
00104 GWEN_CryptTokenFile_Context_GetRemoteSignKey(const GWEN_CT_FILE_CONTEXT *fc);
00105
00106 GWENHYWFAR_API
00107 void GWEN_CryptTokenFile_Context_SetRemoteSignKey(GWEN_CT_FILE_CONTEXT *fc,
00108 GWEN_CRYPTKEY *key);
00109
00110 GWENHYWFAR_API
00111 GWEN_CRYPTKEY*
00112 GWEN_CryptTokenFile_Context_GetRemoteCryptKey(const GWEN_CT_FILE_CONTEXT *fc);
00113
00114 GWENHYWFAR_API
00115 void GWEN_CryptTokenFile_Context_SetRemoteCryptKey(GWEN_CT_FILE_CONTEXT *fc,
00116 GWEN_CRYPTKEY *key);
00117
00118 GWENHYWFAR_API GWEN_CRYPTKEY*
00119 GWEN_CryptTokenFile_Context_GetLocalAuthKey(const GWEN_CT_FILE_CONTEXT *fc);
00120
00121 GWENHYWFAR_API
00122 void GWEN_CryptTokenFile_Context_SetLocalAuthKey(GWEN_CT_FILE_CONTEXT *fc,
00123 GWEN_CRYPTKEY *key);
00124
00125
00126
00127 GWENHYWFAR_API GWEN_CRYPTKEY*
00128 GWEN_CryptTokenFile_Context_GetRemoteAuthKey(const GWEN_CT_FILE_CONTEXT *fc);
00129
00130
00131 GWENHYWFAR_API
00132 void GWEN_CryptTokenFile_Context_SetRemoteAuthKey(GWEN_CT_FILE_CONTEXT *fc,
00133 GWEN_CRYPTKEY *key);
00134
00135
00136 GWENHYWFAR_API GWEN_CRYPTTOKEN_USER*
00137 GWEN_CryptTokenFile_Context_GetUser(const GWEN_CT_FILE_CONTEXT *fc);
00138
00139 GWENHYWFAR_API
00140 void GWEN_CryptTokenFile_Context_SetUser(GWEN_CT_FILE_CONTEXT *fc,
00141 GWEN_CRYPTTOKEN_USER *u);
00142
00143
00144
00145
00146
00147 typedef struct GWEN_CRYPTTOKEN_FILE GWEN_CRYPTTOKEN_FILE;
00148
00149
00150 typedef int (*GWEN_CRYPTTOKEN_FILE_READ_FN)(GWEN_CRYPTTOKEN *ct,
00151 int fd);
00152
00153 typedef int (*GWEN_CRYPTTOKEN_FILE_WRITE_FN)(GWEN_CRYPTTOKEN *ct,
00154 int fd, int cre);
00155
00156
00157 GWENHYWFAR_API
00158 GWEN_CRYPTTOKEN *GWEN_CryptTokenFile_new(GWEN_PLUGIN_MANAGER *pm,
00159 const char *typeName,
00160 const char *subTypeName,
00161 const char *name);
00162
00163
00164 GWENHYWFAR_API
00165 void GWEN_CryptTokenFile_SetReadFn(GWEN_CRYPTTOKEN *ct,
00166 GWEN_CRYPTTOKEN_FILE_READ_FN fn);
00167
00168 GWENHYWFAR_API
00169 void GWEN_CryptTokenFile_SetWriteFn(GWEN_CRYPTTOKEN *ct,
00170 GWEN_CRYPTTOKEN_FILE_WRITE_FN fn);
00171
00172
00173 GWENHYWFAR_API
00174 GWEN_CT_FILE_CONTEXT_LIST*
00175 GWEN_CryptTokenFile_GetFileContextList(GWEN_CRYPTTOKEN *ct);
00176
00177 GWENHYWFAR_API
00178 void GWEN_CryptTokenFile_AddFileContext(GWEN_CRYPTTOKEN *ct,
00179 GWEN_CT_FILE_CONTEXT *fc);
00180
00181 GWENHYWFAR_API
00182 void GWEN_CryptTokenFile_ClearFileContextList(GWEN_CRYPTTOKEN *ct);
00183
00184
00185 #ifdef __cplusplus
00186 }
00187 #endif
00188
00189
00190 #endif
00191