Main Page | Modules | Class Hierarchy | Alphabetical List | Data Structures | Directories | File List | Data Fields | Globals | Related Pages

medium.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  $RCSfile: medium.h,v $
00003                              -------------------
00004     cvs         : $Id: medium.h,v 1.1 2005/08/05 20:33:12 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/objectref.h> /* for AQHBCI_API */
00025 
00030 #define AH_MEDIUM_FLAGS_DISABLE_SMALLER_SIGNATURE 0x00000001
00031 
00032 
00033 #ifdef __cplusplus
00034 extern "C" {
00035 #endif
00036 typedef struct AH_MEDIUM AH_MEDIUM;
00037 
00038 typedef enum {
00039   AH_MediumTypeDDV=0,
00040   AH_MediumTypeRDH,
00041   AH_MediumTypePINTAN
00042 } AH_MEDIUMTYPE;
00043 
00044 
00045 typedef enum {
00046   AH_MediumResultOk=0,
00047   AH_MediumResultNoKey,
00048   AH_MediumResultBadKey,
00049   AH_MediumResultSignSeq,
00050   AH_MediumResultInvalidSignature,
00051   AH_MediumResultGenericError,
00052   AH_MediumResultNotSupported
00053 } AH_MEDIUM_RESULT;
00054 
00055 
00056 GWEN_LIST_FUNCTION_LIB_DEFS(AH_MEDIUM, AH_Medium, AQHBCI_API);
00057 
00058 #ifdef __cplusplus
00059 }
00060 #endif
00061 
00062 
00063 #include <gwenhywfar/buffer.h>
00064 #include <gwenhywfar/crypt.h>
00065 #include <aqhbci/hbci.h>
00066 
00067 #include <aqhbci/mediumctx.h>
00068 
00069 #ifdef __cplusplus
00070 extern "C" {
00071 #endif
00072 
00073 
00081 
00082 
00092 AQHBCI_API
00093 AH_MEDIUM *AH_Medium_new(AH_HBCI *hbci,
00094                          const char *typeName,
00095                          const char *subTypeName,
00096                          const char *mediumName);
00097 
00103 AQHBCI_API
00104 void AH_Medium_free(AH_MEDIUM *m);
00105 
00116 AQHBCI_API
00117 void AH_Medium_Attach(AH_MEDIUM *m);
00118 
00126 
00127 AQHBCI_API
00128 AH_HBCI *AH_Medium_GetHBCI(const AH_MEDIUM *m);
00129 AQHBCI_API
00130 AB_BANKING *AH_Medium_GetBankingApi(const AH_MEDIUM *m);
00131 
00132 AQHBCI_API
00133 const char *AH_Medium_GetMediumTypeName(const AH_MEDIUM *m);
00134 
00135 AQHBCI_API
00136 const char *AH_Medium_GetMediumSubTypeName(const AH_MEDIUM *m);
00137 
00138 AQHBCI_API
00139 const char *AH_Medium_GetMediumName(const AH_MEDIUM *m);
00140 
00141 AQHBCI_API
00142 void AH_Medium_SetMediumName(AH_MEDIUM *m, const char *s);
00143 
00150 AQHBCI_API
00151 const char *AH_Medium_GetDescriptiveName(const AH_MEDIUM *m);
00152 AQHBCI_API
00153 void AH_Medium_SetDescriptiveName(AH_MEDIUM *m, const char *s);
00154 
00155 
00156 AQHBCI_API
00157 GWEN_TYPE_UINT32 AH_Medium_GetFlags(const AH_MEDIUM *m);
00158 AQHBCI_API
00159 void AH_Medium_SetFlags(AH_MEDIUM *m, GWEN_TYPE_UINT32 fl);
00160 AQHBCI_API
00161 void AH_Medium_AddFlags(AH_MEDIUM *m, GWEN_TYPE_UINT32 fl);
00162 AQHBCI_API
00163 void AH_Medium_SubFlags(AH_MEDIUM *m, GWEN_TYPE_UINT32 fl);
00164 
00165 AQHBCI_API
00166 int AH_Medium_IsMounted(AH_MEDIUM *m);
00167 
00168 AQHBCI_API
00169 int AH_Medium_GetTokenIdData(AH_MEDIUM *m, GWEN_BUFFER *buf);
00170 
00171 
00179 
00180 AQHBCI_API
00181 int AH_Medium_SelectContext(AH_MEDIUM *m, int idx);
00182 
00183 AH_MEDIUM_CTX *AH_Medium_GetCurrentContext(AH_MEDIUM *m);
00184 
00185 AQHBCI_API
00186 int AH_Medium_ReadContext(AH_MEDIUM *m,
00187                           int idx,
00188                           int *country,
00189                           GWEN_BUFFER *bankId,
00190                           GWEN_BUFFER *userId,
00191                           GWEN_BUFFER *server,
00192                           int *port);
00193 
00194 AQHBCI_API
00195 int AH_Medium_WriteContext(AH_MEDIUM *m,
00196                            int idx,
00197                            int country,
00198                            const char *bankId,
00199                            const char *userId,
00200                            const char *server,
00201                            int port);
00202 
00203 
00214 AQHBCI_API
00215 AH_MEDIUM_RESULT AH_Medium_Encrypt(AH_MEDIUM *m,
00216                                    GWEN_BUFFER *msgbuf,
00217                                    GWEN_BUFFER *encryptbuf,
00218                                    GWEN_BUFFER *msgKeyBuffer);
00219 
00222 AQHBCI_API
00223 AH_MEDIUM_RESULT AH_Medium_Decrypt(AH_MEDIUM *m,
00224                                    GWEN_BUFFER *msgbuf,
00225                                    GWEN_BUFFER *decryptbuf,
00226                                    GWEN_BUFFER *msgKeyBuffer);
00257 AQHBCI_API
00258 int AH_Medium_Mount(AH_MEDIUM *m);
00259 
00265 AQHBCI_API
00266 int AH_Medium_Create(AH_MEDIUM *m);
00267 
00275 AQHBCI_API
00276 int AH_Medium_Unmount(AH_MEDIUM *m, int force);
00277 
00278 
00279 
00283 AQHBCI_API
00284 int AH_Medium_ChangePin(AH_MEDIUM *m);
00285 
00286 
00294 AQHBCI_API
00295 int AH_Medium_ToDB(const AH_MEDIUM *m, GWEN_DB_NODE *db);
00296 
00302 AQHBCI_API
00303 int AH_Medium_FromDB(AH_MEDIUM *m, GWEN_DB_NODE *db);
00304 
00307 AQHBCI_API
00308 AH_MEDIUM_RESULT AH_Medium_Sign(AH_MEDIUM *m,
00309                                 GWEN_BUFFER *msgbuf,
00310                                 GWEN_BUFFER *signbuf);
00313 AQHBCI_API
00314 int AH_Medium_GetNextSignSeq(AH_MEDIUM *m);
00315 
00316 
00319 AQHBCI_API
00320 AH_MEDIUM_RESULT AH_Medium_EncryptKey(AH_MEDIUM *m,
00321                                       GWEN_BUFFER *srckey,
00322                                       GWEN_BUFFER *encKey);
00323 
00326 AQHBCI_API
00327 AH_MEDIUM_RESULT AH_Medium_DecryptKey(AH_MEDIUM *m,
00328                                       GWEN_BUFFER *srckey,
00329                                       GWEN_BUFFER *decKey);
00330 
00331 AQHBCI_API
00332 GWEN_BUFFER *AH_Medium_GenerateMsgKey(AH_MEDIUM *m);
00333 
00334 
00340 AQHBCI_API
00341 AH_MEDIUM_RESULT AH_Medium_Verify(AH_MEDIUM *m,
00342                                   GWEN_BUFFER *msgbuf,
00343                                   GWEN_BUFFER *signbuf,
00344                                   int signseq);
00345 
00354 
00355 AQHBCI_API
00356 int AH_Medium_InputPin(AH_MEDIUM *m,
00357                        char *buffer,
00358                        int minLen,
00359                        int maxLen,
00360                        int flags);
00361 
00362 AQHBCI_API
00363 int AH_Medium_SetPinStatus(AH_MEDIUM *m,
00364                            const char *pin,
00365                            AB_BANKING_PINSTATUS status);
00366 
00367 AQHBCI_API
00368 int AH_Medium_InputTan(AH_MEDIUM *m,
00369                        char *buffer,
00370                        int minLen,
00371                        int maxLen);
00372 
00373 AQHBCI_API
00374 int AH_Medium_SetTanStatus(AH_MEDIUM *m,
00375                            const char *tan,
00376                            AB_BANKING_TANSTATUS status);
00377 
00378 
00383  /* defgroup */
00384 
00385 
00386 int AH_Medium_CreateKeys(AH_MEDIUM *m);
00387 
00388 GWEN_CRYPTKEY *AH_Medium_GetLocalPubSignKey(AH_MEDIUM *m);
00389 GWEN_CRYPTKEY *AH_Medium_GetLocalPubCryptKey(AH_MEDIUM *m);
00390 GWEN_CRYPTKEY *AH_Medium_GetPubSignKey(AH_MEDIUM *m);
00391 GWEN_CRYPTKEY *AH_Medium_GetPubCryptKey(AH_MEDIUM *m);
00392 int AH_Medium_SetPubSignKey(AH_MEDIUM *m, const GWEN_CRYPTKEY *key);
00393 int AH_Medium_SetPubCryptKey(AH_MEDIUM *m, const GWEN_CRYPTKEY *key);
00394 
00395 int AH_Medium_ResetServerKeys(AH_MEDIUM *m);
00396 int AH_Medium_ResetUserKeys(AH_MEDIUM *m);
00397 
00398 
00399 
00400 
00401 #ifdef __cplusplus
00402 }
00403 #endif
00404 
00405 #endif /* AH_MEDIUM_H */
00406 
00407 

Generated on Thu Oct 6 14:49:08 2005 for aqbanking by  doxygen 1.4.4