00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014 #ifndef GWEN_CRYPTTOKEN_CONTEXT_H
00015 #define GWEN_CRYPTTOKEN_CONTEXT_H
00016
00017 #include <gwenhywfar/keyspec.h>
00018 #include <gwenhywfar/crypt.h>
00019 #include <gwenhywfar/buffer.h>
00020 #include <gwenhywfar/db.h>
00021 #include <gwenhywfar/xml.h>
00022 #include <gwenhywfar/plugin.h>
00023
00024
00025 #ifdef __cplusplus
00026 extern "C" {
00027 #endif
00028
00029
00030 typedef struct GWEN_CRYPTTOKEN_CONTEXT GWEN_CRYPTTOKEN_CONTEXT;
00031
00032
00033 GWEN_LIST_FUNCTION_LIB_DEFS(GWEN_CRYPTTOKEN_CONTEXT,
00034 GWEN_CryptToken_Context,
00035 GWENHYWFAR_API)
00036
00037
00038 typedef enum {
00039 GWEN_CryptToken_ContextType_Unknown=0,
00040 GWEN_CryptToken_ContextType_HBCI
00041 } GWEN_CRYPTTOKEN_CONTEXTTYPE;
00042
00043
00044 GWEN_CRYPTTOKEN_CONTEXTTYPE GWEN_CryptToken_ContextType_fromString(const char *s);
00045 const char *GWEN_CryptToken_ContextType_toString(GWEN_CRYPTTOKEN_CONTEXTTYPE t);
00046
00047
00048
00053 GWEN_CRYPTTOKEN_CONTEXT *GWEN_CryptToken_Context_new();
00054 void GWEN_CryptToken_Context_free(GWEN_CRYPTTOKEN_CONTEXT *ctx);
00055 GWEN_CRYPTTOKEN_CONTEXT*
00056 GWEN_CryptToken_Context_dup(const GWEN_CRYPTTOKEN_CONTEXT *ctx);
00057 GWEN_CRYPTTOKEN_CONTEXT *GWEN_CryptToken_Context_fromDb(GWEN_DB_NODE *db);
00058 int GWEN_CryptToken_Context_toDb(const GWEN_CRYPTTOKEN_CONTEXT *ctx,
00059 GWEN_DB_NODE *db);
00060
00061
00062 GWEN_TYPE_UINT32
00063 GWEN_CryptToken_Context_GetId(const GWEN_CRYPTTOKEN_CONTEXT *ctx);
00064 void GWEN_CryptToken_Context_SetId(GWEN_CRYPTTOKEN_CONTEXT *ctx,
00065 GWEN_TYPE_UINT32 id);
00066
00067 GWEN_CRYPTTOKEN_CONTEXTTYPE
00068 GWEN_CryptToken_Context_GetContextType(const GWEN_CRYPTTOKEN_CONTEXT *ctx);
00069 void GWEN_CryptToken_Context_SetContextType(GWEN_CRYPTTOKEN_CONTEXT *ctx,
00070 GWEN_CRYPTTOKEN_CONTEXTTYPE t);
00071
00072
00073 const char*
00074 GWEN_CryptToken_Context_GetDescription(const GWEN_CRYPTTOKEN_CONTEXT *ctx);
00075 void GWEN_CryptToken_Context_SetDescription(GWEN_CRYPTTOKEN_CONTEXT *ctx,
00076 const char *s);
00077
00078 const GWEN_CRYPTTOKEN_KEYINFO*
00079 GWEN_CryptToken_Context_GetSignKeyInfo(const GWEN_CRYPTTOKEN_CONTEXT *ctx);
00080 void
00081 GWEN_CryptToken_Context_SetSignKeyInfo(GWEN_CRYPTTOKEN_CONTEXT *ctx,
00082 const GWEN_CRYPTTOKEN_KEYINFO *ki);
00083
00084 const GWEN_CRYPTTOKEN_KEYINFO*
00085 GWEN_CryptToken_Context_GetVerifyKeyInfo(const GWEN_CRYPTTOKEN_CONTEXT *ctx);
00086 void
00087 GWEN_CryptToken_Context_SetVerifyKeyInfo(GWEN_CRYPTTOKEN_CONTEXT *ctx,
00088 const GWEN_CRYPTTOKEN_KEYINFO *ki);
00089
00090 const GWEN_CRYPTTOKEN_KEYINFO*
00091 GWEN_CryptToken_Context_GetEncryptKeyInfo(const GWEN_CRYPTTOKEN_CONTEXT *ctx);
00092 void
00093 GWEN_CryptToken_Context_SetEncryptKeyInfo(GWEN_CRYPTTOKEN_CONTEXT *ctx,
00094 const GWEN_CRYPTTOKEN_KEYINFO *ki);
00095
00096 const GWEN_CRYPTTOKEN_KEYINFO*
00097 GWEN_CryptToken_Context_GetDecryptKeyInfo(const GWEN_CRYPTTOKEN_CONTEXT *ctx);
00098 void
00099 GWEN_CryptToken_Context_SetDecryptKeyInfo(GWEN_CRYPTTOKEN_CONTEXT *ctx,
00100 const GWEN_CRYPTTOKEN_KEYINFO *ki);
00101
00102 const GWEN_CRYPTTOKEN_SIGNINFO*
00103 GWEN_CryptToken_Context_GetSignInfo(const GWEN_CRYPTTOKEN_CONTEXT *ctx);
00104 void GWEN_CryptToken_Context_SetSignInfo(GWEN_CRYPTTOKEN_CONTEXT *ctx,
00105 const GWEN_CRYPTTOKEN_SIGNINFO *si);
00106
00107 const GWEN_CRYPTTOKEN_CRYPTINFO*
00108 GWEN_CryptToken_Context_GetCryptInfo(const GWEN_CRYPTTOKEN_CONTEXT *ctx);
00109 void GWEN_CryptToken_Context_SetCryptInfo(GWEN_CRYPTTOKEN_CONTEXT *ctx,
00110 const GWEN_CRYPTTOKEN_CRYPTINFO *ci);
00114 #ifdef __cplusplus
00115 }
00116 #endif
00117
00118
00119 #endif
00120
00121