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
00042 typedef struct GWEN_CT_FILE_CONTEXT GWEN_CT_FILE_CONTEXT;
00043
00044 GWEN_INHERIT_FUNCTION_LIB_DEFS(GWEN_CT_FILE_CONTEXT, GWENHYWFAR_API)
00045 GWEN_LIST_FUNCTION_LIB_DEFS(GWEN_CT_FILE_CONTEXT,
00046 GWEN_CryptTokenFile_Context,
00047 GWENHYWFAR_API)
00048 GWEN_LIST2_FUNCTION_LIB_DEFS(GWEN_CT_FILE_CONTEXT,
00049 GWEN_CryptTokenFile_Context,
00050 GWENHYWFAR_API)
00051
00052
00053
00054 GWEN_CT_FILE_CONTEXT *GWEN_CryptTokenFile_Context_new();
00055 void GWEN_CryptTokenFile_Context_free(GWEN_CT_FILE_CONTEXT *fc);
00056
00057 unsigned int
00058 GWEN_CryptTokenFile_Context_GetLocalSignSeq(const GWEN_CT_FILE_CONTEXT *fc);
00059 void GWEN_CryptTokenFile_Context_SetLocalSignSeq(GWEN_CT_FILE_CONTEXT *fc,
00060 unsigned int i);
00061
00062 unsigned int
00063 GWEN_CryptTokenFile_Context_GetRemoteSignSeq(const GWEN_CT_FILE_CONTEXT *fc);
00064 void GWEN_CryptTokenFile_Context_SetRemoteSignSeq(GWEN_CT_FILE_CONTEXT *fc,
00065 unsigned int i);
00066
00067 GWEN_CRYPTKEY*
00068 GWEN_CryptTokenFile_Context_GetLocalSignKey(const GWEN_CT_FILE_CONTEXT *fc);
00069 void GWEN_CryptTokenFile_Context_SetLocalSignKey(GWEN_CT_FILE_CONTEXT *fc,
00070 GWEN_CRYPTKEY *key);
00071
00072 GWEN_CRYPTKEY*
00073 GWEN_CryptTokenFile_Context_GetLocalCryptKey(const GWEN_CT_FILE_CONTEXT *fc);
00074 void GWEN_CryptTokenFile_Context_SetLocalCryptKey(GWEN_CT_FILE_CONTEXT *fc,
00075 GWEN_CRYPTKEY *key);
00076
00077 GWEN_CRYPTKEY*
00078 GWEN_CryptTokenFile_Context_GetRemoteSignKey(const GWEN_CT_FILE_CONTEXT *fc);
00079 void GWEN_CryptTokenFile_Context_SetRemoteSignKey(GWEN_CT_FILE_CONTEXT *fc,
00080 GWEN_CRYPTKEY *key);
00081
00082 GWEN_CRYPTKEY*
00083 GWEN_CryptTokenFile_Context_GetRemoteCryptKey(const GWEN_CT_FILE_CONTEXT *fc);
00084 void GWEN_CryptTokenFile_Context_SetRemoteCryptKey(GWEN_CT_FILE_CONTEXT *fc,
00085 GWEN_CRYPTKEY *key);
00086
00087 GWEN_CRYPTTOKEN_USER*
00088 GWEN_CryptTokenFile_Context_GetUser(const GWEN_CT_FILE_CONTEXT *fc);
00089 void GWEN_CryptTokenFile_Context_SetUser(GWEN_CT_FILE_CONTEXT *fc,
00090 GWEN_CRYPTTOKEN_USER *u);
00091
00092
00093
00094
00095
00096 typedef struct GWEN_CRYPTTOKEN_FILE GWEN_CRYPTTOKEN_FILE;
00097
00098
00099 typedef int (*GWEN_CRYPTTOKEN_FILE_READ_FN)(GWEN_CRYPTTOKEN *ct,
00100 int fd);
00101
00102 typedef int (*GWEN_CRYPTTOKEN_FILE_WRITE_FN)(GWEN_CRYPTTOKEN *ct,
00103 int fd, int cre);
00104
00105
00106 GWEN_CRYPTTOKEN *GWEN_CryptTokenFile_new(GWEN_PLUGIN_MANAGER *pm,
00107 const char *typeName,
00108 const char *subTypeName,
00109 const char *name);
00110
00111
00112 void GWEN_CryptTokenFile_SetReadFn(GWEN_CRYPTTOKEN *ct,
00113 GWEN_CRYPTTOKEN_FILE_READ_FN fn);
00114 void GWEN_CryptTokenFile_SetWriteFn(GWEN_CRYPTTOKEN *ct,
00115 GWEN_CRYPTTOKEN_FILE_WRITE_FN fn);
00116
00117
00118 GWEN_CT_FILE_CONTEXT_LIST*
00119 GWEN_CryptTokenFile_GetFileContextList(GWEN_CRYPTTOKEN *ct);
00120 void GWEN_CryptTokenFile_AddFileContext(GWEN_CRYPTTOKEN *ct,
00121 GWEN_CT_FILE_CONTEXT *fc);
00122 void GWEN_CryptTokenFile_ClearFileContextList(GWEN_CRYPTTOKEN *ct);
00123
00124
00125 #ifdef __cplusplus
00126 }
00127 #endif
00128
00129
00130 #endif
00131