00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014 #ifndef AH_MEDIUM_H
00015 #define AH_MEDIUM_H
00016
00017 #include <gwenhywfar/misc.h>
00018 #include <gwenhywfar/inherit.h>
00019 #include <gwenhywfar/libloader.h>
00020 #include <gwenhywfar/buffer.h>
00021 #include <gwenhywfar/plugin.h>
00022
00023 #include <aqbanking/banking.h>
00024 #include <aqhbci/aqhbci.h>
00025
00026
00034
00035
00040 #define AH_MEDIUM_FLAGS_DISABLE_SMALLER_SIGNATURE 0x00000001
00041
00042
00043 #ifdef __cplusplus
00044 extern "C" {
00045 #endif
00046 typedef struct AH_MEDIUM AH_MEDIUM;
00047
00048 typedef enum {
00049 AH_MediumTypeDDV=0,
00050 AH_MediumTypeRDH,
00051 AH_MediumTypePINTAN
00052 } AH_MEDIUMTYPE;
00053
00054
00055 typedef enum {
00056 AH_MediumResultOk=0,
00057 AH_MediumResultNoKey,
00058 AH_MediumResultBadKey,
00059 AH_MediumResultSignSeq,
00060 AH_MediumResultInvalidSignature,
00061 AH_MediumResultGenericError,
00062 AH_MediumResultNotSupported
00063 } AH_MEDIUM_RESULT;
00064
00065
00066 GWEN_LIST_FUNCTION_LIB_DEFS(AH_MEDIUM, AH_Medium, AQHBCI_API);
00067
00068 #ifdef __cplusplus
00069 }
00070 #endif
00071
00072
00073 #include <gwenhywfar/buffer.h>
00074 #include <gwenhywfar/crypt.h>
00075
00076 #include <aqhbci/mediumctx.h>
00077
00078 #ifdef __cplusplus
00079 extern "C" {
00080 #endif
00081
00082
00083
00093 AQHBCI_API
00094 void AH_Medium_free(AH_MEDIUM *m);
00095
00106 AQHBCI_API
00107 void AH_Medium_Attach(AH_MEDIUM *m);
00108
00117
00118 AQHBCI_API
00119 GWEN_TYPE_UINT32 AH_Medium_GetUniqueId(const AH_MEDIUM *m);
00120 AQHBCI_API
00121 void AH_Medium_SetUniqueId(AH_MEDIUM *m, GWEN_TYPE_UINT32 id);
00122
00123 AQHBCI_API
00124 const char *AH_Medium_GetMediumTypeName(const AH_MEDIUM *m);
00125
00126 AQHBCI_API
00127 const char *AH_Medium_GetMediumSubTypeName(const AH_MEDIUM *m);
00128
00129 AQHBCI_API
00130 const char *AH_Medium_GetMediumName(const AH_MEDIUM *m);
00131
00132 AQHBCI_API
00133 void AH_Medium_SetMediumName(AH_MEDIUM *m, const char *s);
00134
00141 AQHBCI_API
00142 const char *AH_Medium_GetDescriptiveName(const AH_MEDIUM *m);
00143 AQHBCI_API
00144 void AH_Medium_SetDescriptiveName(AH_MEDIUM *m, const char *s);
00145
00146
00147 AQHBCI_API
00148 GWEN_TYPE_UINT32 AH_Medium_GetFlags(const AH_MEDIUM *m);
00149 AQHBCI_API
00150 void AH_Medium_SetFlags(AH_MEDIUM *m, GWEN_TYPE_UINT32 fl);
00151 AQHBCI_API
00152 void AH_Medium_AddFlags(AH_MEDIUM *m, GWEN_TYPE_UINT32 fl);
00153 AQHBCI_API
00154 void AH_Medium_SubFlags(AH_MEDIUM *m, GWEN_TYPE_UINT32 fl);
00155
00156 AQHBCI_API
00157 int AH_Medium_IsMounted(AH_MEDIUM *m);
00158
00159 AQHBCI_API
00160 int AH_Medium_GetTokenIdData(AH_MEDIUM *m, GWEN_BUFFER *buf);
00161
00170
00171 AQHBCI_API
00172 int AH_Medium_SelectContext(AH_MEDIUM *m, int idx);
00173
00174 AQHBCI_API
00175 AH_MEDIUM_CTX *AH_Medium_GetCurrentContext(AH_MEDIUM *m);
00176
00177 AQHBCI_API
00178 int AH_Medium_ReadContext(AH_MEDIUM *m,
00179 int idx,
00180 int *country,
00181 GWEN_BUFFER *bankId,
00182 GWEN_BUFFER *userId,
00183 GWEN_BUFFER *server,
00184 int *port);
00185
00186 AQHBCI_API
00187 int AH_Medium_WriteContext(AH_MEDIUM *m,
00188 int idx,
00189 int country,
00190 const char *bankId,
00191 const char *userId,
00192 const char *server,
00193 int port);
00194
00204
00213 AQHBCI_API
00214 int AH_Medium_Mount(AH_MEDIUM *m);
00215
00221 AQHBCI_API
00222 int AH_Medium_Create(AH_MEDIUM *m);
00223
00231 AQHBCI_API
00232 int AH_Medium_Unmount(AH_MEDIUM *m, int force);
00241
00245 AQHBCI_API
00246 int AH_Medium_ChangePin(AH_MEDIUM *m);
00247
00248
00249 AQHBCI_API
00250 int AH_Medium_CreateKeys(AH_MEDIUM *m);
00251
00252 AQHBCI_API
00253 GWEN_CRYPTKEY *AH_Medium_GetLocalPubSignKey(AH_MEDIUM *m);
00254 AQHBCI_API
00255 GWEN_CRYPTKEY *AH_Medium_GetLocalPubCryptKey(AH_MEDIUM *m);
00256 AQHBCI_API
00257 GWEN_CRYPTKEY *AH_Medium_GetPubSignKey(AH_MEDIUM *m);
00258 AQHBCI_API
00259 GWEN_CRYPTKEY *AH_Medium_GetPubCryptKey(AH_MEDIUM *m);
00260 AQHBCI_API
00261 int AH_Medium_SetPubSignKey(AH_MEDIUM *m, const GWEN_CRYPTKEY *key);
00262 AQHBCI_API
00263 int AH_Medium_SetPubCryptKey(AH_MEDIUM *m, const GWEN_CRYPTKEY *key);
00264
00265 AQHBCI_API
00266 int AH_Medium_ResetServerKeys(AH_MEDIUM *m);
00267 AQHBCI_API
00268 int AH_Medium_ResetUserKeys(AH_MEDIUM *m);
00274 #ifdef __cplusplus
00275 }
00276 #endif
00277
00279
00280
00281 #endif
00282
00283