1 /*************************************************************************** 2 begin : Mon Mar 01 2004 3 copyright : (C) 2004 by Martin Preuss 4 email : martin@libchipcard.de 5 6 *************************************************************************** 7 * Please see toplevel file COPYING for license details * 8 ***************************************************************************/ 9 10 #ifndef EBC_CLIENT_USER_H 11 #define EBC_CLIENT_USER_H 12 13 #include <aqebics/aqebics.h> 14 15 #include <aqbanking/backendsupport/user.h> 16 17 #include <gwenhywfar/db.h> 18 #include <gwenhywfar/misc.h> 19 #include <gwenhywfar/url.h> 20 21 22 23 #ifdef __cplusplus 24 extern "C" { 25 #endif 26 27 #define EBC_USER_FLAGS_BANK_DOESNT_SIGN 0x00000001 28 #define EBC_USER_FLAGS_FORCE_SSLV3 0x00000002 29 #define EBC_USER_FLAGS_INI 0x00000004 30 #define EBC_USER_FLAGS_HIA 0x00000008 31 #define EBC_USER_FLAGS_CLIENT_DATA_DOWNLOAD_SPP 0x00000010 32 #define EBC_USER_FLAGS_PREVALIDATION_SPP 0x00000020 33 #define EBC_USER_FLAGS_RECOVERY_SPP 0x00000040 34 #define EBC_USER_FLAGS_STA_SPP 0x00000080 35 #define EBC_USER_FLAGS_IZV_SPP 0x00000100 36 #define EBC_USER_FLAGS_USE_IZL 0x00010000 37 #define EBC_USER_FLAGS_TIMESTAMP_FIX1 0x00020000 38 #define EBC_USER_FLAGS_NO_EU 0x00040000 39 /* #define EBC_USER_FLAGS_TLS_IGN_PREMATURE_CLOSE 0x00080000 deprecated */ 40 #define EBC_USER_FLAGS_TLS_ABORT_ON_PREMATURE_CLOSE 0x00100000 41 42 43 AQEBICS_API void EBC_User_Flags_toDb(GWEN_DB_NODE *db, const char *name, 44 uint32_t flags); 45 46 AQEBICS_API uint32_t EBC_User_Flags_fromDb(GWEN_DB_NODE *db, const char *name); 47 48 49 typedef enum { 50 EBC_UserStatus_New=0, 51 EBC_UserStatus_Init1, 52 EBC_UserStatus_Init2, 53 EBC_UserStatus_Enabled, 54 EBC_UserStatus_Disabled, 55 EBC_UserStatus_Unknown=999 56 } EBC_USER_STATUS; 57 58 AQEBICS_API const char *EBC_User_Status_toString(EBC_USER_STATUS st); 59 AQEBICS_API EBC_USER_STATUS EBC_User_Status_fromString(const char *s); 60 61 AQEBICS_API EBC_USER_STATUS EBC_User_GetStatus(const AB_USER *u); 62 AQEBICS_API void EBC_User_SetStatus(AB_USER *u, EBC_USER_STATUS i); 63 64 AQEBICS_API const char *EBC_User_GetServerUrl(const AB_USER *u); 65 AQEBICS_API void EBC_User_SetServerUrl(AB_USER *u, const char *s); 66 67 AQEBICS_API const char *EBC_User_GetPeerId(const AB_USER *u); 68 AQEBICS_API void EBC_User_SetPeerId(AB_USER *u, const char *s); 69 70 AQEBICS_API const char *EBC_User_GetSystemId(const AB_USER *u); 71 AQEBICS_API void EBC_User_SetSystemId(AB_USER *u, const char *s); 72 73 AQEBICS_API const char *EBC_User_GetProtoVersion(const AB_USER *u); 74 AQEBICS_API void EBC_User_SetProtoVersion(AB_USER *u, const char *s); 75 76 AQEBICS_API const char *EBC_User_GetSignVersion(const AB_USER *u); 77 AQEBICS_API void EBC_User_SetSignVersion(AB_USER *u, const char *s); 78 79 AQEBICS_API const char *EBC_User_GetCryptVersion(const AB_USER *u); 80 AQEBICS_API void EBC_User_SetCryptVersion(AB_USER *u, const char *s); 81 82 AQEBICS_API const char *EBC_User_GetAuthVersion(const AB_USER *u); 83 AQEBICS_API void EBC_User_SetAuthVersion(AB_USER *u, const char *s); 84 85 86 87 /** 88 * Returns 0 if the bank doesn't sign messages, 1 otherwise. 89 * This can be used in case the bank sends a sign key upon request but 90 * never signs it's messages. 91 */ 92 93 AQEBICS_API uint32_t EBC_User_GetFlags(const AB_USER *u); 94 AQEBICS_API void EBC_User_SetFlags(AB_USER *u, uint32_t flags); 95 AQEBICS_API void EBC_User_AddFlags(AB_USER *u, uint32_t flags); 96 AQEBICS_API void EBC_User_SubFlags(AB_USER *u, uint32_t flags); 97 98 99 /** 100 * Returns the major HTTP version to be used in PIN/TAN mode (defaults to 1). 101 */ 102 103 AQEBICS_API int EBC_User_GetHttpVMajor(const AB_USER *u); 104 AQEBICS_API void EBC_User_SetHttpVMajor(AB_USER *u, int i); 105 106 /** 107 * Returns the minor HTTP version to be used in PIN/TAN mode (defaults to 1). 108 */ 109 110 AQEBICS_API int EBC_User_GetHttpVMinor(const AB_USER *u); 111 AQEBICS_API void EBC_User_SetHttpVMinor(AB_USER *u, int i); 112 113 AQEBICS_API const char *EBC_User_GetHttpUserAgent(const AB_USER *u); 114 AQEBICS_API void EBC_User_SetHttpUserAgent(AB_USER *u, const char *s); 115 116 AQEBICS_API const char *EBC_User_GetHttpContentType(const AB_USER *u); 117 AQEBICS_API void EBC_User_SetHttpContentType(AB_USER *u, const char *s); 118 119 120 121 AQEBICS_API const char *EBC_User_GetTokenType(const AB_USER *u); 122 AQEBICS_API void EBC_User_SetTokenType(AB_USER *u, const char *s); 123 AQEBICS_API const char *EBC_User_GetTokenName(const AB_USER *u); 124 AQEBICS_API void EBC_User_SetTokenName(AB_USER *u, const char *s); 125 AQEBICS_API uint32_t EBC_User_GetTokenContextId(const AB_USER *u); 126 AQEBICS_API void EBC_User_SetTokenContextId(AB_USER *u, uint32_t id); 127 128 AQEBICS_API int EBC_User_MkPasswdName(const AB_USER *u, GWEN_BUFFER *buf); 129 130 #ifdef __cplusplus 131 } 132 #endif 133 134 #endif /* EBC_USER_H */ 135 136 137 138 139 140 141