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