00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014 #ifndef GWHBCI_HBCI_H
00015 #define GWHBCI_HBCI_H
00016
00017
00018 #include <aqhbci/aqhbci.h>
00019
00020 #ifdef __cplusplus
00021 extern "C" {
00022 #endif
00023 typedef struct AH_HBCI AH_HBCI;
00024 #ifdef __cplusplus
00025 }
00026 #endif
00027
00028 #define AH_DEFAULT_KEYLEN 768
00029
00030 #define AH_HBCI_CHECKMEDIUM_WCB_ID "AH_HBCI_CHECKMEDIUM_WCB_ID"
00031
00032 #define AH_HBCI_LAST_VERSION_NONE 0xffffffff
00033
00034 #include <gwenhywfar/xml.h>
00035 #include <gwenhywfar/misc.h>
00036 #include <gwenhywfar/inherit.h>
00037 #include <gwenhywfar/plugindescr.h>
00038 #include <gwenhywfar/crypttoken.h>
00039
00040 #include <aqhbci/objectref.h>
00041
00042 #include <aqbanking/banking.h>
00043
00044
00045 #ifdef __cplusplus
00046 extern "C" {
00047 #endif
00048
00049 GWEN_INHERIT_FUNCTION_LIB_DEFS(AH_HBCI, AQHBCI_API);
00050
00051 #define AH_HBCI_CONN_MARK_TCP 1
00052 #define AH_HBCI_CONN_MARK_SSL 2
00053
00054
00055
00056 typedef enum {
00057 AH_CryptMode_Unknown=-1,
00059 AH_CryptMode_None=0,
00061 AH_CryptMode_Ddv,
00063 AH_CryptMode_Pintan,
00065 AH_CryptMode_Rdh
00066 } AH_CRYPT_MODE;
00067 AH_CRYPT_MODE AH_CryptMode_fromString(const char *s);
00068 const char *AH_CryptMode_toString(AH_CRYPT_MODE v);
00069
00070 #ifdef __cplusplus
00071 }
00072 #endif
00073
00074 #include <aqhbci/medium.h>
00075 #include <aqhbci/user.h>
00076 #include <aqhbci/account.h>
00077 #include <aqhbci/message.h>
00078 #include <aqhbci/customer.h>
00079 #include <aqhbci/user.h>
00080
00081 #ifdef __cplusplus
00082 extern "C" {
00083 #endif
00084
00085
00090 AQHBCI_API
00091 AH_HBCI *AH_HBCI_new(AB_PROVIDER *pro);
00092 AQHBCI_API
00093 void AH_HBCI_free(AH_HBCI *hbci);
00101 AQHBCI_API
00102 const char *AH_HBCI_GetProductName(const AH_HBCI *hbci);
00103 AQHBCI_API
00104 void AH_HBCI_SetProductName(AH_HBCI *hbci, const char *s);
00105
00106 AQHBCI_API
00107 const char *AH_HBCI_GetProductVersion(const AH_HBCI *hbci);
00108 AQHBCI_API
00109 void AH_HBCI_SetProductVersion(AH_HBCI *hbci, const char *s);
00110
00111 AQHBCI_API
00112 AB_BANKING *AH_HBCI_GetBankingApi(const AH_HBCI *hbci);
00113 AQHBCI_API
00114 AB_PROVIDER *AH_HBCI_GetProvider(const AH_HBCI *hbci);
00115
00120 int AH_HBCI_Init(AH_HBCI *hbci);
00121 int AH_HBCI_Fini(AH_HBCI *hbci);
00122
00123
00124
00125 AQHBCI_API
00126 AH_MEDIUM*
00127 AH_HBCI_MediumFactory(AH_HBCI *hbci,
00128 const char *typeName,
00129 const char *subTypeName,
00130 const char *mediumName);
00131
00132 AQHBCI_API
00133 AH_MEDIUM*
00134 AH_HBCI_MediumFactoryDb(AH_HBCI *hbci,
00135 const char *typeName,
00136 const char *subTypeName,
00137 GWEN_DB_NODE *db);
00138
00139 AQHBCI_API
00140 AH_MEDIUM *AH_HBCI_FindMedium(const AH_HBCI *hbci,
00141 const char *typeName,
00142 const char *mediumName);
00143
00144 AQHBCI_API
00145 AH_MEDIUM *AH_HBCI_SelectMedium(AH_HBCI *hbci,
00146 const char *typeName,
00147 const char *subTypeName,
00148 const char *mediumName);
00149
00150 AQHBCI_API
00151 AH_MEDIUM *AH_HBCI_SelectMediumDb(AH_HBCI *hbci,
00152 const char *typeName,
00153 const char *subTypeName,
00154 GWEN_DB_NODE *db);
00155
00156 AQHBCI_API
00157 int AH_HBCI_AddMedium(AH_HBCI *hbci, AH_MEDIUM *m);
00158
00159 AQHBCI_API
00160 const AH_MEDIUM_LIST *AH_HBCI_GetMediaList(const AH_HBCI *hbci);
00161
00162
00170 AQHBCI_API
00171 int AH_HBCI_RemoveMedium(AH_HBCI *hbci, AH_MEDIUM *m);
00172
00173
00174 AQHBCI_API
00175 int AH_HBCI_UnmountCurrentMedium(AH_HBCI *hbci);
00176
00177
00178 AQHBCI_API
00179 GWEN_PLUGIN_DESCRIPTION_LIST2*
00180 AH_HBCI_GetMediumPluginDescrs(AH_HBCI *hbci,
00181 GWEN_CRYPTTOKEN_DEVICE dev);
00182
00183 AQHBCI_API
00184 int AH_HBCI_CheckMedium(AH_HBCI *hbci,
00185 GWEN_CRYPTTOKEN_DEVICE dev,
00186 GWEN_BUFFER *mtypeName,
00187 GWEN_BUFFER *msubTypeName,
00188 GWEN_BUFFER *mediumName);
00189
00190
00191
00192
00193 AQHBCI_API
00194 AH_BANK *AH_HBCI_FindBank(const AH_HBCI *hbci,
00195 int country,
00196 const char *bankId);
00197
00198 AQHBCI_API
00199 AH_BANK_LIST2 *AH_HBCI_GetBanks(const AH_HBCI *hbci,
00200 int country,
00201 const char *bankId);
00202
00203 AQHBCI_API
00204 int AH_HBCI_AddBank(AH_HBCI *hbci, AH_BANK *b);
00205 AQHBCI_API
00206
00207 AQHBCI_API
00208 int AH_HBCI_RemoveBank(AH_HBCI *hbci, AH_BANK *b);
00209
00210
00211 AQHBCI_API
00212 AH_CUSTOMER *AH_HBCI_FindCustomer(AH_HBCI *hbci,
00213 int country,
00214 const char *bankId,
00215 const char *userId,
00216 const char *customerId);
00217
00218 AQHBCI_API
00219 AH_CUSTOMER_LIST2 *AH_HBCI_GetCustomers(AH_HBCI *hbci,
00220 int country,
00221 const char *bankId,
00222 const char *userId,
00223 const char *customerId);
00224
00225 AQHBCI_API
00226 AH_ACCOUNT *AH_HBCI_FindAccount(AH_HBCI *hbci,
00227 int country,
00228 const char *bankId,
00229 const char *accountId);
00230
00231 AQHBCI_API
00232 AH_ACCOUNT_LIST2 *AH_HBCI_GetAccounts(AH_HBCI *hbci,
00233 int country,
00234 const char *bankId,
00235 const char *accountId);
00236
00237
00238 AQHBCI_API
00239 AH_USER *AH_HBCI_FindUser(AH_HBCI *hbci,
00240 int country,
00241 const char *bankId,
00242 const char *userId);
00243
00244 AQHBCI_API
00245 AH_USER_LIST2 *AH_HBCI_GetUsers(AH_HBCI *hbci,
00246 int country,
00247 const char *bankId,
00248 const char *userId);
00249
00250
00251
00252 int AH_HBCI_AddBankPath(const AH_HBCI *hbci,
00253 const AH_BANK *b,
00254 GWEN_BUFFER *nbuf);
00255 int AH_HBCI_AddUserPath(const AH_HBCI *hbci,
00256 const AH_USER *u,
00257 GWEN_BUFFER *nbuf);
00258 int AH_HBCI_AddCustomerPath(const AH_HBCI *hbci,
00259 const AH_CUSTOMER *cu,
00260 GWEN_BUFFER *nbuf);
00261
00262 int AH_HBCI_AddAccountPath(const AH_HBCI *hbci,
00263 const AH_ACCOUNT *a,
00264 GWEN_BUFFER *nbuf);
00265
00266
00267
00268 int AH_HBCI_AddBankCertFolder(AH_HBCI *hbci,
00269 AH_BANK *b,
00270 GWEN_BUFFER *nbuf);
00271 int AH_HBCI_RemoveAllBankCerts(AH_HBCI *hbci, AH_BANK *b);
00272
00273
00274 int AH_HBCI_SaveMessage(AH_HBCI *hbci,
00275 const AH_CUSTOMER *cu,
00276 GWEN_DB_NODE *dbMsg);
00277
00278
00279 GWEN_DB_NODE *AH_HBCI_GetSharedRuntimeData(const AH_HBCI *hbci);
00280
00281 int AH_HBCI_GetTransferTimeout(const AH_HBCI *hbci);
00282 void AH_HBCI_SetTransferTimeout(AH_HBCI *hbci, int i);
00283
00284
00285 int AH_HBCI_GetConnectTimeout(const AH_HBCI *hbci);
00286 void AH_HBCI_SetConnectTimeout(AH_HBCI *hbci, int i);
00287
00288
00289 void AH_HBCI_HbciToUtf8(const char *p,
00290 int size,
00291 GWEN_BUFFER *buf);
00292
00293
00294 #ifdef __cplusplus
00295 }
00296 #endif
00297
00298 #endif
00299
00300
00301