/usr/include/openct/openct.h is in libopenct1-dev 0.6.20-1.2.
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 | /*
* Main OpenCT include file
*
* Copyright (C) 2003, Olaf Kirch <okir@suse.de>
*/
#ifndef OPENCT_OPENCT_H
#define OPENCT_OPENCT_H
#ifdef __cplusplus
extern "C" {
#endif
#include <sys/types.h>
/* Various implementation limits */
#define OPENCT_MAX_READERS 16
#define OPENCT_MAX_SLOTS 8
typedef struct ct_info {
char ct_name[64];
unsigned int ct_slots;
unsigned int ct_card[OPENCT_MAX_SLOTS];
unsigned ct_display : 1,
ct_keypad : 1;
pid_t ct_pid;
} ct_info_t;
typedef struct ct_handle ct_handle;
#define IFD_CARD_PRESENT 0x0001
#define IFD_CARD_STATUS_CHANGED 0x0002
/* Lock types
* - shared locks allow concurrent access from
* other applications run by the same user.
* Used e.g. by pkcs11 login.
* - exclusive locks deny any access by other
* applications.
*
* When a lock is granted, a lock handle is passed
* to the client, which it must present in the
* subsequent unlock call.
*/
typedef unsigned int ct_lock_handle;
enum {
IFD_LOCK_SHARED,
IFD_LOCK_EXCLUSIVE
};
/*
* PIN encoding types
*/
enum {
IFD_PIN_ENCODING_BCD,
IFD_PIN_ENCODING_ASCII
};
extern int ct_status(const ct_info_t **);
extern int ct_reader_info(unsigned int, ct_info_t *);
extern ct_handle * ct_reader_connect(unsigned int);
extern void ct_reader_disconnect(ct_handle *);
extern int ct_reader_status(ct_handle *, ct_info_t *);
extern int ct_card_status(ct_handle *h, unsigned int slot, int *status);
extern int ct_card_set_protocol(ct_handle *h, unsigned int slot,
unsigned int protocol);
extern int ct_card_reset(ct_handle *h, unsigned int slot,
void *atr, size_t atr_len);
extern int ct_card_request(ct_handle *h, unsigned int slot,
unsigned int timeout, const char *message,
void *atr, size_t atr_len);
extern int ct_card_lock(ct_handle *h, unsigned int slot,
int type, ct_lock_handle *);
extern int ct_card_unlock(ct_handle *h, unsigned int slot,
ct_lock_handle);
extern int ct_card_transact(ct_handle *h, unsigned int slot,
const void *apdu, size_t apdu_len,
void *recv_buf, size_t recv_len);
extern int ct_card_verify(ct_handle *h, unsigned int slot,
unsigned int timeout, const char *prompt,
unsigned int pin_encoding,
unsigned int pin_length,
unsigned int pin_offset,
const void *send_buf, size_t send_len,
void *recv_buf, size_t recv_len);
extern int ct_card_read_memory(ct_handle *, unsigned int slot,
unsigned short address,
void *recv_buf, size_t recv_len);
extern int ct_card_write_memory(ct_handle *, unsigned int slot,
unsigned short address,
const void *send_buf, size_t send_len);
extern int ct_status_destroy(void);
extern int ct_status_clear(unsigned int, const char *);
extern ct_info_t * ct_status_alloc_slot(int *);
extern int ct_status_update(ct_info_t *);
#ifdef __cplusplus
}
#endif
#endif /* OPENCT_OPENCT_H */
|