Provided by: libtowitoko-dev_2.0.7-9build1_amd64 bug

NAME

       CT_init,  CT_data,  CT_close   —       Functions  to  handle communication with integrated
       circuit cards and cardterminals

SYNOPSIS

       #include <ctapi.h>

       char CT_init(
             unsigned short ctn,
             unsigned short pn);

       char CT_data(
             unsigned short ctn,
             unsigned char * dad,
             unsigned char * sad,
             unsigned short lenc,
             unsigned char * command,
             unsigned short * lenr,
             unsigned char * response);

       char CT_close(
             unsigned short ctn);

DESCRIPTION

       This manual page  describes  the  CT-API  functions  used  to  handle  communication  with
       integrated  circuit  cards and cardterminals. The CT-API functions are generic, and allows
       the use of memory cards (often referred as synchronous cards) and processor  cards  (often
       referred as asynchronous cards).

       The  CT-API  implementation  is  dependent  on  the  cardterminal  that  is used. For each
       cardterminal  a  CT-API  library  implementation  should  be  provided,  either   by   the
       manufacturer or by third parties.  This manpage is not a complete specification of the CT-
       API, but a general overview of the most common functionalities.

       CT_init() selects and initializes the interface with the cardterminal (f.i.  serial  port,
       USB  bus,  or  any  other type of connector). The CT_init() function must be called before
       communicating with the card or the cardterminal. A unique cardterminal  number  chosen  by
       the caller is assigned by the CT-API library to the initialized connection.

       ctn       Cardterminal number: identifies the connection with the cardterminal for further
                 references. It's chosen by the caller of the function.

       pn        Port number: selects the physical  interface.  The  port  number  assignment  is
                 dependent  on  the  CT-API  implementation.  However  most  serial  cardterminal
                 implementations use the convention of assigning the value 0 to the first  serial
                 port,  1  to the second serial port and so on. See the file /usr/include/ctapi.h
                 of your CT-API implementation for a list of allowed values.

       CT_data() sends a command to the card or to the cardterminal and returns the  response  to
       the calling program.

       ctn       Cardterminal number: the number specified in CT_init()
                  call for this cardterminal.

       dad       Destination  address.  If the command is sent to the cardterminal, it must point
                 to a variable containing the value CT (0x01). If the command is sent to a  card,
                 the  destination address variable must be set to the number identifying the slot
                 of the cardterminal where the card is inserted, ranging  from  ICC1  (0x00)  and
                 ICC2 (0x02) to ICC14 (0x0E).

                 On  the  return of the response, the variable pointed by dad is set to the value
                 HOST (0x02) or REMOTE_HOST (0x05).

       sad       Source address. When the function is called it is usually  set  to  point  to  a
                 variable  with  the value HOST (0x02), although the value REMOTE_HOST (0x05) may
                 ocurr in some applications if the CT-API implementation supports remote calls.

                 On the return of the response, the variable pointed by sad is set to any of  the
                 values from CT (0x01), ICC1 (0x00), ICC2 (0x02) to ICC14 (0x0E).

       lenc      Command length in bytes.

       command   Pointer  to  the  buffer  that  conveys  the  command  to be sent to the card or
                 cardterminal.

       lenr      Before function call, pointer to a variable containig the maximum buffer size in
                 bytes for the response data. After successful function call it contains the size
                 in bytes of the response data.

       response  Pointer to the response data. Memory buffer  of  at  least  the  size  in  bytes
                 specified in lenr must be allocated before calling to the function.

       CT_close() terminates the communication with the cardterminal which has been assigned to a
       logical cardterminal number by the function CT_init(). The function shall  be  called  for
       each  initialized cardtreminal before the end of the program in order to free resources if
       necessary.

       ctn       Cardterminal number: as specified in CT_init()
                  call for this cardterminal.

RETURN VALUE

       CT_init(), CT_data(),         and CT_close() functions return a value of type char.

       OK        Function call was successful.

       ERR_INVALID
                 Invalid parameter or value.

       ERR_CT    Cardterminal Error. The cardterminal is temporarily not  accessible  (busy  with
                 other or internal processes). The problem can be solved by the application.

       ERR_TRANS Transmission  Error.  Transmission  errors  due  to  mechanical,  electrical  or
                 protocol failures. Reset of the cardterminal is necessary.

       ERR_MEMORY
                 Memory assignment error. A memory error occurred (f.i. the allocated  buffer  is
                 too small for the returned data).

       ERR_HTSI  Host  Transport  Service  Interface  error.  Commonly  returned  if the error is
                 produced by the software layer and not in the communication with the hardware.

SEE ALSO

       ctbcs (3).

       The MKT (Multifunktionale KartenTerminals) specifications,  available  for  download  from
       Teletrust  website  http://www.teletrust.de  (link  to  URL http://www.teletrust.de) .  In
       special the documents:

       Part 3:   CT-API. Cardterminal Applications Programming Interface.

       Part 4:   CT-BCS. Cardterminal Basic Command Set.

       Part 7:   IC cards with synchronous transmission Part3: Usage of interindustry Commands.

       ISO/IEC 7816: Identification cards - Integrated circuit(s) cards with contacts:

       Part 4:   Interindustry commands for interchange.

AUTHOR

       This manual page was written by Carlos Prados <cprados@yahoo.com>.

                                                                                        CT-API(3)