sectok - library for communicating with ISO 7816 smartcards
#include <sectok.h>
int
sectok_open(int rn, int flags, int *swp);
int
sectok_friendly_open(const char *rn, int flags, int *swp);
int
sectok_xopen(int rn, int flags, char *config_path, char
*driver_path,
int *swp);
int
sectok_reset(int fd, int flags, unsigned char *atr, int
*swp);
int
sectok_apdu(int fd, int cla, int ins, int p1, int p2, int
ilen,
unsigned char *ibuf, int olen, unsigned char *obuf,
int *swp);
int
sectok_cardpresent(int fd);
int
sectok_close(int fd);
int
sectok_selectfile(int fd, int cla, unsigned char *fid, int
*swp);
void
sectok_fmt_fid(char *fname, size_t fnamelen, unsigned char
*fid);
int
sectok_parse_atr(int fd, int flags, unsigned char *atr, int
len,
struct scparam *param);
void
sectok_parse_fname(char *buf, unsigned char *fid);
int
sectok_parse_input(char *ibuf, unsigned char *obuf, int
olen);
int
sectok_get_input(FILE *f, unsigned char *obuf, int omin, int
olen);
int
sectok_fdump_reply(FILE *f, unsigned char *p, int n, int
sw);
int
sectok_dump_reply(unsigned char *p, int n, int sw);
void
sectok_print_sw(int sw);
char *
sectok_get_sw(int sw);
char *
sectok_get_ins(int ins);
int
sectok_swOK(int sw);
sectok provides initialization, input, output, and other basic routines
for ISO 7816 smart cards. Many of the routines return a
status word.
This will either be an error code as given in the include
file, or an
SW1/SW2 pair as specified in ISO 7816.
sectok_open() opens a connection to a smart card via serial
port number
rn. Ports are numbered from 0, which corresponds to
/dev/tty00 on UNIX.
If there is no card in the reader, sectok_open() will either
wait for
card insertion, or if flag STONOWAIT is given, it will return immediately
with error STENOCARD. swp points to a status word that will
be set on
return.
sectok_friendly_open() opens a connection to a smart card
via a reader
device name rn. Mapping from reader name to serial port
number is the
same as used in sectok_open(). For other arguments and return values,
see sectok_open().
sectok_reset() resets the card and returns the ATR in the
buffer pointed
to by atr if it is not NULL. If the STRFORCE flag is given,
a connection
to the card will be established using default protocol parameters even if
the card ATR is illegal.
sectok_apdu() sends an APDU to the card with optional IN and
OUT data.
cla application class
ins instruction code
p1, p2 per ISO 7816-3 or application dependent
ilen length of IN data
ibuf pointer to IN data
olen length of OUT data
obuf pointer to OUT data
swp pointer to return status word
sectok_cardpresent() returns whether a card is present in
the reader.
sectok_close() closes a connection to a smart card.
sectok_selectfile() selects a file given its FID by sending
a "select"
apdu to the card.
sectok_fmt_fid() returns a printable name for a FID.
sectok_parse_atr() parses a card ATR and returns the protocol parameters.
If the STRV flag is given it will print the parameters to
standard out.
sectok_parse_fname() translates a printable name to a FID.
sectok_print_sw() looks up the error message string affiliated with a
status word and writes it to standard out.
sectok_swOK() returns 1 if sw indicates success, or 0 if it
indicates
failure.
sectok(1)
sectok first appeared in OpenBSD 3.0.
Jim Rees and others at University of Michigan Center for Information
Technology Integration (CITI).
OpenBSD 3.6 August 3, 2001
[ Back ] |