1 /***************************************************************************
2     begin       : Mon Mar 01 2004
3     copyright   : (C) 2018 by Martin Preuss
4     email       : martin@libchipcard.de
5 
6  ***************************************************************************
7  *          Please see toplevel file COPYING for license details           *
8  ***************************************************************************/
9 
10 
11 #ifndef AQEBICS_AQEBICS_H
12 #define AQEBICS_AQEBICS_H
13 
14 
15 
16 #include <aqbanking/system.h>
17 #include <gwenhywfar/types.h>
18 
19 /* ___________________________________________________________________________*/
20 #if 0
21 
22 #ifdef BUILDING_AQEBICS
23 # /* building AqEBICS */
24 # if AQBANKING_SYS_IS_WINDOWS
25 #   /* for windows */
26 #   ifdef __declspec
27 #     define AQEBICS_API __declspec (dllexport)
28 #   else /* if __declspec */
29 #     define AQEBICS_API
30 #   endif /* if NOT __declspec */
31 # else
32 #   /* for non-win32 */
33 #   ifdef GCC_WITH_VISIBILITY_ATTRIBUTE
34 #     define AQEBICS_API __attribute__((visibility("default")))
35 #   else
36 #     define AQEBICS_API
37 #   endif
38 # endif
39 #else
40 # /* not building AqEBICS */
41 # if AQBANKING_SYS_IS_WINDOWS
42 #   /* for windows */
43 #   ifdef __declspec
44 #     define AQEBICS_API __declspec (dllimport)
45 #   else /* if __declspec */
46 #     define AQEBICS_API
47 #   endif /* if NOT __declspec */
48 # else
49 #   /* for non-win32 */
50 #   define AQEBICS_API
51 # endif
52 #endif
53 
54 #endif
55 /* ___________________________________________________________________________*/
56 
57 
58 /* no longer export symbols */
59 #define AQEBICS_API
60 
61 
62 #define EBC_PROVIDER_NAME "AQEBICS"
63 
64 #define AQEBICS_LOGDOMAIN "aqebics"
65 
66 #define EBICS_BUFFER_MAX_HARD_LIMIT (256*1024*1024)
67 
68 typedef uint32_t EB_RC;
69 
70 
71 #define AQEBIC_RC_GET_CLASS(x)  ((x>>4) & 0xff)
72 #define AQEBIC_RC_GET_GRP(x)    ((x>>2) & 0xf)
73 #define AQEBIC_RC_GET_CODE(x)    (x & 0xff)
74 
75 #define AQEBIC_RC_CLASS_INFO    0
76 #define AQEBIC_RC_CLASS_NOTICE  1
77 #define AQEBIC_RC_CLASS_WARNING 3
78 #define AQEBIC_RC_CLASS_ERROR   6
79 #define AQEBIC_RC_CLASS_FATAL   9
80 
81 #define AQEBICS_RC_IS_INFO(x) (AQEBIC_RC_GET_CLASS(x)==AQEBIC_RC_CLASS_INFO)
82 #define AQEBICS_RC_IS_NOTICE(x) (AQEBIC_RC_GET_CLASS(x)==AQEBIC_RC_CLASS_NOTICE)
83 #define AQEBICS_RC_IS_WARNING(x) (AQEBIC_RC_GET_CLASS(x)==AQEBIC_RC_CLASS_WARNING)
84 #define AQEBICS_RC_IS_ERROR(x)  (AQEBIC_RC_GET_CLASS(x)==AQEBIC_RC_CLASS_ERROR)
85 #define AQEBICS_RC_IS_FATAL(x)  (AQEBIC_RC_GET_CLASS(x)==AQEBIC_RC_CLASS_FATAL)
86 
87 #define AQEBICS_RC_GRP_NONE  0
88 #define AQEBICS_RC_GRP_TRANS 1
89 #define AQEBICS_RC_GRP_KEY   2
90 #define AQEBICS_RC_GRP_PRE   3
91 
92 #define AQEBICS_RC_NEW(class, grp, code) \
93   (((class & 0xff)<<4) |\
94   0x1000 | \
95   ((grp & 0xf)<<2) |\
96   (code & 0xff))
97 
98 
99 #define EB_RC_OK                           0x000000
100 #define EB_RC_DOWNLOAD_POSTPROCESS_DONE    0x011000
101 #define EB_RC_DOWNLOAD_POSTPROCESS_SKIPPED 0x011001
102 #define EB_RC_TX_SEGMENT_NUMBER_UNDERRUN   0x011101
103 #define EB_RC_AUTHENTICATION_FAILED        0x061001
104 #define EB_RC_INVALID_REQUEST              0x061002
105 #define EB_RC_INTERNAL_ERROR               0x061099
106 #define EB_RC_TX_RECOVERY_SYNC             0x061101
107 #define EB_RC_INVALID_USER_OR_STATE        0x091002
108 #define EB_RC_USER_UNKNOWN                 0x091003
109 #define EB_RC_INVALID_USER_STATE           0x091004
110 #define EB_RC_INVALID_ORDER_TYPE           0x091005
111 #define EB_RC_UNSUPPORTED_ORDER_TYPE       0x091006
112 #define EB_RC_USER_AUTHENTICATION_REQUIRED 0x091007
113 #define EB_RC_BANK_PUBKEY_UPDATE_REQUIRED  0x091008
114 #define EB_RC_SEGMENT_SIZE_EXCEEDED        0x091009
115 #define EB_RC_TX_UNKNOWN_TXID              0x091101
116 #define EB_RC_TX_ABORT                     0x091102
117 #define EB_RC_TX_MESSAGE_REPLAY            0x091103
118 #define EB_RC_TX_SEGMENT_NUMBER_EXCEEDED   0x091104
119 #define EB_RC_AUTHORISATION_FAILED         0x090003
120 #define EB_RC_NO_DOWNLOAD_DATA_AVAILABLE   0x090005
121 
122 
123 /* fachliche codes (key management) */
124 #define EB_RC_KEYMGMT_UNSUPPORTED_VERSION_SIGNATURE      0x091201
125 #define EB_RC_KEYMGMT_UNSUPPORTED_VERSION_AUTHENTICATION 0x091202
126 #define EB_RC_KEYMGMT_UNSUPPORTED_VERSION_ENCRYPTION     0x091203
127 #define EB_RC_KEYMGMT_KEYLENGTH_ERROR_SIGNATURE          0x091204
128 #define EB_RC_KEYMGMT_KEYLENGTH_ERROR_AUTHENTICATION     0x091205
129 #define EB_RC_KEYMGMT_KEYLENGTH_ERROR_ENCRYPTION         0x091206
130 #define EB_RC_KEYMGMT_NO_X509_SUPPORT                    0x091207
131 
132 #endif
133 
134 
135