ct_file.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  $RCSfile: ct_file.h,v $
00003                              -------------------
00004     cvs         : $Id: ct_file.h,v 1.4 2005/08/18 13:21:26 aquamaniac Exp $
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_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 /* GWEN_CRYPTTOKEN_FILE_H */
00131 

Generated on Wed Jan 11 16:49:07 2006 for gwenhywfar by  doxygen 1.4.6