medium.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  $RCSfile: medium.h,v $
00003                              -------------------
00004     cvs         : $Id: medium.h,v 1.4 2006/02/22 19:39:00 aquamaniac Exp $
00005     begin       : Mon Mar 01 2004
00006     copyright   : (C) 2004 by Martin Preuss
00007     email       : martin@libchipcard.de
00008 
00009  ***************************************************************************
00010  *          Please see toplevel file COPYING for license details           *
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  /* defgroup */
00279 
00280 
00281 #endif /* AH_MEDIUM_H */
00282 
00283 

Generated on Tue Apr 10 19:04:09 2007 for aqbanking by  doxygen 1.4.7