This file is indexed.

/usr/include/libchipcard5/chipcard/chipcard.h is in libchipcard-dev 5.0.3beta-4ubuntu1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
/***************************************************************************
    begin       : Tue Dec 23 2003
    copyright   : (C) 2003 by Martin Preuss
    email       : martin@libchipcard.de

 ***************************************************************************
 *          Please see toplevel file COPYING for license details           *
 ***************************************************************************/


#ifndef CHIPCARD_CHIPCARD_H
#define CHIPCARD_CHIPCARD_H

#define CHIPCARD_SYS_IS_WINDOWS 0


#ifdef LCC_IS_SUBPROJECT
# define CHIPCARD_API
# define CHIPCARD_EXPORT
# define CHIPCARD_NOEXPORT
#else
# ifdef BUILDING_CHIPCARD
   /* building Gwenhywfar */
#  if CHIPCARD_SYS_IS_WINDOWS
     /* for windows */
#    ifdef __declspec
#      define CHIPCARD_API __declspec (dllexport)
#    else /* if __declspec */
#      define CHIPCARD_API
#    endif /* if NOT __declspec */
#  else
     /* for non-win32 */
#    ifdef GCC_WITH_VISIBILITY_ATTRIBUTE
#      define CHIPCARD_API __attribute__((visibility("default")))
#    else
#      define CHIPCARD_API
#    endif
#  endif
# else
   /* not building Gwenhywfar */
#  if CHIPCARD_SYS_IS_WINDOWS
     /* for windows */
#    ifdef __declspec
#      define CHIPCARD_API __declspec (dllimport)
#    else /* if __declspec */
#      define CHIPCARD_API
#    endif /* if NOT __declspec */
#  else
     /* for non-win32 */
#    define CHIPCARD_API
#  endif
# endif

# ifdef GCC_WITH_VISIBILITY_ATTRIBUTE
#  define CHIPCARD_EXPORT __attribute__((visibility("default")))
#  define CHIPCARD_NOEXPORT __attribute__((visibility("hidden")))
# else
#  define CHIPCARD_EXPORT
#  define CHIPCARD_NOEXPORT
# endif
#endif


#if CHIPCARD_SYS_IS_WINDOWS
# define CHIPCARD_CB __stdcall
#else
# define CHIPCARD_CB
#endif


#ifndef CHIPCARD_NOWARN_DEPRECATED
# ifdef __GNUC__
#  define CHIPCARD_DEPRECATED __attribute((__deprecated__))
# else
#  define CHIPCARD_DEPRECATED
# endif
# else
#  define CHIPCARD_DEPRECATED
#endif

#include <gwenhywfar/db.h>
#include <gwenhywfar/xml.h>

#include <inttypes.h>


#define LC_DEFAULT_PORT 7392 /* FIXME: make this adjustable by configure */
#define LC_DEFAULT_UDS_SOCK "/var/run/chipcard.comm"

/** Error codes */
/*@{*/
#define LC_ERROR_NONE                  0x00000000
#define LC_ERROR_GENERIC               0x00000001
#define LC_ERROR_INVALID               0x00000002
#define LC_ERROR_CARD_REMOVED          0x00000003
#define LC_ERROR_CARD_NOT_OWNED        0x00000004
#define LC_ERROR_NOT_SUPPORTED         0x00000005
#define LC_ERROR_SETUP                 0x00000006
#define LC_ERROR_NO_DATA               0x00000007
#define LC_ERROR_LOCKED_BY_OTHER       0x00000008
#define LC_ERROR_NOT_LOCKED            0x00000009

#define LC_ERROR_BAD_RESPONSE          0x0000000a
#define LC_ERROR_NO_SLOTS_CONNECTED    0x0000000b
#define LC_ERROR_NO_SLOTS_DISCONNECTED 0x0000000c
#define LC_ERROR_NO_SLOTS_AVAILABLE    0x0000000d
#define LC_ERROR_BAD_PIN               0x0000000e
#define LC_ERROR_USER_ABORTED          0x0000000f
#define LC_ERROR_CARD_DESTROYED        0x00000010
#define LC_ERROR_READER_REMOVED        0x00000011
#define LC_ERROR_TIMEOUT               0x00000012
#define LC_ERROR_IPC                   0x00000013
#define LC_ERROR_BUFFER_OVERFLOW       0x00000014
/*@}*/
const char *LC_Error_toString(uint32_t err);


#define LC_LOGDOMAIN "ccclient"

/** Reader flags */
/*@{*/
#define LC_READER_FLAGS_KEYPAD             0x00010000
#define LC_READER_FLAGS_DISPLAY            0x00020000
#define LC_READER_FLAGS_NOINFO             0x00040000
#define LC_READER_FLAGS_REMOTE             0x00080000
#define LC_READER_FLAGS_AUTO               0x00100000
#define LC_READER_FLAGS_SUSPENDED_CHECKS   0x00200000
#define LC_READER_FLAGS_DRIVER_HAS_VERIFY  0x00400000
#define LC_READER_FLAGS_KEEP_RUNNING       0x00800000
#define LC_READER_FLAGS_LOW_WRITE_BOUNDARY 0x01000000
#define LC_READER_FLAGS_NO_MEMORY_SW       0x02000000
/*@}*/

CHIPCARD_API
uint32_t LC_ReaderFlags_fromXml(GWEN_XMLNODE *node, const char *name);
CHIPCARD_API
uint32_t LC_ReaderFlags_fromDb(GWEN_DB_NODE *db, const char *name);
CHIPCARD_API void LC_ReaderFlags_toDb(GWEN_DB_NODE *db,
                                      const char *name,
                                      uint32_t fl);

/** driver is a remote driver, not started by the server */
#define LC_DRIVER_FLAGS_RUNTIME_MASK  0xffff0000
#define LC_DRIVER_FLAGS_AUTO          0x00010000
#define LC_DRIVER_FLAGS_REMOTE        0x00020000
#define LC_DRIVER_FLAGS_CONFIG        0x00040000

#define LC_DRIVER_FLAGS_HAS_VERIFY_FN 0x00000001
#define LC_DRIVER_FLAGS_HAS_MODIFY_FN 0x00000002

CHIPCARD_API
uint32_t LC_DriverFlags_fromDb(GWEN_DB_NODE *db, const char *name);

CHIPCARD_API
int LC_DriverFlags_toDb(GWEN_DB_NODE *db,
                        const char *name,
                        uint32_t flags);


/** service provided by a client */
#define LC_SERVICE_FLAGS_RUNTIME_MASK (\
    LC_SERVICE_FLAGS_CLIENT \
    )
#define LC_SERVICE_FLAGS_CLIENT   0x00000001
#define LC_SERVICE_FLAGS_AUTOLOAD 0x00000002
#define LC_SERVICE_FLAGS_SILENT   0x00000004

CHIPCARD_API
uint32_t LC_ServiceFlags_fromDb(GWEN_DB_NODE *db, const char *name);
CHIPCARD_API void LC_ServiceFlags_toDb(GWEN_DB_NODE *db,
                                       const char *name,
                                       uint32_t fl);


/** Notification flags */
/*@{*/
#define LC_NOTIFY_FLAGS_DRIVER_MASK      0x0000003f
#define LC_NOTIFY_FLAGS_DRIVER_START     0x00000001
#define LC_NOTIFY_FLAGS_DRIVER_UP        0x00000002
#define LC_NOTIFY_FLAGS_DRIVER_DOWN      0x00000004
#define LC_NOTIFY_FLAGS_DRIVER_ERROR     0x00000008
#define LC_NOTIFY_FLAGS_DRIVER_ADD       0x00000010
#define LC_NOTIFY_FLAGS_DRIVER_DEL       0x00000020

#define LC_NOTIFY_FLAGS_READER_MASK      0x00000fc0
#define LC_NOTIFY_FLAGS_READER_START     0x00000040
#define LC_NOTIFY_FLAGS_READER_UP        0x00000080
#define LC_NOTIFY_FLAGS_READER_DOWN      0x00000100
#define LC_NOTIFY_FLAGS_READER_ERROR     0x00000200
#define LC_NOTIFY_FLAGS_READER_ADD       0x00000400
#define LC_NOTIFY_FLAGS_READER_DEL       0x00000800

#define LC_NOTIFY_FLAGS_SERVICE_MASK     0x0000f000
#define LC_NOTIFY_FLAGS_SERVICE_START    0x00001000
#define LC_NOTIFY_FLAGS_SERVICE_UP       0x00002000
#define LC_NOTIFY_FLAGS_SERVICE_DOWN     0x00004000
#define LC_NOTIFY_FLAGS_SERVICE_ERROR    0x00008000

#define LC_NOTIFY_FLAGS_CARD_MASK        0x000f0000
#define LC_NOTIFY_FLAGS_CARD_INSERTED    0x00010000
#define LC_NOTIFY_FLAGS_CARD_REMOVED     0x00020000
#define LC_NOTIFY_FLAGS_CARD_RFU1        0x00040000
#define LC_NOTIFY_FLAGS_CARD_RFU2        0x00080000

#define LC_NOTIFY_FLAGS_CLIENT_MASK      0xfff00000
#define LC_NOTIFY_FLAGS_CLIENT_UP        0x00100000
#define LC_NOTIFY_FLAGS_CLIENT_DOWN      0x00200000
#define LC_NOTIFY_FLAGS_CLIENT_STARTWAIT 0x00400000
#define LC_NOTIFY_FLAGS_CLIENT_STOPWAIT  0x00800000
#define LC_NOTIFY_FLAGS_CLIENT_TAKECARD  0x01000000
#define LC_NOTIFY_FLAGS_CLIENT_GOTCARD   0x02000000

#define LC_NOTIFY_FLAGS_CLIENT_CMDSEND   0x04000000
#define LC_NOTIFY_FLAGS_CLIENT_CMDRECV   0x08000000

#define LC_NOTIFY_FLAGS_SINGLESHOT       0x80000000

#define LC_NOTIFY_FLAGS_PRIVILEGED (\
  LC_NOTIFY_FLAGS_CLIENT_CMDSEND |\
  LC_NOTIFY_FLAGS_CLIENT_CMDRECV)

CHIPCARD_API
uint32_t LC_NotifyFlags_fromDb(GWEN_DB_NODE *db, const char *name);
CHIPCARD_API void LC_NotifyFlags_toDb(GWEN_DB_NODE *db,
                                      const char *name,
                                      uint32_t fl);


/*@}*/


/** @name Notify Types/Codes
 *
 *
 */
/*@{*/
#define LC_NOTIFY_TYPE_DRIVER           "driver"
#define LC_NOTIFY_CODE_DRIVER_START     "start"
#define LC_NOTIFY_CODE_DRIVER_UP        "up"
#define LC_NOTIFY_CODE_DRIVER_DOWN      "down"
#define LC_NOTIFY_CODE_DRIVER_ERROR     "error"
#define LC_NOTIFY_CODE_DRIVER_ADD       "add"
#define LC_NOTIFY_CODE_DRIVER_DEL       "del"

#define LC_NOTIFY_TYPE_READER           "reader"
#define LC_NOTIFY_CODE_READER_START     "start"
#define LC_NOTIFY_CODE_READER_UP        "up"
#define LC_NOTIFY_CODE_READER_DOWN      "down"
#define LC_NOTIFY_CODE_READER_ERROR     "error"
#define LC_NOTIFY_CODE_READER_ADD       "add"
#define LC_NOTIFY_CODE_READER_DEL       "del"

#define LC_NOTIFY_TYPE_SERVICE          "service"
#define LC_NOTIFY_CODE_SERVICE_START    "start"
#define LC_NOTIFY_CODE_SERVICE_UP       "up"
#define LC_NOTIFY_CODE_SERVICE_DOWN     "down"
#define LC_NOTIFY_CODE_SERVICE_ERROR    "error"

#define LC_NOTIFY_TYPE_CARD             "card"
#define LC_NOTIFY_CODE_CARD_INSERTED    "inserted"
#define LC_NOTIFY_CODE_CARD_REMOVED     "removed"
#define LC_NOTIFY_CODE_CARD_RFU1        "rfu1"
#define LC_NOTIFY_CODE_CARD_RFU2        "rfu2"

#define LC_NOTIFY_TYPE_CLIENT           "client"
#define LC_NOTIFY_CODE_CLIENT_UP        "up"
#define LC_NOTIFY_CODE_CLIENT_DOWN      "down"
#define LC_NOTIFY_CODE_CLIENT_STARTWAIT "startwait"
#define LC_NOTIFY_CODE_CLIENT_STOPWAIT  "stopwait"
#define LC_NOTIFY_CODE_CLIENT_TAKECARD  "takecard"
#define LC_NOTIFY_CODE_CLIENT_GOTCARD   "gotcard"

#define LC_NOTIFY_CODE_CLIENT_CMDSEND   "cmdsend"
#define LC_NOTIFY_CODE_CLIENT_CMDRECV   "cmdrecv"
/*@}*/




typedef enum {
  LC_DriverStatusDown=0,
  LC_DriverStatusWaitForStart,
  LC_DriverStatusStarted,
  LC_DriverStatusUp,
  LC_DriverStatusStopping,
  LC_DriverStatusAborted,
  LC_DriverStatusDisabled,
  LC_DriverStatusUnknown=999
} LC_DRIVER_STATUS;

CHIPCARD_API LC_DRIVER_STATUS LC_DriverStatus_fromString(const char *s);
CHIPCARD_API const char *LC_DriverStatus_toString(LC_DRIVER_STATUS dst);


typedef enum {
  LC_ReaderStatusDown=0,
  LC_ReaderStatusWaitForStart,
  LC_ReaderStatusWaitForDriver,
  LC_ReaderStatusWaitForReaderUp,
  LC_ReaderStatusWaitForReaderDown,
  LC_ReaderStatusUp,
  LC_ReaderStatusAborted,
  LC_ReaderStatusDisabled,
  LC_ReaderStatusHwAdd=900,  /* internal status code */
  LC_ReaderStatusHwDel=901,  /* internal status code */
  LC_ReaderStatusUnknown=999
} LC_READER_STATUS;

CHIPCARD_API LC_READER_STATUS LC_ReaderStatus_fromString(const char *s);
CHIPCARD_API const char *LC_ReaderStatus_toString(LC_READER_STATUS rst);


typedef enum {
  LC_ServiceStatusDown=0,
  LC_ServiceStatusWaitForStart,
  LC_ServiceStatusStarted,
  LC_ServiceStatusUp,
  LC_ServiceStatusSilentRunning,
  LC_ServiceStatusStopping,
  LC_ServiceStatusAborted,
  LC_ServiceStatusDisabled,
  LC_ServiceStatusUnknown=999
} LC_SERVICE_STATUS;

CHIPCARD_API LC_SERVICE_STATUS LC_ServiceStatus_fromString(const char *s);
CHIPCARD_API const char *LC_ServiceStatus_toString(LC_SERVICE_STATUS st);


typedef enum {
  LC_CardStatusInserted=0,
  LC_CardStatusRemoved,
  LC_CardStatusOrphaned,

  LC_CardStatusUnknown=999
} LC_CARD_STATUS;


typedef enum {
  LC_CardTypeUnknown=0,
  LC_CardTypeProcessor,
  LC_CardTypeMemory
} LC_CARD_TYPE;


#endif /* CHIPCARD_CHIPCARD_H */